Renamed the "printed note" into "hand written note" and added a French version of the image.
Added localization for some of the vocabulary.
Added some information about which fonts are being used, to make it easier to create variants of the various images with the proper fonts.
@@ -158,7 +158,9 @@ | ||
158 | 158 | |
159 | 159 | AddDefine LOADER_PICTURE_NEWSPAPER {FileIndex} |
160 | 160 | |
161 | -AddFile ..\build\files\handwritten_note.hir | |
161 | + | |
162 | +AddFile ..\build\files\handwritten_note_fr.hir | |
163 | + | |
162 | 164 | AddDefine LOADER_PICTURE_HANDWRITTEN_NOTE {FileIndex} |
163 | 165 | |
164 | 166 | AddFile ..\build\files\science_book.hir |
@@ -164,7 +164,11 @@ | ||
164 | 164 | #endif |
165 | 165 | AddDefine LOADER_PICTURE_NEWSPAPER {FileIndex} |
166 | 166 | |
167 | +#ifdef LANGUAGE_FR | |
168 | +AddFile ..\build\files\handwritten_note_fr.hir | |
169 | +#else // LANGUAGE_EN | |
167 | 170 | AddFile ..\build\files\handwritten_note.hir |
171 | +#endif | |
168 | 172 | AddDefine LOADER_PICTURE_HANDWRITTEN_NOTE {FileIndex} |
169 | 173 | |
170 | 174 | AddFile ..\build\files\science_book.hir |
@@ -1,4 +1,5 @@ | ||
1 | 1 | |
2 | +#include "params.h" | |
2 | 3 | #include "game_defines.h" |
3 | 4 | #include "common.h" |
4 | 5 |
@@ -128,7 +129,7 @@ | ||
128 | 129 | { gTextItemSnookerCue ,e_LOCATION_GAMESROOM ,255 ,ITEM_FLAG_DEFAULT ,ITEM_FLAG_DEFAULT }, // e_ITEM_SnookerCue |
129 | 130 | { gTextItemThug ,e_LOCATION_MASTERBEDROOM ,255 ,ITEM_FLAG_HEAVY ,0}, // e_ITEM_Thug |
130 | 131 | { gTextItemHeavySafe ,e_LOCATION_CELLAR ,255 ,ITEM_FLAG_HEAVY ,0}, // e_ITEM_HeavySafe |
131 | - { gTextItemPrintedNote ,e_LOCATION_BOXROOM ,255 ,ITEM_FLAG_DEFAULT ,0}, // e_ITEM_PrintedNote | |
132 | + { gTextItemHandWrittenNote ,e_LOCATION_BOXROOM ,255 ,ITEM_FLAG_DEFAULT ,0}, // e_ITEM_HandWrittenNote | |
132 | 133 | { gTextItemRope ,e_LOCATION_WELL ,255 ,ITEM_FLAG_DEFAULT ,0}, // e_ITEM_Rope |
133 | 134 | { gTextItemRopeHangingFromWindow ,e_LOCATION_NONE ,e_ITEM_Rope ,ITEM_FLAG_ALIAS_ITEM ,0}, // e_ITEM_RopeHangingFromWindow |
134 | 135 | { gTextItemRollOfToiletPaper ,e_LOCATION_TINY_WC ,255 ,ITEM_FLAG_DEFAULT ,0}, // e_ITEM_RollOfToiletPaper |
@@ -155,11 +156,20 @@ | ||
155 | 156 | keyword gWordsArray[] = |
156 | 157 | { |
157 | 158 | // Containers |
159 | +#ifdef LANGUAGE_FR | |
160 | + { "TABATIERE" ,e_ITEM_TobaccoTin }, // e_ITEM_TobaccoTin | |
161 | + { "SEAU" ,e_ITEM_Bucket }, // e_ITEM_Bucket | |
162 | + { "BOITE" ,e_ITEM_CardboardBox }, // e_ITEM_CardboardBox | |
163 | + { "FILET" ,e_ITEM_FishingNet }, // e_ITEM_FishingNet | |
164 | + { "SAC" ,e_ITEM_PlasticBag }, // e_ITEM_PlasticBag | |
165 | +#else | |
158 | 166 | { "TIN", e_ITEM_TobaccoTin }, // e_ITEM_TobaccoTin |
159 | 167 | { "BUCKET", e_ITEM_Bucket }, // e_ITEM_Bucket |
160 | 168 | { "BOX", e_ITEM_CardboardBox }, // e_ITEM_CardboardBox |
161 | 169 | { "NET", e_ITEM_FishingNet }, // e_ITEM_FishingNet |
162 | 170 | { "BAG", e_ITEM_PlasticBag }, // e_ITEM_PlasticBag |
171 | +#endif | |
172 | + | |
163 | 173 | // Then normal items |
164 | 174 | { "GIRL", e_ITEM_YoungGirl }, // e_ITEM_YoungGirl |
165 | 175 | //{ "GIRL",e_ITEM_YoungGirlOnFloor }, // e_ITEM_YoungGirlOnFloor - Girl, girl on the floor, etc... should be the same item, but with flags |
@@ -185,7 +195,7 @@ | ||
185 | 195 | { "CUE", e_ITEM_SnookerCue }, // e_ITEM_SnookerCue |
186 | 196 | { "THUG", e_ITEM_Thug }, // e_ITEM_Thug |
187 | 197 | { "SAFE", e_ITEM_HeavySafe }, // e_ITEM_HeavySafe |
188 | - { "NOTE", e_ITEM_PrintedNote }, // e_ITEM_PrintedNote | |
198 | + { "NOTE", e_ITEM_HandWrittenNote }, // e_ITEM_HandWrittenNote | |
189 | 199 | { "ROPE", e_ITEM_Rope }, // e_ITEM_Rope |
190 | 200 | //{ "...",e_ITEM_RopeHangingFromWindow}, // e_ITEM_RopeHangingFromWindow |
191 | 201 | { "TISSUE", e_ITEM_RollOfToiletPaper }, // e_ITEM_RollOfToiletPaper |
@@ -206,31 +216,63 @@ | ||
206 | 216 | |
207 | 217 | |
208 | 218 | // Directions |
219 | +#ifdef LANGUAGE_FR | |
209 | 220 | { "N", e_WORD_NORTH }, |
210 | 221 | { "S", e_WORD_SOUTH }, |
211 | 222 | { "E", e_WORD_EAST }, |
223 | + { "O", e_WORD_WEST }, | |
224 | + { "M", e_WORD_UP }, | |
225 | + { "D", e_WORD_DOWN }, | |
226 | + | |
227 | + { "NORD", e_WORD_NORTH }, | |
228 | + { "SUD", e_WORD_SOUTH }, | |
229 | + { "EST", e_WORD_EAST }, | |
230 | + { "OUEST", e_WORD_WEST }, | |
231 | + { "MONTE", e_WORD_UP }, | |
232 | + { "DESCEND", e_WORD_DOWN }, | |
233 | +#else | |
234 | + { "N", e_WORD_NORTH }, | |
235 | + { "S", e_WORD_SOUTH }, | |
236 | + { "E", e_WORD_EAST }, | |
212 | 237 | { "W", e_WORD_WEST }, |
213 | 238 | { "U", e_WORD_UP }, |
214 | 239 | { "D", e_WORD_DOWN }, |
215 | 240 | |
216 | 241 | { "NORTH", e_WORD_NORTH }, |
217 | - { "SOUT", e_WORD_SOUTH }, | |
242 | + { "SOUTH", e_WORD_SOUTH }, | |
218 | 243 | { "EAST", e_WORD_EAST }, |
219 | 244 | { "WEST", e_WORD_WEST }, |
220 | 245 | { "UP", e_WORD_UP }, |
221 | 246 | { "DOWN", e_WORD_DOWN }, |
247 | +#endif | |
222 | 248 | |
223 | 249 | // Misc instructions |
224 | - { "TAKE", e_WORD_TAKE }, | |
225 | - { "GET" , e_WORD_TAKE }, | |
226 | - { "KILL", e_WORD_KILL }, | |
227 | - { "FRISK", e_WORD_FRISK }, | |
228 | - { "SEARCH", e_WORD_SEARCH }, | |
229 | -#ifdef ENABLE_CHEATS | |
230 | - { "REVIVE", e_WORD_REVIVE }, | |
231 | - { "TICKLE", e_WORD_TICKLE }, | |
232 | -#endif | |
250 | +#ifdef LANGUAGE_FR | |
251 | + { "PREND" , e_WORD_TAKE }, | |
252 | + { "RAMASSE" , e_WORD_TAKE }, | |
253 | + { "TUE" , e_WORD_KILL }, | |
254 | + { "FOUILLE" , e_WORD_FRISK }, | |
255 | + { "CHERCHE" , e_WORD_SEARCH }, | |
233 | 256 | |
257 | + { "LACHE" , e_WORD_DROP }, | |
258 | + { "POSE" , e_WORD_DROP }, | |
259 | + | |
260 | + { "UTILISE" , e_WORD_USE }, | |
261 | + | |
262 | + { "GRIMPE" , e_WORD_CLIMB }, | |
263 | + | |
264 | + { "LIT" , e_WORD_READ }, | |
265 | + | |
266 | + { "REGARDE" , e_WORD_LOOK }, | |
267 | + { "EXAMINE" , e_WORD_LOOK }, | |
268 | + { "INSPECTE", e_WORD_LOOK }, | |
269 | +#else | |
270 | + { "TAKE" , e_WORD_TAKE }, | |
271 | + { "GET" , e_WORD_TAKE }, | |
272 | + { "KILL" , e_WORD_KILL }, | |
273 | + { "FRISK" , e_WORD_FRISK }, | |
274 | + { "SEARCH" , e_WORD_SEARCH }, | |
275 | + | |
234 | 276 | { "DROP", e_WORD_DROP }, |
235 | 277 | { "PUT" , e_WORD_DROP }, |
236 | 278 |
@@ -243,7 +285,13 @@ | ||
243 | 285 | { "LOOK" , e_WORD_LOOK }, |
244 | 286 | { "EXAMINE" , e_WORD_LOOK }, |
245 | 287 | { "INSPECT" , e_WORD_LOOK }, |
246 | - | |
288 | +#endif | |
289 | + | |
290 | +#ifdef ENABLE_CHEATS | |
291 | + { "REVIVE", e_WORD_REVIVE }, | |
292 | + { "TICKLE", e_WORD_TICKLE }, | |
293 | +#endif | |
294 | + | |
247 | 295 | // Last instruction |
248 | 296 | { "QUIT", e_WORD_QUIT }, |
249 | 297 |
@@ -243,7 +243,7 @@ | ||
243 | 243 | extern const char gTextItemSnookerCue[]; // "a snooker cue" |
244 | 244 | extern const char gTextItemThug[]; // "a thug asleep on the bed" |
245 | 245 | extern const char gTextItemHeavySafe[]; // "a heavy safe" |
246 | -extern const char gTextItemPrintedNote[]; // "a printed note" | |
246 | +extern const char gTextItemHandWrittenNote[]; // "a hand written note" | |
247 | 247 | extern const char gTextItemRope[]; // "a length of rope" |
248 | 248 | extern const char gTextItemRopeHangingFromWindow[]; // "a rope hangs from the window" |
249 | 249 | extern const char gTextItemRollOfToiletPaper[]; // "a roll of toilet tissue" |
@@ -267,7 +267,7 @@ | ||
267 | 267 | |
268 | 268 | // Scene actions |
269 | 269 | extern const char gSceneActionReadNewsPaper[]; |
270 | -extern const char gSceneActionReadPrintedNote[]; | |
270 | +extern const char gSceneActionReadHandWrittenNote[]; | |
271 | 271 | extern const char gSceneActionReadChemistryRecipes[]; |
272 | 272 | extern const char gSceneActionReadChemistryBook[]; |
273 | 273 | extern const char gSceneActionInspectMap[]; |
@@ -86,7 +86,7 @@ | ||
86 | 86 | #define e_ITEM_SnookerCue 25 // a snooker cue |
87 | 87 | #define e_ITEM_Thug 26 // a Thug |
88 | 88 | #define e_ITEM_HeavySafe 27 // a heavy safe |
89 | -#define e_ITEM_PrintedNote 28 // a printed note | |
89 | +#define e_ITEM_HandWrittenNote 28 // a hand written note | |
90 | 90 | #define e_ITEM_Rope 29 // a length of rope |
91 | 91 | #define e_ITEM_RopeHangingFromWindow 30 // a rope hangs from the window |
92 | 92 | #define e_ITEM_RollOfToiletPaper 31 // a roll of toilet tissue~ |
@@ -581,8 +581,8 @@ | ||
581 | 581 | LoadScene(); |
582 | 582 | break; |
583 | 583 | |
584 | - case e_ITEM_PrintedNote: | |
585 | - PlayStream(gSceneActionReadPrintedNote); | |
584 | + case e_ITEM_HandWrittenNote: | |
585 | + PlayStream(gSceneActionReadHandWrittenNote); | |
586 | 586 | LoadScene(); |
587 | 587 | break; |
588 | 588 |
@@ -255,7 +255,7 @@ | ||
255 | 255 | _StartItemNames |
256 | 256 | #ifdef LANGUAGE_FR |
257 | 257 | // Containers |
258 | -_gTextItemTobaccoTin .byt "une boîte à tabac vide",0 | |
258 | +_gTextItemTobaccoTin .byt "une tabatière vide",0 | |
259 | 259 | _gTextItemBucket .byt "un seau en bois",0 |
260 | 260 | _gTextItemCardboardBox .byt "une boite en carton",0 |
261 | 261 | _gTextItemFishingNet .byt "un filet de pêche",0 |
@@ -285,7 +285,7 @@ | ||
285 | 285 | _gTextItemSnookerCue .byt "une queue de billard",0 |
286 | 286 | _gTextItemThug .byt "un voyou endormi sur le lit",0 |
287 | 287 | _gTextItemHeavySafe .byt "un gros coffre fort",0 |
288 | -_gTextItemPrintedNote .byt "une note imprimée",0 | |
288 | +_gTextItemHandWrittenNote .byt "une note manuscripte",0 | |
289 | 289 | _gTextItemRope .byt "une longueur de corde",0 |
290 | 290 | _gTextItemRopeHangingFromWindow .byt "une core qui pend de la fenêtre",0 |
291 | 291 | _gTextItemRollOfToiletPaper .byt "un rouleau de papier toilette",0 |
@@ -338,7 +338,7 @@ | ||
338 | 338 | _gTextItemSnookerCue .byt "a snooker cue",0 |
339 | 339 | _gTextItemThug .byt "a thug asleep on the bed",0 |
340 | 340 | _gTextItemHeavySafe .byt "a heavy safe",0 |
341 | -_gTextItemPrintedNote .byt "a printed note",0 | |
341 | +_gTextItemHandWrittenNote .byt "a hand written note",0 | |
342 | 342 | _gTextItemRope .byt "a length of rope",0 |
343 | 343 | _gTextItemRopeHangingFromWindow .byt "a rope hangs from the window",0 |
344 | 344 | _gTextItemRollOfToiletPaper .byt "a roll of toilet tissue",0 |
@@ -395,11 +395,11 @@ | ||
395 | 395 | WAIT(DELAY_FIRST_BUBBLE) |
396 | 396 | .byt COMMAND_BUBBLE,2,64 |
397 | 397 | #ifdef LANGUAGE_FR |
398 | + .byt 153,85,0,"Rats, graffittis,",0 | |
399 | + .byt 136,98,0,"et seringues.",0 | |
400 | +#else | |
398 | 401 | .byt 153,85,0,"Rats, graffitti,",0 |
399 | 402 | .byt 136,98,0,"and used syringes.",0 |
400 | -#else | |
401 | - .byt 153,85,0,"Rats, graffittis,",0 | |
402 | - .byt 136,98,0,"et seringues.",0 | |
403 | 403 | #endif |
404 | 404 | END |
405 | 405 |
@@ -848,7 +848,7 @@ | ||
848 | 848 | WAIT(50*2) |
849 | 849 | END |
850 | 850 | |
851 | -_gSceneActionReadPrintedNote | |
851 | +_gSceneActionReadHandWrittenNote | |
852 | 852 | .byt COMMAND_FULLSCREEN_ITEM,LOADER_PICTURE_HANDWRITTEN_NOTE,"A hand written note",0 |
853 | 853 | WAIT(50*2) |
854 | 854 | .byt COMMAND_INFO_MESSAGE,"That could be useful...",0 |
@@ -100,6 +100,10 @@ | ||
100 | 100 | |
101 | 101 | and empty "#pragma osdk replace_characters" cancels the replacement rule. |
102 | 102 | |
103 | +### Fonts | |
104 | +The game uses a number of fonts, some hand modified, but some are just standard TTF rendered without anti-aliasing. | |
105 | +- The "Handwritten note" uses "Segoe Print" size 8 | |
106 | + | |
103 | 107 | ### Selective build |
104 | 108 | Since testing things gets frustrating when you have to go through a sequence of irrelevant things before accessing what you want, the system allows disabling a number of things. |
105 | 109 |
@@ -160,7 +160,10 @@ | ||
160 | 160 | :: Other 240x128 full screen images which are not locations |
161 | 161 | %PICTCONV% %PARAMS% data\newspaper.png %TARGET%\newspaper.hir |
162 | 162 | %PICTCONV% %PARAMS% data\newspaper_fr.png %TARGET%\newspaper_fr.hir |
163 | + | |
163 | 164 | %PICTCONV% %PARAMS% data\handwritten_note.png %TARGET%\handwritten_note.hir |
165 | +%PICTCONV% %PARAMS% data\handwritten_note_fr.png %TARGET%\handwritten_note_fr.hir | |
166 | + | |
164 | 167 | %PICTCONV% %PARAMS% data\science_book.png %TARGET%\science_book.hir |
165 | 168 | %PICTCONV% %PARAMS% data\chemistry_recipes.png %TARGET%\chemistry_recipes.hir |
166 | 169 | %PICTCONV% %PARAMS% data\united_kingdom_map.png %TARGET%\united_kingdom_map.hir |