This page describes the content of item 558 found in the graphics.dat file from:
This item is not found in any other version of the games (even in other Dungeon Master for Amiga 2.x versions).
The size of this item is always 4720 bytes but there are two variations in the content of this item:
This item is only used in Atari ST versions. All Amiga versions contain the equivalent data in the executable file itself and never read any data from this item.
It contains initialization data for global variables that was not included in the source code as an optimization to reduce the executable file size. This was because of the special way the C compiler worked on Atari ST, and this trick was not used on any other platform.
You may consult the names, values and usage of all these variables in the source code of ReDMCSB http://dmweb.free.fr/Stuff/ReDMCSB_WIP20210206.7z (search the source code for variable names containing "_Graphic558_", "_Graphic559_", "_Graphic560_", "_Graphic561_" and "_Graphic562_").
You may extract all values to text files with the data file decoder script at DM, CSB and DMII Data Files and Animations Decoders for PC.
All the notes below are the results of older research by credited people, with parts in French that were never translated to English. They are incomplete and presented "as-is".
Charlatan75 (most of this page of documentation)
Paul Stevens (CSBwin source code)
rain` (ADGE source code)
When using an Altar of Vi, the Lightning Bolt graphic is drawn as a first step of animation (Cloud of type 100). This data specifies the coordinates and scale factor to use to draw the graphic for each tile where the Altar is visible.
i16 Word7246[12]; X Y Scale 0070 0035 000F D3 0018 0035 000F D3L1 00C2 0035 000F D3R1 0070 003B 0014 D2 000F 003B 0014 D2L1 00D0 003B 0014 D2R1 0070 0046 0020 D1
When using an Altar of Vi, the explosion graphic is drawn as a second step of animation (Cloud of type 101). This data specifies the coordinates and scale factor to use to draw the graphic for each tile where the Altar is visible.
i16 Word7222[30]; X Y Scale 0071 0039 000C D3 0018 0039 000C D3L1 00C3 0039 000C D3R1 006F 003F 0010 D2 000C 003F 0010 D2L1 00D5 003F 0010 D2R1 0070 004C 0018 D1
These coordinates are used for Clouds that are not centered on their tile.
i16 Word7162[60]; X1, Y1: coordinates when facing the cloud X2, Y2: coordinates when not facing the cloud X1 Y1 X2 Y2 0064 002F 007A 002F D4 0034 002F 004C 002F D4L1 0094 002F 00AC 002F D4R1 005F 0032 007F 0032 D3 001F 0032 003F 0032 D3L1 009F 0032 00BF 0032 D3R1 005C 0035 0083 0035 D2 FFFD 0035 002E 0035 D2L1 00B1 0035 00E2 0035 D2R1 0053 0039 008D 0039 D1 FFCA 0039 0012 0039 D1L1 00CF 0039 0115 0039 D1R1 0000 0000 0000 0000 D0 FFB7 003C FFDF 003C D0L1 0100 003C 0128 003C D0R1
These coordinates are used for Clouds that are centered on their tile.
i16 Word7042[30]; X Y 006F 002F D4 0039 002F D4L1 00A7 002F D4R1 006F 0032 D3 002D 0032 D3L1 00B3 0032 D3R1 006F 0035 D2 0014 0035 D2L1 00CD 0035 D2R1 006F 0039 D1 FFE2 0039 D1L1 00FD 0039 D1R1 006F 003C D0 FFCB 003C D0L1 0114 003C D0R1
Ici sont définis 3 grands groupes de coordonnées de référence utilisées pour afficher les créatures. Pour chaque créature, un octet indiquera lequel de ces 3 groupes utiliser pour l'afficher au bon endroit (voir octets 0833 à 1156).
Remarque: les valeurs des octets 0595 à 0618 sont également prises en compte dans le calcul des coordonnées auxquelles sera affichée une créature...
Pour les groupes de coordonnées de référence 0 et 2, on utilisera les conventions suivantes :
+------+------+------+ |g1 g2|c1 c2|d1 d2| | g5 | c5 | d5 | <------ creatures at D3 |g4 g3|c4 c3|d4 d3| +------+------+------+ |g1 g2|c1 c2|d1 d2| | g5 | c5 | d5 | <------ creatures at D2 |g4 g3|c4 c3|d4 d3| +------+------+------+ |g1 g2|c1 c2|d1 d2| | g5 | c5 | d5 | <------ creatures at D1 |g4 g3|c4 c3|d4 d3| +------+------+------+ |g1 g2| |d1 d2| | g5 | P | d5 | <------ creatures at D0 |g4 g3| |d4 d3| (P = Player Position) +------+------+------+
g1 à g5 : positions possibles d'une créature dans une case sur la gauche du joueur
c1 à c5 : positions possibles d'une créature dans une case en face du joueur
d1 à d5 : positions possibles d'une créature dans une case sur la droite du joueur
Sachant que:
Pour le groupe de coordonnées de référence 1, on utilisera les conventions suivantes:
+---------+---------+---------+ | g8 | c8 | d8 | | g9 | c9 | d9 | <------ creatures at D3 |g6 g10 g7|c6 c10 c7|d6 d10 d7| +---------+---------+---------+ | g8 | c8 | d8 | | g9 | c9 | d9 | <------ creatures at D2 |g6 g10 g7|c6 c10 c7|d6 d10 d7| +---------+---------+---------+ | g8 | c8 | d8 | | g9 | c9 | d9 | <------ creatures at D1 |g6 g10 g7|c6 c10 c7|d6 d10 d7| +---------+---------+---------+ | g8 | | d8 | | g9 | P | d9 | <------ creatures at D0 (!) |g6 g10 g7| |d6 d10 d7| (P = Player Position) +---------+---------+---------+
g6 à g10 : positions possibles d'une créature dans une case sur la gauche du joueur
c6 à c10 : positions possibles d'une créature dans une case en face du joueur
d6 à d10 : positions possibles d'une créature dans une case sur la droite du joueur
Sachant que:
Vue du donjon :
(X center of creature image) | 0------------------+-------------------223---> X (in pixels) | | | | | | | | | | | | | | +---------+ | | | f o f | | | | VmmV | <---------------- image of a creature | | MM | | (Here it is a mummy raising its arms :)) | | J L | | | +---------+ - - - - - - - - - (Y bottom side of creature image) | | | | | | | | 135--------------------------------------- | Y (in pixels)
Remarque: pour les positions sur la gauche du joueur et sur la droite du joueur, les abscisses sont ramenées au centre de la vue du donjon (sans doute pour que les valeurs restent dans l'intervalle 0-255). Pour obtenir les coordonnées exactes, il faut en fait oter 100 aux valeurs données pour les abscisses des positions "g", et ajouter 100 aux valeurs données pour les abscisses des positions "d".
Ces coordonnées sont utilisées pour afficher : Swamp slime, Giggler, Screamer, Tas de pierres, Fantôme, Momie, Squelette, Petit mage, Troll, Armure animée, Materializer, Elémentaire de l'eau, Oitu, Démon, Lord Chaos, Dragon rouge, Librasulus, Grey Lord.
0265 95 (x5F) D3, c1 X milieu image créature, en pixels 0266 70 (x46) D3, c1 Y bord inférieur image créature, en pixels 0267 127 (x7F) D3, c2 X milieu image créature 0268 70 (x46) D3, c2 Y bord inférieur image créature 0269 129 (x81) D3, c3 X milieu 0270 75 (x4B) D3, c3 Y bord inférieur 0271 93 (x5D) D3, c4 X milieu 0272 75 (x4B) D3, c4 Y bord inférieur 0273 111 (x6F) D3, c5 X milieu 0274 72 (x48) D3, c5 Y bord inférieur 0275 131 (x83) D3, g1 X milieu image créature,-100 pour X réel => 31 0276 70 (x46) D3, g1 Y bord inférieur image créature 0277 163 (xA3) D3, g2 X milieu, -100 => 63 0278 70 (x46) D3, g2 Y bord inférieur 0279 158 (x9E) D3, g3 X milieu, -100 => 58 0280 75 (x4B) D3, g3 Y bord inférieur 0281 120 (x78) D3, g4 X milieu, -100 => 20 0282 75 (x4B) D3, g4 Y bord inférieur 0283 145 (x91) D3, g5 X milieu, -100 => 45 0284 72 (x48) D3, g5 Y bord inférieur 0285 59 (x3B) D3, d1 X milieu image créature, +100 pour X réel => 159 0286 70 (x46) D3, d1 Y bord inférieur image créature 0287 91 (x5B) D3, d2 X milieu, +100 => 191 0288 70 (x46) D3, d2 Y bord inférieur 0289 107 (x6B) D3, d3 X milieu, +100 => 207 0290 75 (x4B) D3, d3 Y bord inférieur 0291 66 (x42) D3, d4 X milieu, +100 => 166 0292 75 (x4B) D3, d4 Y bord inférieur 0293 79 (x4F) D3, d5 X milieu, +100 => 179 0294 72 (x48) D3, d5 Y bord inférieur 0295 92 (x5C) D2, c1 X milieu image créature 0296 81 (x51) D2, c1 Y bord inférieur image créature 0297 131 (x83) D2, c2 X milieu 0298 81 (x51) D2, c2 Y bord inférieur 0299 132 (x84) D2, c3 X milieu 0300 90 (x5A) D2, c3 Y bord inférieur 0301 91 (x5B) D2, c4 X milieu 0302 90 (x5A) D2, c4 Y bord inférieur 0303 111 (x6F) D2, c5 X milieu 0304 85 (x55) D2, c5 Y bord inférieur 0305 99 (x63) D2, g1 X milieu image créature, -100 => -1 0306 81 (x51) D2, g1 Y bord inférieur image créature 0307 146 (x92) D2, g2 X milieu, -100 => 46 0308 81 (x51) D2, g2 Y bord inférieur 0309 135 (x87) D2, g3 X milieu, -100 => 35 0310 90 (x5A) D2, g3 Y bord inférieur 0311 80 (x50) D2, g4 X milieu, -100 => -20 0312 90 (x5A) D2, g4 Y bord inférieur 0313 120 (x78) D2, g5 X milieu, -100 => 20 0314 85 (x55) D2, g5 Y bord inférieur 0315 77 (x4D) D2, d1 X milieu image créature, +100 => 177 0316 81 (x51) D2, d1 Y bord inférieur image créature 0317 124 (x7C) D2, d2 X milieu, +100 => 224 0318 81 (x51) D2, d2 Y bord inférieur 0319 143 (x8F) D2, d3 X milieu, +100 => 243 0320 90 (x5A) D2, d3 Y bord inférieur 0321 89 (x59) D2, d4 X milieu, +100 => 189 0322 90 (x5A) D2, d4 Y bord inférieur 0323 105 (x69) D2, d5 X milieu, +100 => 205 0324 85 (x55) D2, d5 Y bord inférieur 0325 83 (x53) D1, c1 X milieu image créature 0326 103 (x67) D1, c1 Y bord inférieur image créature 0327 141 (x8D) D1, c2 X milieu 0328 103 (x67) D1, c2 Y bord inférieur 0329 148 (x94) D1, c3 X milieu 0330 119 (x77) D1, c3 Y bord inférieur 0331 76 (x4C) D1, c4 X milieu 0332 119 (x77) D1, c4 Y bord inférieur 0333 109 (x6D) D1, c5 X milieu 0334 111 (x6F) D1, c5 Y bord inférieur 0335 46 (x2E) D1, g1 X milieu image créature, -100 => -54 0336 103 (x67) D1, g1 Y bord inférieur image créature 0337 118 (x76) D1, g2 X milieu, -100 => 18 0338 103 (x67) D1, g2 Y bord inférieur 0339 101 (x65) D1, g3 X milieu, -100 => 1 0340 119 (x77) D1, g3 Y bord inférieur 0341 0 (x00) D1, g4 => créature considérée comme invisible 0342 0 (x00) D1, g4 0343 79 (x4F) D1, g5 X milieu, -100 => -21 0344 111 (x6F) D1, g5 Y bord inférieur 0345 107 (x6B) D1, d1 X milieu image créature, +100 => 207 0346 103 (x67) D1, d1 Y bord inférieur image créature 0347 177 (xB1) D1, d2 X milieu, +100 => 277 0348 103 (x67) D1, d2 Y bord inférieur 0349 0 (x00) D1, d3 => créature considérée comme invisible 0350 0 (x00) D1, d3 0351 123 (x7B) D1, d4 X milieu, +100 => 223 0352 119 (x77) D1, d4 Y bord inférieur 0353 144 (x90) D1, d5 X milieu, +100 => 244 0354 111 (x6F) D1, d5 Y bord inférieur 0355 0 (x00) D0, g1 => créature considérée comme invisible 0356 0 (x00) D0, g1 0357 67 (x43) D0, g2 X milieu image créature, -100 => -33 0358 135 (x87) D0, g2 Y bord inférieur image créature 0359 0 (x00) D0, g3 => créature considérée comme invisible 0360 0 (x00) D0, g3 0361 0 (x00) D0, g4 => créature considérée comme invisible 0362 0 (x00) D0, g4 0363 0 (x00) D0, g5 => créature considérée comme invisible 0364 0 (x00) D0, g5 0365 156 (x9C) D0, d1 X milieu image créature, +100 => 256 0366 135 (x87) D0, d1 Y bord inférieur image créature 0367 0 (x00) D0, d2 => créature considérée comme invisible 0368 0 (x00) D0, d2 0369 0 (x00) D0, d3 => créature considérée comme invisible 0370 0 (x00) D0, d3 0371 0 (x00) D0, d4 => créature considérée comme invisible 0372 0 (x00) D0, d4 0373 0 (x00) D0, d5 => créature considérée comme invisible 0374 0 (x00) D0, d5
Ces coordonnées sont utilisées pour afficher : Scorpion, Rat géant, Ruster, Golem de pierre, Flamme noire, Couatl, Ver géant.
0375 94 (x5E) D3, c6 X milieu image créature 0376 75 (x4B) D3, c6 Y bord inférieur image créature 0377 128 (x80) D3, c7 X milieu 0378 75 (x4B) D3, c7 Y bord inférieur 0379 111 (x6F) D3, c8 X milieu 0380 70 (x46) D3, c8 Y bord inférieur 0381 111 (x6F) D3, c9 X milieu 0382 72 (x48) D3, c9 Y bord inférieur 0383 111 (x6F) D3, c10 X milieu 0384 75 (x4B) D3, c10 Y bord inférieur 0385 120 (x78) D3, g6 X milieu image créature, -100 => 20 0386 75 (x4B) D3, g6 Y bord inférieur image créature 0387 158 (x9E) D3, g7 X milieu, -100 => 58 0388 75 (x4B) D3, g7 Y bord inférieur 0389 149 (x95) D3, g8 X milieu, -100 => 49 0390 70 (x46) D3, g8 Y bord inférieur 0391 145 (x91) D3, g9 X milieu, -100 => 45 0392 72 (x48) D3, g9 Y bord inférieur 0393 150 (x96) D3, g10 X milieu, -100 => 50 0394 75 (x4B) D3, g10 Y bord inférieur 0395 66 (x42) D3, d6 X milieu image créature, +100 => 166 0396 75 (x4B) D3, d6 Y bord inférieur image créature 0397 104 (x68) D3, d7 X milieu, +100 => 204 0398 75 (x4B) D3, d7 Y bord inférieur 0399 75 (x4B) D3, d8 X milieu, +100 => 175 0400 70 (x46) D3, d8 Y bord inférieur 0401 79 (x4F) D3, d9 X milieu, +100 => 179 0402 72 (x48) D3, d9 Y bord inférieur 0403 73 (x49) D3, d10 X milieu, +100 => 173 0404 75 (x4B) D3, d10 Y bord inférieur 0405 91 (x5B) D2, c6 X milieu image créature 0406 90 (x5A) D2, c6 Y bord inférieur image créature 0407 132 (x84) D2, c7 X milieu 0408 90 (x5A) D2, c7 Y bord inférieur 0409 111 (x6F) D2, c8 X milieu 0410 83 (x53) D2, c8 Y bord inférieur 0411 111 (x6F) D2, c9 X milieu 0412 85 (x55) D2, c9 Y bord inférieur 0413 111 (x6F) D2, c10 X milieu 0414 90 (x5A) D2, c10 Y bord inférieur 0415 80 (x50) D2, g6 X milieu image créature, -100 => -20 0416 90 (x5A) D2, g6 Y bord inférieur image créature 0417 135 (x87) D2, g7 X milieu, -100 => 35 0418 90 (x5A) D2, g7 Y bord inférieur 0419 125 (x7D) D2, g8 X milieu, -100 => 25 0420 83 (x53) D2, g8 Y bord inférieur 0421 120 (x78) D2, g9 X milieu, -100 => 20 0422 85 (x55) D2, g9 Y bord inférieur 0423 125 (x7D) D2, g10 X milieu, -100 => 25 0424 90 (x5A) D2, g10 Y bord inférieur 0425 89 (x59) D2, d6 X milieu image créature, +100 => 189 0426 90 (x5A) D2, d6 Y bord inférieur image créature 0427 143 (x8F) D2, d7 X milieu, +100 => 243 0428 90 (x5A) D2, d7 Y bord inférieur 0429 99 (x63) D2, d8 X milieu, +100 => 199 0430 83 (x53) D2, d8 Y bord inférieur 0431 105 (x69) D2, d9 X milieu, +100 => 205 0432 85 (x55) D2, d9 Y bord inférieur 0433 98 (x62) D2, d10 X milieu, +100 => 198 0434 90 (x5A) D2, d10 Y bord inférieur 0435 81 (x51) D1, c6 X milieu image créature 0436 119 (x77) D1, c6 Y bord inférieur image créature 0437 142 (x8E) D1, c7 X milieu 0438 119 (x77) D1, c7 Y bord inférieur 0439 111 (x6F) D1, c8 X milieu 0440 105 (x69) D1, c8 Y bord inférieur 0441 111 (x6F) D1, c9 X milieu 0442 111 (x6F) D1, c9 Y bord inférieur 0443 111 (x6F) D1, c10 X milieu 0444 119 (x77) D1, c10 Y bord inférieur 0445 0 (x00) D1, g6 => créature considérée comme invisible 0446 0 (x00) D1, g6 0447 101 (x65) D1, g7 X milieu image créature, -100 => 1 0448 119 (x77) D1, g7 Y bord inférieur image créature 0449 84 (x54) D1, g8 X milieu, -100 => -16 0450 105 (x69) D1, g8 Y bord inférieur 0451 70 (x46) D1, g9 X milieu, -100 => -30 0452 111 (x6F) D1, g9 Y bord inférieur 0453 77 (x4D) D1, g10 X milieu, -100 => -23 0454 119 (x77) D1, g10 Y bord inférieur 0455 123 (x7B) D1, d6 X milieu image créature, +100 => 223 0456 119 (x77) D1, d6 Y bord inférieur image créature 0457 0 (x00) D1, d7 => créature considérée comme invisible 0458 0 (x00) D1, d7 0459 139 (x8B) D1, d8 X milieu, +100 => 239 0460 105 (x69) D1, d8 Y bord inférieur 0461 153 (x99) D1, d9 X milieu, +100 => 253 0462 111 (x6F) D1, d9 Y bord inférieur 0463 146 (x92) D1, d10 X milieu, +100 => 246 0464 119 (x77) D1, d10 Y bord inférieur 0465 0 (x00) D0, g6 => créature considérée comme invisible 0466 0 (x00) D0, g6 0467 83 (x53) D0, g7 X milieu image créature, -100 => -17 0468 130 (x82) D0, g7 Y bord inférieur image créature 0469 57 (x39) D0, g8 X milieu, -100 => -43 0470 121 (x79) D0, g8 Y bord inférieur 0471 47 (x2F) D0, g9 X milieu, -100 => -53 0472 126 (x7E) D0, g9 Y bord inférieur 0473 57 (x39) D0, g10 X milieu, -100 => -43 0474 130 (x82) D0, g10 Y bord inférieur 0475 140 (x8C) D0, d6 X milieu image créature, +100 => 240 0476 130 (x82) D0, d6 Y bord inférieur image créature 0477 0 (x00) D0, d7 => créature considérée comme invisible 0478 0 (x00) D0, d7 0479 166 (xA6) D0, d8 X milieu, +100 => 266 0480 121 (x79) D0, d8 Y bord inférieur 0481 176 (xB0) D0, d9 X milieu, +100 => 276 0482 126 (x7E) D0, d9 Y bord inférieur 0483 166 (xA6) D0, d10 X milieu, +100 => 266 0484 130 (x82) D0, d10 Y bord inférieur
Ces coordonnées sont utilisées pour afficher : Beholder, Guêpe géante.
0485 95 (x5F) D3, c1 X milieu image créature 0486 59 (x3B) D3, c1 Y bord inférieur image créature 0487 127 (x7F) D3, c2 X milieu 0488 59 (x3B) D3, c2 Y bord inférieur 0489 129 (x81) D3, c3 X milieu 0490 61 (x3D) D3, c3 Y bord inférieur 0491 93 (x5D) D3, c4 X milieu 0492 61 (x3D) D3, c4 Y bord inférieur 0493 111 (x6F) D3, c5 X milieu 0494 60 (x3C) D3, c5 Y bord inférieur 0495 131 (x83) D3, g1 X milieu image créature, -100 => 31 0496 59 (x3B) D3, g1 Y bord inférieur image créature 0497 163 (xA3) D3, g2 X milieu, -100 => 63 0498 59 (x3B) D3, g2 Y bord inférieur 0499 158 (x9E) D3, g3 X milieu, -100 => 58 0500 61 (x3D) D3, g3 Y bord inférieur 0501 120 (x78) D3, g4 X milieu, -100 => 20 0502 61 (x3D) D3, g4 Y bord inférieur 0503 145 (x91) D3, g5 X milieu, -100 => 45 0504 60 (x3C) D3, g5 Y bord inférieur 0505 59 (x3B) D3, d1 X milieu image créature, +100 => 159 0506 59 (x3B) D3, d1 Y bord inférieur image créature 0507 91 (x5B) D3, d2 X milieu, +100 => 191 0508 59 (x3B) D3, d2 Y bord inférieur 0509 107 (x6B) D3, d3 X milieu, +100 => 207 0510 61 (x3D) D3, d3 Y bord inférieur 0511 66 (x42) D3, d4 X milieu, +100 => 166 0512 61 (x3D) D3, d4 Y bord inférieur 0513 79 (x4F) D3, d5 X milieu, +100 => 179 0514 60 (x3C) D3, d5 Y bord inférieur 0515 92 (x5C) D2, c1 X milieu image créature 0516 65 (x41) D2, c1 Y bord inférieur image créature 0517 131 (x83) D2, c2 X milieu 0518 65 (x41) D2, c2 Y bord inférieur 0519 132 (x84) D2, c3 X milieu 0520 67 (x43) D2, c3 Y bord inférieur 0521 91 (x5B) D2, c4 X milieu 0522 67 (x43) D2, c4 Y bord inférieur 0523 111 (x6F) D2, c5 X milieu 0524 66 (x42) D2, c5 Y bord inférieur 0525 99 (x63) D2, g1 X milieu image créature, -100 => -1 0526 65 (x41) D2, g1 Y bord inférieur image créature 0527 146 (x92) D2, g2 X milieu, -100 => 46 0528 65 (x41) D2, g2 Y bord inférieur 0529 135 (x87) D2, g3 X milieu, -100 => 35 0530 67 (x43) D2, g3 Y bord inférieur 0531 80 (x50) D2, g4 X milieu, -100 => -20 0532 67 (x43) D2, g4 Y bord inférieur 0533 120 (x78) D2, g5 X milieu, -100 => 20 0534 66 (x42) D2, g5 Y bord inférieur 0535 77 (x4D) D2, d1 X milieu image créature, +100 => 177 0536 65 (x41) D2, d1 Y bord inférieur image créature 0537 124 (x7C) D2, d2 X milieu, +100 => 224 0538 65 (x41) D2, d2 Y bord inférieur 0539 143 (x8F) D2, d3 X milieu, +100 => 243 0540 67 (x43) D2, d3 Y bord inférieur 0541 89 (x59) D2, d4 X milieu, +100 => 189 0542 67 (x43) D2, d4 Y bord inférieur 0543 105 (x69) D2, d5 X milieu, +100 => 205 0544 66 (x42) D2, d5 Y bord inférieur 0545 83 (x53) D1, c1 X milieu image créature 0546 79 (x4F) D1, c1 Y bord inférieur image créature 0547 141 (x8D) D1, c2 X milieu 0548 79 (x4F) D1, c2 Y bord inférieur 0549 148 (x94) D1, c3 X milieu 0550 85 (x55) D1, c3 Y bord inférieur 0551 76 (x4C) D1, c4 X milieu 0552 85 (x55) D1, c4 Y bord inférieur 0553 111 (x6F) D1, c5 X milieu 0554 81 (x51) D1, c5 Y bord inférieur 0555 46 (x2E) D1, g1 X milieu image créature, -100 => -54 0556 79 (x4F) D1, g1 Y bord inférieur image créature 0557 118 (x76) D1, g2 X milieu, -100 => 18 0558 79 (x4F) D1, g2 Y bord inférieur 0559 101 (x65) D1, g3 X milieu, -100 => 1 0560 85 (x55) D1, g3 Y bord inférieur 0561 0 (x00) D1, g4 => créature considérée comme invisible 0562 0 (x00) D1, g4 0563 79 (x4F) D1, g5 X milieu, -100 => -21 0564 81 (x51) D1, g5 Y bord inférieur 0565 107 (x6B) D1, d1 X milieu image créature, +100 => 207 0566 79 (x4F) D1, d1 Y bord inférieur image créature 0567 177 (xB1) D1, d2 X milieu, +100 => 277 0568 79 (x4F) D1, d2 Y bord inférieur 0569 0 (x00) D1, d3 => créature considérée comme invisible 0570 0 (x00) D1, d3 0571 123 (x7B) D1, d4 X milieu, +100 => 223 0572 85 (x55) D1, d4 Y bord inférieur 0573 144 (x90) D1, d5 X milieu, +100 => 244 0574 81 (x51) D1, d5 Y bord inférieur 0575 0 (x00) D0, g1 => créature considérée comme invisible 0576 0 (x00) D0, g1 0577 67 (x43) D0, g2 X milieu image créature, -100 => -33 0578 96 (x60) D0, g2 Y bord inférieur image créature 0579 0 (x00) D0, g3 => créature considérée comme invisible 0580 0 (x00) D0, g3 0581 0 (x00) D0, g4 => créature considérée comme invisible 0582 0 (x00) D0, g4 0583 0 (x00) D0, g5 => créature considérée comme invisible 0584 0 (x00) D0, g5 0585 156 (x9C) D0, d1 X milieu image créature, +100 => 256 0586 96 (x60) D0, d1 Y bord inférieur image créature 0587 0 (x00) D0, d2 => créature considérée comme invisible 0588 0 (x00) D0, d2 0589 0 (x00) D0, d3 => créature considérée comme invisible 0590 0 (x00) D0, d3 0591 0 (x00) D0, d4 => créature considérée comme invisible 0592 0 (x00) D0, d4 0593 0 (x00) D0, d5 => créature considérée comme invisible 0594 0 (x00) D0, d5
Pour donner un peu plus de vie à certaines créatures, celles-ci sont "animées" par un moyen très simple, qui consiste à afficher leur image, plus ou moins fréquemment et de manière aléatoire, avec un léger "décalage" horizontal et/ou vertical par rapport aux coordonnées de référence données par les octets 0265 à 0594. On a ainsi l'impression que certaines créatures sont constamment en mouvement, même lorsqu'elles restent sur place. Les octets 0595 à 0618 donnent tout simplement les valeurs utilisées pour effectuer ces "décalages".
En fait, quelle que soit la créature considérée, les coordonnées utilisées pour afficher son image sont toujours obtenues par les calculs suivants :
X=X(ref)+dx
Y=Y(ref)+dy
Avec :
** Le choix des valeurs pour dx et dy se fait comme ceci : - Pour les créatures : Démon, Elémentaire eau, Fantôme, Flamme noire, Lord Chaos, Lord Grey, Lord Order, Momie, Petit mage, Ruster, Screamer, Tas de pierres, et Ver géant : dx : - est égal à la valeur de l'octet 0595 à D1 (=> 0) - est égal à la valeur de l'octet 0603 à D2 (=> 0) - est égal à la valeur de l'octet 0611 à D3 (=> 0) dy : - est égal à la valeur de l'octet 0595 à D1, D2, et D3 (=> 0) Ces créatures sont en fait toujours affichées aux coordonnées de référence, puisque les valeurs choisies pour les "décalages" sont toutes nulles! - Pour le Dragon : dx : - est égal à la valeur de l'octet 0595 à D1 (=> 0) - est égal à la valeur de l'octet 0603 à D2 (=> 0) - est égal à la valeur de l'octet 0611 à D3 (=> 0) dy : - est choisi aléatoirement parmi les octets 0595, 0596 et 0602, à D1, D2, et D3 (=> 0, 1, ou -1) Le Dragon n'est donc "animé" que verticalement. - Pour les créatures : Giggler, Scorpion, et Squelette : dx : - est choisi aléatoirement parmi les octets 0595, 0596, 0602, à D1 (=> 0, 1, ou -1) - est choisi aléatoirement parmi les octets 0603, 0604, 0610, à D2 (=> 0, 1, ou -1) - est choisi aléatoirement parmi les octets 0611, 0612, 0618, à D3 (=> 0, 1, ou -1) dy : - est égal à la valeur de l'octet 0595 à D1, D2, et D3 (=> 0) Ces créatures ne sont donc "animées" qu'horizontalement. - Pour les créatures : Armure animée, Oitu, Rat, Troll, et Swamp Slime : dx : - est choisi aléatoirement parmi les octets 0595, 0596, 0602, à D1 (=> 0, 1, ou -1) - est choisi aléatoirement parmi les octets 0603, 0604, 0610, à D2 (=> 0, 1, ou -1) - est choisi aléatoirement parmi les octets 0611, 0612, 0618, à D3 (=> 0, 1, ou -1) dy : - est choisi aléatoirement parmi les octets 0595, 0596 et 0602, à D1, D2, et D3 (=> 0, 1, ou -1) Ces créatures sont donc "animées" horizontalement et verticalement. - Pour le Materializer : dx : - est choisi aléatoirement parmi les octets 0595, 0596, 0602, à D1 (=> 0, 1, ou -1) - est choisi aléatoirement parmi les octets 0603, 0604, 0610, à D2 (=> 0, 1, ou -1) - est choisi aléatoirement parmi les octets 0611, 0612, 0618, à D3 (=> 0, 1, ou -1) dy : - est choisi aléatoirement parmi les octets 0595, 0596, 0597, 0601, 0602, à D1, D2, et D3 (=> 0, 1, 2, -2, ou -1) Le Materializer est donc "animé" horizontalement et verticalement. - Pour le Golem de pierre : dx : - est choisi aléatoirement parmi les octets 0595, 0596, 0597, 0601, 0602, à D1 (=> 0, 1, 2, -2, ou -1) - est choisi aléatoirement parmi les octets 0603, 0604, 0605, 0609, 0610, à D2 (=> 0, 1, ou -1) - est choisi aléatoirement parmi les octets 0611, 0612, 0613, 0617, 0618, à D3 (=> 0, 1, ou -1) dy : - est égal à la valeur de l'octet 0595 à D1, D2, et D3 (=> 0) Le Golem de Pierre n'est donc "animé" qu'horizontalement. - Pour le Beholder et le Couatl : dx : - est choisi aléatoirement parmi les octets 0595, 0596, 0597, 0601, 0602, à D1 (=> 0, 1, 2, -2, ou -1) - est choisi aléatoirement parmi les octets 0603, 0604, 0605, 0609, 0610, à D2 (=> 0, 1, ou -1) - est choisi aléatoirement parmi les octets 0611, 0612, 0613, 0617, 0618, à D3 (=> 0, 1, ou -1) dy : - est choisi aléatoirement parmi les octets 0595, 0596 et 0602, à D1, D2, et D3 (=> 0, 1, ou -1) Ces deux créatures sont donc "animées" horizontalement et verticalement. - Et enfin pour la Guêpe : dx : - est choisi aléatoirement parmi les octets 0595, 0596, 0597, 0601, 0602, à D1 (=> 0, 1, 2, -2, ou -1) - est choisi aléatoirement parmi les octets 0603, 0604, 0605, 0609, 0610, à D2 (=> 0, 1, ou -1) - est choisi aléatoirement parmi les octets 0611, 0612, 0613, 0617, 0618, à D3 (=> 0, 1, ou -1) dy : - est choisi aléatoirement parmi les octets 0595, 0596, 0597, 0601, 0602, à D1, D2, et D3 (=> 0, 1, 2, -2, ou -1) La Guêpe est donc "animée" horizontalement et verticalement.
REMARQUE: les valeurs des octets 0595 à 0618 sont également utilisées pour le calcul des coordonnées d'affichage des objets posés sur le sol ou dans une niche!! (voir fichier sur les octets 1457 à 1488 pour les détails).
0595 0 (x00) 0 0596 1 (x01) 1 0597 2 (x02) 2 0598 3 (x03) 3 (cette valeur ne semble pas être utilisée pour créatures) 0599 0 (x00) 0 (cette valeur ne semble pas être utilisée pour créatures) 0600 253 (xFD) -3 (cette valeur ne semble pas être utilisée pour créatures) 0601 254 (xFE) -2 0602 255 (xFF) -1 0603 0 (x00) 0 0604 1 (x01) 1 0605 1 (x01) 1 0606 2 (x02) 2 (cette valeur ne semble pas être utilisée pour créatures) 0607 0 (x00) 0 (cette valeur ne semble pas être utilisée pour créatures) 0608 254 (xFE) -2 (cette valeur ne semble pas être utilisée pour créatures) 0609 255 (xFF) -1 0610 255 (xFF) -1 0611 0 (x00) 0 0612 1 (x01) 1 0613 1 (x01) 1 0614 1 (x01) 1 (cette valeur ne semble pas être utilisée pour créatures) 0615 0 (x00) 0 (cette valeur ne semble pas être utilisée pour créatures) 0616 255 (xFF) -1 (cette valeur ne semble pas être utilisée pour créatures) 0617 255 (xFF) -1 0618 255 (xFF) -1
Cette partie indique les changements de couleurs qu'il faut effectuer pour afficher les créatures à D2 ou à D3, par rapport aux couleurs utilisées à D1. Les octets viennent par groupes de 16 et chaque octet représente une couleur, dans l'ordre 0, 1, 2... La valeur d'un octet donne simplement l'indice de la couleur qui doit remplacer la couleur qu'il représente. ** Remarque ** : les couleurs 09 (orange) et 10 (rose) sont des cas particuliers. En effet, certaines créatures peuvent remplacer ces deux couleurs par des couleurs provenant d'une autre palette (voir octets 0833 à 1156)! Pour obtenir les bons indices de couleurs, on divise la valeur des octets par 10. *** Pour une créature à D2 *** 0619 0 (x00) la couleur 00 (noir) ne change pas 0620 10 (x0A) la couleur 01 (gris 2) ne change pas 0621 20 (x14) la couleur 02 (gris 1) ne change pas 0622 30 (x1E) la couleur 03 (brun foncé) ne change pas 0623 40 (x28) la couleur 04 (cyan) ne change pas 0624 30 (x1E) la couleur 05 (brun) est remplacée par la couleur 03 (brun foncé) 0625 60 (x3C) la couleur 06 (vert foncé) ne change pas 0626 70 (x46) la couleur 07 (vert) ne change pas 0627 50 (x32) la couleur 08 (rouge) est remplacée par la couleur 05 (brun) 0628 0 (x00) la couleur 09 (orange) est un cas particulier... 0629 0 (x00) la couleur 10 (rose) est un cas particulier... 0630 110 (x6E) la couleur 11 (jaune) ne change pas 0631 120 (x78) la couleur 12 (gris foncé) ne change pas 0632 130 (x82) la couleur 13 (gris clair) ne change pas 0633 140 (x8C) la couleur 14 (bleu) ne change pas 0634 150 (x96) la couleur 15 (blanc) ne change pas *** Pour une créature à D3 *** 0635 0 (x00) la couleur 00 (noir) ne change pas 0636 120 (x78) la couleur 01 (gris 2) est remplacée par la couleur 12 (gris foncé) 0637 10 (x0A) la couleur 02 (gris 1) est remplacée par la couleur 01 (gris 2) 0638 30 (x1E) la couleur 03 (brun foncé) ne change pas 0639 40 (x28) la couleur 04 (cyan) ne change pas 0640 30 (x1E) la couleur 05 (brun) est remplacée par la couleur 03 (brun foncé) 0641 0 (x00) la couleur 06 (vert foncé) est remplacée par la couleur 00 (noir) 0642 60 (x3C) la couleur 07 (vert) est remplacée par la couleur 06 (vert foncé) 0643 30 (x1E) la couleur 08 (rouge) est remplacée par la couleur 03 (brun foncé) 0644 0 (x00) la couleur 09 (orange) est un cas particulier... 0645 0 (x00) la couleur 10 (rose) est un cas particulier... 0646 110 (x6E) la couleur 11 (jaune) ne change pas 0647 0 (x00) la couleur 12 (gris foncé) est remplacée par la couleur 00 (noir) 0648 20 (x14) la couleur 13 (gris clair) est remplacée par la couleur 02 (gris 1) 0649 0 (x00) la couleur 14 (bleu) est remplacée par la couleur 00 (noir) 0650 130 (x82) la couleur 15 (blanc) est remplacée par la couleur 13 (gris clair)
ADGE: Private palettes(13, 7) As Long Array of 13 structs. Each struct contains 6 words and two bytes. The 6 words on a line define a color for the 6 possible color palettes used for the dungeon view (from brightest to darkest). The two bytes are used to replace bytes in 'Palette changes for creatures' (see previous section) when the creature is at D2 (first byte) or D3 (second byte). 0650 0540 0430 0320 0210 0100 5A 5A 5Ah = 90 0030 0020 0010 0000 0000 0000 00 00 0430 0320 0210 0100 0000 0000 64 64 64h = 100 0320 0210 0100 0000 0000 0000 5A 00 0005 0004 0003 0002 0001 0000 5A 64 0004 0003 0002 0001 0000 0000 64 00 0404 0303 0202 0101 0000 0000 5A 00 0505 0404 0303 0202 0101 0000 64 5A 0750 0640 0530 0420 0310 0200 64 32 32h = 50 0740 0630 0520 0410 0300 0100 32 1E 1Eh = 30 0400 0300 0200 0100 0000 0000 64 64 0300 0200 0100 0000 0000 0000 78 00 78h = 120 0643 0532 0421 0310 0200 0100 64 32 Example: the first word 0650h defines an RGB color of (6, 5, 0), the first nibble is ignored.
Cette partie décrit les images des différentes créatures du jeu (graphs 0446 à 0532). Chaque créature est décrite par 12 octets, qui se présentent de la façon suivante : Octet 01 : ? à 0 pour toutes les créatures... Octet 02 : index de l'image de face de la créature (à partir du graph 0446). Octet 03 : ? à 0 pour toutes les créatures... Octet 04 : ? à 0 pour toutes les créatures... Octet 05 : largeur de l'image de la créature vue de face divisée par 2 (NB : la largeur de toutes les images des créatures est un multiple de 16). Si elle existe, l'image de la vue de dos doit avoir exactement la même largeur que l'image de la vue de face, car c'est la même valeur qui est utilisée. Octet 06 : hauteur de l'image de la créature vue de face, en pixels. Si elle existe, l'image de la vue de dos doit avoir exactement la même hauteur que l'image de la vue de face, car c'est la même valeur qui est utilisée. Octet 07 : largeur de l'image de la créature vue de profil divisée par 2 (largeur=multiple de 16). Octet 08 : hauteur de l'image de la créature vue de profil, en pixels. Octet 09 : largeur de l'image de la créature en attaque divisée par 2 (largeur=multiple de 16). Octet 10 : hauteur de l'image de la créature en attaque, en pixels. Octet 11 : - Les 4 bits de gauche indiquent le groupe de coordonnées de référence qu'il faut utiliser pour afficher la créature (voir octets 0265 à 0594) : - groupe 0 => position moyenne (groupes de 1 à 4 créatures) - groupe 1 => position basse (groupes de 1 ou 2 créatures seulement) - groupe 2 => position haute (créatures volantes, groupes de 1 à 4 créatures) - Les 4 bits de droite donnent l'index de la couleur de transparence de l'image de la créature (valeur comprise entre 0 et 15). Cette couleur doit être la même pour toutes les vues (face, profil, dos, attaque). Exemple : j'ouvre les images du scorpion (graphs 0446 à 0449) et je vérifie l'index de la couleur grise utilisée pour le fond : c'est la couleur 13, donc les 4 bits de droite de l'octet 0843 auront pour valeur 1101. Octet 12 : change les couleurs 09 (orange) et 10 (rose) dans la vue du donjon, en utilisant des couleurs provenant d'une autre palette (on va l'appeler "palette N°2" pour plus de clarté). Ceci permet de donner à certaines créatures des couleurs particulières (exemple : couleur violette du ver géant, le bleu des trolls, le rouge du dragon...). - les 4 bits de gauche donnent l'indice de la couleur, issue de la palette N°2, qui remplacera la couleur 10 (rose) dans la vue du donjon. - les 4 bits de droite donnent l'indice de la couleur, issue de la palette N°2, qui remplacera la couleur 09 (orange) dans la vue du donjon. Ces changements de couleur fonctionnent d'une façon assez particulière, expliquée en détail dans le fichier "Couleurs des créatures.txt" ** Remarque ** : si une créature est définie comme n'ayant pas d'image de profil (octets 7 et 8 à 0), il est automatiquement considéré qu'elle n'a pas de vue de dos non plus. Si une créature est définie comme disposant d'une image de profil, alors il est automatiquement considéré qu'elle dispose également d'une vue de dos.
*** Créature 01 (Scorpion géant, graphs 0446 à 0449) *** 0833 0 (x00) 0834 0 (x00) 0446+0=0446 => Graph 0446 = scorpion vu de face 0835 0 (x00) 0836 0 (x00) 0837 56 (x38) largeur image face/2 (largeur image face=multiple de 16) 0838 84 (x54) hauteur image face en pixels 0839 56 (x38) largeur image profil/2 (largeur image profil=multiple de 16) 0840 84 (x54) hauteur image profil en pixels 0841 56 (x38) largeur image attaque/2 (largeur image attaque=multiple de 16) 0842 84 (x54) hauteur image attaque en pixels 0843 29 (x1D) 0001 => groupe 1 1101 => couleur de transparence = couleur 13 (gris) dans les images du scorpion 0844 1 (x01) 0000 => ne modifie pas la couleur 10 0001 => couleur 09 remplacée par la couleur 01 (jaune) de la palette N°2 *** Créature 02 (Swamp Slime, graphs 0450 et 0451) *** 0845 0 (x00) 0846 4 (x04) 0446+4=0450 => Graph 0450 = swamp slime vu de face 0847 0 (x00) 0848 0 (x00) 0849 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0850 66 (x42) hauteur image face en pixels 0851 0 (x00) => pas d'image de profil (=> pas d'image de dos non plus) 0852 0 (x00) 0853 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0854 69 (x45) hauteur image attaque en pixels 0855 11 (x0B) 0000 => groupe 0 1011 => couleur transparence = couleur 11 (jaune) dans les images du swamp slime 0856 32 (x20) 0010 => couleur 10 remplacée par la couleur 02 (vert foncé) de la palette N°2 0000 => ne modifie pas la couleur 09 *** Créature 03 (Giggler, graphs 0452 à 0454 (+0455, vue d'attaque non définie)) *** 0857 0 (x00) 0858 6 (x06) Graph 0452 = Giggler vu de face 0859 0 (x00) 0860 0 (x00) 0861 24 (x18) largeur image face/2 (largeur image face=multiple de 16) 0862 48 (x30) hauteur image face en pixels 0863 24 (x18) largeur image profil/2 (largeur image profil=multiple de 16) 0864 48 (x30) hauteur image profil en pixels 0865 0 (x00) => pas d'image d'attaque 0866 0 (x00) 0867 11 (x0B) 0000 => groupe 0 1011 => couleur transparence = couleur 11 (jaune) 0868 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 04 (Beholder, graphs 0456 et 0457) *** 0869 0 (x00) 0870 10 (x0A) Graph 0456 = Beholder vu de face 0871 0 (x00) 0872 0 (x00) 0873 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0874 61 (x3D) hauteur image face en pixels 0875 0 (x00) => pas d'image de profil (=> pas d'image de dos non plus) 0876 0 (x00) 0877 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0878 61 (x3D) hauteur image attaque en pixels 0879 36 (x24) 0010 => groupe 2 0100 => couleur transparence = couleur 04 (cyan) 0880 49 (x31) 0011 => couleur 10 remplacée par couleur 03 (brun/jaune) de la palette N°2 0001 => couleur 09 remplacée par couleur 01 (jaune) de la palette N°2 *** Créature 05 (Rat géant, graphs 0458 à 0461) *** 0881 0 (x00) 0882 12 (x0C) Graph 0458 = Rat vu de face 0883 0 (x00) 0884 0 (x00) 0885 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0886 64 (x40) hauteur image face en pixels 0887 56 (x38) largeur image profil/2 (largeur image profil=multiple de 16) 0888 64 (x40) hauteur image profil en pixels 0889 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0890 64 (x40) hauteur image attaque en pixels 0891 20 (x14) 0001 => groupe 1 0100 => couleur transparence = couleur 04 (cyan) 0892 52 (x34) 0011 => couleur 10 remplacée par couleur 03 (brun/jaune) de la palette N°2 1000 => couleur 09 remplacée par couleur 04 (brun) de la palette N°2 *** Créature 06 (Ruster, graphs 0462 à 0464) *** 0893 0 (x00) 0894 16 (x10) Graph 0462 = Ruster vu de face 0895 0 (x00) 0896 0 (x00) 0897 24 (x18) largeur image face/2 (largeur image face=multiple de 16) 0898 49 (x31) hauteur image face en pixels 0899 40 (x28) largeur image profil/2 (largeur image profil=multiple de 16) 0900 49 (x31) hauteur image profil en pixels 0901 0 (x00) => pas d'image d'attaque 0902 0 (x00) 0903 24 (x18) 0001 => groupe 1 1000 => couleur transparence = couleur 08 (rouge) 0904 52 (x34) 0011 => couleur 10 remplacée par couleur 03 (brun/jaune) de la palette N°2 1000 => couleur 09 remplacée par couleur 04 (brun) de la palette N°2 *** Créature 07 (Screamer, graphs 0465 et 0466) *** 0905 0 (x00) 0906 19 (x13) Graph 0465 = Screamer vu de face 0907 0 (x00) 0908 0 (x00) 0909 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0910 60 (x3C) hauteur image face en pixels 0911 0 (x00) => pas d'image de profil (=> pas d'image de dos non plus) 0912 0 (x00) 0913 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0914 60 (x3C) hauteur image attaque en pixels 0915 13 (x0D) 0000 => groupe 0 1101 => couleur transparence = couleur 13 (gris) 0916 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 08 (Tas de pierres, graphs 0467 et 0468) *** 0917 0 (x00) 0918 21 (x15) Graph 0467 = Tas de pierres vu de face 0919 0 (x00) 0920 0 (x00) 0921 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0922 43 (x2B) hauteur image face en pixels 0923 0 (x00) => pas d'image de profil (=> pas d'image de dos non plus) 0924 0 (x00) 0925 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0926 64 (x40) hauteur image attaque en pixels 0927 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 0928 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 09 (Fantôme, graphs 0469 et 0470) *** 0929 0 (x00) 0930 23 (x17) Graph 0469 = Fantôme vu de face 0931 0 (x00) 0932 0 (x00) 0933 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0934 83 (x53) hauteur image face en pixels 0935 0 (x00) => pas d'image de profil (=> pas d'image de dos non plus) 0936 0 (x00) 0937 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0938 93 (x5D) hauteur image attaque en pixels 0939 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 0940 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 10 (Golem de pierre, graphs 0471 à 0474) *** 0941 0 (x00) 0942 25 (x19) Graph 0471 = Golem de pierre vu de face 0943 0 (x00) 0944 0 (x00) 0945 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0946 101 (x65) hauteur image face en pixels 0947 32 (x20) largeur image profil/2 (largeur image profil=multiple de 16) 0948 101 (x65) hauteur image profil en pixels 0949 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0950 101 (x65) hauteur image attaque en pixels 0951 20 (x14) 0001 => groupe 1 0100 => couleur transparence = couleur 04 (cyan) 0952 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 11 (Momie, graphs 0475 à 0478) *** 0953 0 (x00) 0954 29 (x1D) Graph 0475 = Momie vue de face 0955 0 (x00) 0956 0 (x00) 0957 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0958 82 (x52) hauteur image face en pixels 0959 32 (x20) largeur image profil/2 (largeur image profil=multiple de 16) 0960 82 (x52) hauteur image profil en pixels 0961 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0962 83 (x53) hauteur image attaque en pixels 0963 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 0964 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 12 (Flamme noire, graphs 0479 et 0480) *** 0965 0 (x00) 0966 33 (x21) Graph 0479 = Flamme noire vue de face 0967 0 (x00) 0968 0 (x00) 0969 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0970 80 (x50) hauteur image face en pixels 0971 0 (x00) => pas d'image de profil (=> pas d'image de dos non plus) 0972 0 (x00) 0973 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0974 99 (x63) hauteur image attaque en pixels 0975 20 (x14) 0001 => groupe 1 0100 => couleur transparence = couleur 04 (cyan) 0976 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 13 (Squelette, graph 0481 à 0484) *** 0977 0 (x00) 0978 35 (x23) Graph 0481 = Squelette vu de face 0979 0 (x00) 0980 0 (x00) 0981 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0982 80 (x50) hauteur image face en pixels 0983 32 (x20) largeur image profil/2 (largeur image profil=multiple de 16) 0984 80 (x50) hauteur image profil en pixels 0985 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0986 76 (x4C) hauteur image attaque en pixels 0987 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 0988 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 14 (Couatl, graph 0485 à 0488) *** 0989 0 (x00) 0990 39 (x27) Graph 0485 = Couatl vu de face 0991 0 (x00) 0992 0 (x00) 0993 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 0994 96 (x60) hauteur image face en pixels 0995 56 (x38) largeur image profil/2 (largeur image profil=multiple de 16) 0996 93 (x5D) hauteur image profil en pixels 0997 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 0998 90 (x5A) hauteur image attaque en pixels 0999 29 (x1D) 0001 => groupe 1 1101 => couleur transparence = couleur 13 (gris) 1000 32 (x20) 0010 => couleur 10 remplacée par la couleur 02 (vert foncé) de la palette N°2 0000 => ne modifie pas la couleur 09 *** Créature 15 (Petit mage, graphs 0489 à 0492) *** 1001 0 (x00) 1002 43 (x2B) Graph 0489 = Petit mage vu de face 1003 0 (x00) 1004 0 (x00) 1005 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 1006 49 (x31) hauteur image face en pixels 1007 16 (x10) largeur image profil/2 (largeur image profil=multiple de 16) 1008 49 (x31) hauteur image profil en pixels 1009 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 1010 56 (x38) hauteur image attaque en pixels 1011 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 1012 48 (x30) 0011 => couleur 10 remplacée par couleur 03 (brun/jaune) de la palette N°2 0000 => ne modifie pas la couleur 09 *** Créature 16 (Ver géant, graphs 0493 à 0496) *** 1013 0 (x00) 1014 47 (x2F) Graph 0493 = Ver géant vu de face 1015 0 (x00) 1016 0 (x00) 1017 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 1018 59 (x3B) hauteur image face en pixels 1019 56 (x38) largeur image profil/2 (largeur image profil=multiple de 16) 1020 43 (x2B) hauteur image profil en pixels 1021 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 1022 67 (x43) hauteur image attaque en pixels 1023 20 (x14) 0001 => groupe 1 0100 => couleur transparence = couleur 04 (cyan) 1024 120 (x78) 0111 => couleur 10 remplacée par couleur 07 (violet foncé) de la palette N°2 1000 => couleur 09 remplacée par couleur 08 (violet) de la palette N°2 *** Créature 17 (Troll, graphs 0497 à 0500) *** 1025 0 (x00) 1026 51 (x33) Graph 0497 = Troll vu de face 1027 0 (x00) 1028 0 (x00) 1029 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 1030 83 (x53) hauteur image face en pixels 1031 32 (x20) largeur image profil/2 (largeur image profil=multiple de 16) 1032 74 (x4A) hauteur image profil en pixels 1033 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 1034 74 (x4A) hauteur image attaque en pixels 1035 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 1036 101 (x65) 0110 => couleur 10 remplacée par couleur 06 (bleu foncé) de la palette N°2 0101 => couleur 09 remplacée par couleur 05 (bleu) de la palette N°2 *** Créature 18 (Guêpe géante, graphs 0501 à 0504) *** 1037 0 (x00) 1038 55 (x37) Graph 0501 = Guêpe vue de face 1039 0 (x00) 1040 0 (x00) 1041 24 (x18) largeur image face/2 (largeur image face=multiple de 16) 1042 49 (x31) hauteur image face en pixels 1043 24 (x18) largeur image profil/2 (largeur image profil=multiple de 16) 1044 53 (x35) hauteur image profil en pixels 1045 24 (x18) largeur image attaque/2 (largeur image attaque=multiple de 16) 1046 53 (x35) hauteur image attaque en pixels 1047 36 (x24) 0010 => groupe 2 0100 => couleur transparence = couleur 04 (cyan) 1048 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 19 (Armure animée, graphs 0505 à 0508) *** 1049 0 (x00) 1050 59 (x3B) Graph 0505 = Armure animée vue de face 1051 0 (x00) 1052 0 (x00) 1053 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 1054 89 (x59) hauteur image face en pixels 1055 32 (x20) largeur image profil/2 (largeur image profil=multiple de 16) 1056 89 (x59) hauteur image profil en pixels 1057 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 1058 89 (x59) hauteur image attaque en pixels 1059 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 1060 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 20 (Materializer, graphs 0509 à 0512) *** 1061 0 (x00) 1062 63 (x3F) Graph 0509 = Materializer vu de face 1063 0 (x00) 1064 0 (x00) 1065 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 1066 84 (x54) hauteur image face en pixels 1067 32 (x20) largeur image profil/2 (largeur image profil=multiple de 16) 1068 84 (x54) hauteur image profil en pixels 1069 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 1070 84 (x54) hauteur image attaque en pixels 1071 13 (x0D) 0000 => groupe 0 1101 => couleur transparence = couleur 13 (gris) 1072 169 (xA9) 0110 => couleur 10 remplacée par couleur 10 (orange) de la palette N°2 0101 => couleur 09 remplacée par couleur 09 (orange) de la palette N°2 *** Créature 21 (Elémentaire de l'eau, graphs 0513 et 0514) *** 1073 0 (x00) 1074 67 (x43) Graph 0513 = Elémentaire de l'eau vu de face 1075 0 (x00) 1076 0 (x00) 1077 56 (x38) largeur image face/2 (largeur image face=multiple de 16) 1078 27 (x1B) hauteur image face en pixels 1079 0 (x00) => pas d'image de profil (=> pas d'image de dos non plus) 1080 0 (x00) 1081 56 (x38) largeur image attaque/2 (largeur image attaque=multiple de 16) 1082 80 (x50) hauteur image attaque en pixels 1083 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 1084 101 (x65) 0110 => couleur 10 remplacée par couleur 06 (bleu foncé) de la palette N°2 0101 => couleur 09 remplacée par couleur 05 (bleu) de la palette N°2 *** Créature 22 (Oitu, graphs 0515 à 0518) *** 1085 0 (x00) 1086 69 (x45) Graph 0515 = Oitu vu de face 1087 0 (x00) 1088 0 (x00) 1089 56 (x38) largeur image face/2 (largeur image face=multiple de 16) 1090 77 (x4D) hauteur image face en pixels 1091 56 (x38) largeur image profil/2 (largeur image profil=multiple de 16) 1092 81 (x51) hauteur image profil en pixels 1093 56 (x38) largeur image attaque/2 (largeur image attaque=multiple de 16) 1094 77 (x4D) hauteur image attaque en pixels 1095 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 1096 169 (xA9) 0110 => couleur 10 remplacée par couleur 10 (orange) de la palette N°2 0101 => couleur 09 remplacée par couleur 09 (orange) de la palette N°2 *** Créature 23 (Démon, graphs 0519 à 0522) *** 1097 0 (x00) 1098 73 (x49) Graph 0519 = Démon vu de face 1099 0 (x00) 1100 0 (x00) 1101 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 1102 87 (x57) hauteur image face en pixels 1103 32 (x20) largeur image profil/2 (largeur image profil=multiple de 16) 1104 89 (x59) hauteur image profil en pixels 1105 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 1106 89 (x59) hauteur image attaque en pixels 1107 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 1108 203 (xCB) 1100 => couleur 10 remplacée par couleur 12 (rouge foncé) de la palette N°2 1011 => couleur 09 remplacée par couleur 11 (rouge foncé) de la palette N°2 *** Créature 24 (Lord Chaos, graphs 0523 à 0526) *** 1109 0 (x00) 1110 77 (x4D) Graph 0523 = Lord Chaos vu de face 1111 0 (x00) 1112 0 (x00) 1113 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 1114 96 (x60) hauteur image face en pixels 1115 32 (x20) largeur image profil/2 (largeur image profil=multiple de 16) 1116 94 (x5E) hauteur image profil en pixels 1117 32 (x20) largeur image attaque/2 (largeur image attaque=multiple de 16) 1118 96 (x60) hauteur image attaque en pixels 1119 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 1120 0 (x00) Ne modifie pas les couleurs 09 & 10 dans la vue du donjon *** Créature 25 (Dragon rouge, graphs 0527 à 0530) *** 1121 0 (x00) 1122 81 (x51) Graph 0527 = Dragon rouge vu de face 1123 0 (x00) 1124 0 (x00) 1125 64 (x40) largeur image face/2 (largeur image face=multiple de 16) 1126 94 (x5E) hauteur image face en pixels 1127 72 (x48) largeur image profil/2 (largeur image profil=multiple de 16) 1128 94 (x5E) hauteur image profil en pixels 1129 64 (x40) largeur image attaque/2 (largeur image attaque=multiple de 16) 1130 94 (x5E) hauteur image attaque en pixels 1131 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 1132 203 (xCB) 1100 => couleur 10 remplacée par couleur 12 (rouge foncé) de la palette N°2 1011 => couleur 09 remplacée par couleur 11 (rouge foncé) de la palette N°2 *** Créature 26 (Librasulus, graph 0531) *** 1133 0 (x00) 1134 85 (x55) Graph 0531 = Lord Librasulus vu de face 1135 0 (x00) 1136 0 (x00) 1137 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 1138 93 (x5D) hauteur image face en pixels 1139 0 (x00) => pas d'image de profil (=> pas d'image de dos non plus) 1140 0 (x00) 1141 0 (x00) => pas d'image d'attaque 1142 0 (x00) 1143 4 (x04) 0000 => groupe 0 0100 => couleur transparence = couleur 04 (cyan) 1144 203 (xCB) 1100 => couleur 10 remplacée par couleur 12 (rouge foncé) de la palette N°2 1011 => couleur 09 remplacée par couleur 11 (rouge foncé) de la palette N°2 *** Créature 27 (Grey Lord, graph 0532) *** 1145 0 (x00) 1146 86 (x56) 0446+86=0532 => Graph 0532 = Grey Lord vu de face 1147 0 (x00) 1148 0 (x00) 1149 32 (x20) largeur image face/2 (largeur image face=multiple de 16) 1150 93 (x5D) hauteur image face en pixels 1151 0 (x00) => pas d'image de profil (=> pas d'image de dos non plus) 1152 0 (x00) 1153 0 (x00) => pas d'image d'attaque 1154 0 (x00) 1155 4 (x04) 0000 => groupe 0 0100 => couleur de transparence = couleur 04 (cyan) 1156 203 (xCB) 1100 => couleur 10 remplacée par couleur 12 (rouge foncé) de la palette N°2 1011 => couleur 09 remplacée par couleur 11 (rouge foncé) de la palette N°2
Dans la vue du donjon, par défaut, la couleur 09 est orange, et la couleur 10 rose. Lorsque l'on introduit une créature dans un niveau avec CSBuild (par le menu Edit/Level info), il faut savoir que, dans le jeu, elle va modifier ces 2 couleurs par le biais de l'octet 12 qui la décrit (voir notes sur les octets 0833 à 1156). Ceci s'opère de la façon suivante : - Si les 4 bits de gauche de l'octet 12 ont une valeur nulle, alors la couleur 10 n'est pas changée. Une autre créature introduite par la suite pourra donc mofifier cette couleur pour ce niveau! - Si les 4 bits de gauche de l'octet 12 ont une valeur non nulle, alors la créature impose une nouvelle couleur, provenant de la palette N°2, qui remplacera la couleur 10 utilisée dans ce niveau du donjon. Toute autre créature introduite par la suite dans le niveau utilisera cette nouvelle couleur (ceci est particulièrement important si l'image de la créature utilise la couleur 10!). De même : - Si les 4 bits de droite de l'octet 12 ont une valeur nulle, la couleur 9 demeure inchangée. Une autre créature introduite dans ce niveau pourra donc mofifier cette couleur. - Si les 4 bits de droite de l'octet 12 ont une valeur non nulle, alors la créature impose une nouvelle couleur, provenant de la palette N°2, qui remplacera la couleur 09 utilisée dans ce niveau du donjon. Toute autre créature introduite par la suite dans le niveau utilisera cette nouvelle couleur (important si l'image de la créature utilise la couleur 9!). En pratique, avec CSBuild, la créature qui "impose ses couleurs" pour un niveau donné est la créature la plus en bas de la liste des "Monsters" dans la fenêtre "Edit Level information". Si cette créature ne modifie pas les couleurs 9 et 10, alors on vérifie avec la créature juste au-dessus et ainsi de suite. Exemple : --------- Pour un niveau donné, je vois dans la fenêtre "Edit Level information" la liste de créatures suivante : Dragon Worm Screamer Scorpion Mummy Je commence donc par la momie, puis je remonte dans la liste : - l'octet 0964 a pour valeur (x00) => la momie ne modifie pas les couleurs 09 et 10. - l'octet 0844 a pour valeur (x01) => le scorpion ne touche pas à la couleur 10, mais impose une couleur jaune, qui remplacera la couleur 09. - l'octet 0916 a pour valeur (x00) => le screamer ne modifie pas les couleurs. - l'octet 1024 a pour valeur (x78) => le ver aimerait bien changer les 2 couleurs! Mais le scorpion a déjà imposé une nouvelle couleur 09. Le ver "subira" donc cette couleur, mais imposera une teinte violette pour la couleur 10. - l'octet 1132 a pour valeur (xCB) => le dragon aimerait bien changer également les 2 couleurs! Mais les 2 sont déjà modifiées... trop tard, fallait arriver plus tôt, le dragon sera jaune et violet dans ce niveau! Compliquons un peu les choses! (youpi! ^^) ------------------------------------------ Pour les images des créatures, les couleurs utilisées à D2 et D3 sont bien sûr "modifiées" par rapport à D1, de sorte que les créatures se "fondent" dans l'obscurité au loin. Pour les couleurs 09 et 10, cela peut se traduire par des changements assez... surprenants! En effet, pour les créatures, il y a quelques petites choses à savoir : - les "changements" opérés à D2 et à D3 pour une couleur issue de la palette N°2 peuvent être très différents selon qu'elle remplace la couleur 09 ou la 10 dans la vue du donjon! Donc, si je dessine une nouvelle créature et que je souhaite qu'elle exploite la couleur "X" de la palette N°2, par exemple, je dois absolument me poser la question suivante : - "Dois-je utiliser la couleur 09 ou la couleur 10 dans mon dessin pour représenter la couleur X?". - à D2 ou à D3, il se peut très bien que la couleur remplaçant la couleur 09 soit remplacée par la couleur 10, et vice-versa!! Donc, si je veux dessiner une nouvelle créature exploitant les couleurs "X" et "Y" de la palette N°2, je dois d'abord me poser la question suivante : - "Les couleurs X et Y donnent-elles un résultat intéressant si on les utilise ensemble?" (par exemple: il n'est pas forcément génial d'avoir un monstre qui a la tête jaune et le corps bleu à D1, qui devient tout bleu à D2, et dont la tête est bleue et le corps jaune à D3! :))) Pour clarifier tout ça, on va ouvrir l'image de la "Table des couleurs"! (de prime abord, cette table peut paraître impressionnante, mais en fait son utilisation est toute simple, et on peut la dessiner assez rapidement une fois que l'on a compris comment ça marche :))).
Cette "Table des couleurs" permet de savoir exactement à quoi ressembleront les couleurs 09 et 10 dans la vue du donjon, pour une créature à D1, D2, et D3, en fonction de la valeur de l'octet 12 de la créature qui nous intéresse! Les indices de 0 à F, sur la gauche, représentent les différentes valeurs des 4 bits de gauche de l'octet 12, c'est à dire l'index de la couleur de la palette N°2 qui remplacera la couleur 10 dans la vue du donjon. Les indices de 0 à F, en haut, représentent les différentes valeurs des 4 bits de droite de l'octet 12, c'est à dire l'index de la couleur de la palette N°2 qui remplacera la couleur 9 dans la vue du donjon. Chaque case de la table est un petit tableau de 6 cases donnant les couleurs 9 et 10 dans la vue du donjon en fonction de la distance : Couleur 10 dans Couleur 09 dans la vue du donjon la vue du donjon \ / +--------+--------+ | à D1 | à D1 | +--------+--------+ | à D2 | à D2 | +--------+--------+ | à D3 | à D3 | +--------+--------+ **** Si l'octet 12 d'une créature a la valeur (x00), on voit que les 6 cases du petit tableau sont toutes cochées. J'ai utilisé cette représentation pour indiquer que la créature laisse les couleurs 09 et 10 inchangées dans la vue du donjon. **** Si les 4 bits de gauche de l'octet 12 sont à 0 et que les 4 bits de droite donnent une valeur non nulle, on s'en réfère à la ligne 0 de la table. Sur cette ligne, les petits tableaux se présentent sous la forme suivante : Couleur 10 non modifiée Couleur 09 dans par la créature la vue du donjon \ / +--------+--------+ | / | à D1 | +--------+--------+ | / | à D2 | +--------+--------+ | / | à D3 | +--------+--------+ Si la case représentant la couleur 09 à D2 ou à D3 (ou les deux) est cochée, cela signifie qu'à cette distance, la couleur utilisée sera la couleur 10 à D1 (c'est à dire la couleur de la case du haut de la colonne de gauche du petit tableau)! Pour bien comprendre ceci, observer les petits tableaux de la colonne 3, par exemple. **** Si les 4 bits de gauche de l'octet 12 donnent une valeur non nulle et que les 4 bits de droite sont à 0, on s'en réfère à la colonne 0 de la table. Sur cette colonne, les petits tableaux se présentent sous la forme suivante : Couleur 10 dans Couleur 09 non modifiée la vue du donjon par la créature \ / +--------+--------+ | à D1 | / | +--------+--------+ | à D2 | / | +--------+--------+ | à D3 | / | +--------+--------+ Si la case représentant la couleur 10 à D2 ou à D3 (ou les deux) est cochée, cela signifie qu'à cette distance, la couleur utilisée sera la couleur 09 à D1 (c'est à dire la couleur de la case du haut de la colonne de droite du petit tableau)! Pour bien comprendre ceci, observer les petits tableaux de la ligne 1, par exemple. **** En comparant les petits tableaux de la ligne 0 avec ceux de la colonne 0, on remarque qu'une même couleur peut effectivement se comporter différemment à D2 et D3 selon qu'elle remplace la couleur 09 ou la couleur 10. Remarque : la couleur 09 de la palette N°2 est exactement la même que la couleur 09 utilisée "par défaut" dans la palette de la vue du donjon. Et la couleur 13 de la palette N°2 est exactement la même que la couleur 10 utilisée "par défaut" dans la palette de la vue du donjon. Exemples d'utilisation pratique de la "Table des couleurs" : ------------------------------------------------------------ 1). On souhaite déterminer si le scorpion et le couatl peuvent "cohabiter harmonieusement" dans le même niveau. On commence donc par regarder l'octet 12 de ces deux créatures. L'octet 0844 nous donne ainsi (x01) pour le scorpion, et l'octet 1000 nous donne (x20) pour le couatl. Le scorpion ne modifie que la couleur 09, et le couatl ne modifie que la couleur 10. En fait, cela revient au même que si on avait une seule créature, avec une valeur de (x21) pour l'octet 12. On consulte le petit tableau qui se trouve sur la ligne 2 et dans la colonne 1 de la table => aucun problème de couleur à D2 ou D3, on peut placer un scorpion et un couatl dans le même niveau sans souci. 2). On souhaite modifier les images du dragon rouge, pour que son corps soit vert et sa langue rose (quelles que soient les créatures introduites par la suite dans le même niveau). Le dragon devra donc modifier les couleur 09 et 10 pour exploiter le "vert foncé" et le "rose" de la palette N°2. Est-ce faisable? Les couleurs ne vont-elles pas "s'entremêler" à D2 ou D3? Le suspense est insoutenable... Consultons la table des couleurs! :))) - Ligne 2 pour le vert, colonne D pour le rose... ah zut! Le rose devient vert à D2! :( - Ligne D pour le rose, colonne 2 pour le vert... ça colle! :) On remplacera donc la valeur de l'octet 1132 par (xD2). Et dans les images du dragon, on utilisera la couleur 10 pour représenter le rose, et la couleur 09 pour représenter le vert foncé (NB : les images du dragon modifié se trouvent dans le fichier "Dragon vert.zip", il n'y a plus qu'à tester ^^).
Ici sont définis 3 grands groupes de coordonnées de référence utilisées pour afficher les objets placés sur le sol ou dans une niche. Pour chaque objet, un octet indiquera lequel de ces 3 grands groupes il faut utiliser pour l'afficher au bon endroit (voir définition des images des objets, octets 1643 à 2152). ** REMARQUE ** : ces coordonnées de référence ne suffisent pas à savoir au pixel près où sera affiché un objet donné! En effet, il faut aussi prendre en compte l'effet "d'empilement" des objets (voir octets 1457 à 1488).. Ces coordonnées de référence sont en fait les coordonnées moyennes autour desquelles les objets seront affichés si on les entasse! ------------------- |g1 g2|c1 c2|d1 d2| | | | | <------ objets à D3 (distance 3) |g4 g3|c4 c3|d4 d3| ---N-----N-----N--- <------ mur à D3 (N = Niche) |g1 g2|c1 c2|d1 d2| | | | | <------ objets à D2 (distance 2) |g4 g3|c4 c3|d4 d3| ---N-----N-----N--- <------ mur à D2 (N = Niche) |g1 g2|c1 c2|d1 d2| | | | | <------ objets à D1 (distance 1) |g4 g3|c4 c3|d4 d3| ---N-----N-----N--- <------ mur à D1 (N = Niche) |c1 c2| | J | <------ objets à D0 (distance 0, J = Position du Joueur (tourné vers le Nord)) |c4 c3| ---N--- g1, g2, g3, g4 positions possibles d'un objet dans une case sur la gauche du joueur c1, c2, c3, c4 positions possibles d'un objet dans une case en face du joueur d1, d2, d3, d4 positions possibles d'un objet dans une case sur la droite du joueur Vue du donjon : (X milieu image objet) | 0------------------+-------------------223---> X (en pixels) | | | | | | | | | | | | | | | | OOOOOOOOOOO | | OOOOOOOOOOO | | OOOOOOOOOOO <--- image | | OOOOOOOOOOO d'un objet | | OOOOOOOOOOO_____________________ (Y bord inférieur image objet) | | | | | | | | 135--------------------------------------- | Y (en pixels) ** Remarque ** : les "X milieu image" et "Y bord inférieur image" qui vont être donnés ici ne sont pas les coordonnées définitives où sera affichée l'image d'un objet, puisque, comme dit précédemment, il faut aussi tenir compte de "l'effet d'empilement", mais pour l'instant on fait abstraction de tout ça... N° Valeur Fonction, commentaires... Octet (déc/hexa)
Ces coordonnées sont utilisées pour afficher : coffre, outre (pleine/vide), vêtements elfe, bottes noires, bouclier ovoïde, hache, dague, vêtements cuir, vêtements blancs, bottes marrons, morningstar, flamit, cendres, ossements, massue pierre, bâton "conduit", heaume, bouclier rond, sandales, chausses (armure), bottes elfes, corne peur, vêtements bleus, tranche ver, portion screamer, corde, grosse pierre, bottes vitesse, soutif. ----------------------------------------------------- D3 --------------------------------------------------------- == Objet en c1, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1157 0 (x00) Coordonnée X du milieu de l'image de l'objet dans la vue du donjon 1158 0 (x00) Coord. Y du bord inférieur de l'image de l'objet dans la vue du donjon(=0, donc invisible) == Objet en c2, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1159 0 (x00) X milieu de l'image de l'objet 1160 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en c3, à D3 == 1161 125 (x7D) X milieu de l'image de l'objet 1162 72 (x48) Y bord inférieur de l'image de l'objet == Objet en c4, à D3 == 1163 95 (x5F) X milieu de l'image de l'objet 1164 72 (x48) Y bord inférieur de l'image de l'objet == Objet dans niche, à D3 (droit devant) == 1165 112 (x70) X milieu de l'image de l'objet 1166 64 (x40) Y bord inférieur de l'image de l'objet == Objet en g1, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1167 0 (x00) X milieu de l'image de l'objet 1168 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en g2, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1169 0 (x00) X milieu de l'image de l'objet 1170 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en g3, à D3 == 1171 62 (x3E) X milieu de l'image de l'objet 1172 72 (x48) Y bord inférieur de l'image de l'objet == Objet en g4, à D3 == 1173 25 (x19) X milieu de l'image de l'objet 1174 72 (x48) Y bord inférieur de l'image de l'objet == Objet dans niche, à D3 (sur la gauche) == 1175 24 (x18) X milieu de l'image de l'objet 1176 64 (x40) Y bord inférieur de l'image de l'objet == Objet en d1, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1177 0 (x00) X milieu de l'image de l'objet 1178 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d2, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1179 0 (x00) X milieu de l'image de l'objet 1180 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d3, à D3 == 1181 200 (xC8) X milieu de l'image de l'objet 1182 72 (x48) Y bord inférieur de l'image de l'objet == Objet en d4, à D3 == 1183 162 (xA2) X milieu de l'image de l'objet 1184 72 (x48) Y bord inférieur de l'image de l'objet == Objet dans niche, à D3 (sur la droite) == 1185 194 (xC2) X milieu de l'image de l'objet 1186 64 (x40) Y bord inférieur de l'image de l'objet ----------------------------------------------------- D2 --------------------------------------------------------- == Objet en c1, à D2 == 1187 92 (x5C) X milieu de l'image de l'objet 1188 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en c2, à D2 == 1189 132 (x84) X milieu de l'image de l'objet 1190 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en c3, à D2 == 1191 136 (x88) X milieu de l'image de l'objet 1192 86 (x56) Y bord inférieur de l'image de l'objet == Objet en c4, à D2 == 1193 88 (x58) X milieu de l'image de l'objet 1194 86 (x56) Y bord inférieur de l'image de l'objet == Objet dans niche, à D2 (droit devant) == 1195 112 (x70) X milieu de l'image de l'objet 1196 74 (x4A) Y bord inférieur de l'image de l'objet == Objet en g1, à D2 == 1197 10 (x0A) X milieu de l'image de l'objet 1198 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en g2, à D2 == 1199 53 (x35) X milieu de l'image de l'objet 1200 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en g3, à D2 == 1201 41 (x29) X milieu de l'image de l'objet 1202 86 (x56) Y bord inférieur de l'image de l'objet == Objet en g4, à D2 (NB : invisible dans le jeu car considéré comme trop à gauche) == 1203 0 (x00) X milieu de l'image de l'objet 1204 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet dans niche, à D2 (sur la gauche) == 1205 3 (x03) X milieu de l'image de l'objet 1206 74 (x4A) Y bord inférieur de l'image de l'objet == Objet en d1, à D2 == 1207 171 (xAB) X milieu de l'image de l'objet 1208 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en d2, à D2 == 1209 218 (xDA) X milieu de l'image de l'objet 1210 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en d3, à D2 (NB : invisible dans le jeu car considéré comme trop à droite) == 1211 0 (x00) X milieu de l'image de l'objet 1212 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d4, à D2 == 1213 183 (xB7) X milieu de l'image de l'objet 1214 86 (x56) Y bord inférieur de l'image de l'objet == Objet dans niche, à D2 (sur la droite) == 1215 219 (xDB) X milieu de l'image de l'objet 1216 74 (x4A) Y bord inférieur de l'image de l'objet ----------------------------------------------------- D1 --------------------------------------------------------- == Objet en c1, à D1 == 1217 83 (x53) X milieu de l'image de l'objet 1218 96 (x60) Y bord inférieur de l'image de l'objet == Objet en c2, à D1 == 1219 141 (x8D) X milieu de l'image de l'objet 1220 96 (x60) Y bord inférieur de l'image de l'objet == Objet en c3, à D1 == 1221 148 (x94) X milieu de l'image de l'objet 1222 111 (x6F) Y bord inférieur de l'image de l'objet == Objet en c4, à D1 == 1223 76 (x4C) X milieu de l'image de l'objet 1224 111 (x6F) Y bord inférieur de l'image de l'objet == Objet dans niche, à D1 (droit devant) == 1225 112 (x70) X milieu de l'image de l'objet 1226 94 (x5E) Y bord inférieur de l'image de l'objet == Objet en g1, à D1 (NB : invisible dans le jeu car trop à gauche) == 1227 0 (x00) X milieu de l'image de l'objet 1228 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en g2, à D1 == 1229 26 (x1A) X milieu de l'image de l'objet 1230 96 (x60) Y bord inférieur de l'image de l'objet == Objet en g3, à D1 == 1231 5 (x05) X milieu de l'image de l'objet 1232 111 (x6F) Y bord inférieur de l'image de l'objet == Objet en g4, à D1 (NB : invisible dans le jeu car trop à gauche) == 1233 0 (x00) X milieu de l'image de l'objet 1234 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet dans niche, à D1 (sur la gauche) (NB : invisible dans le jeu car trop à gauche) == 1235 0 (x00) X milieu de l'image de l'objet 1236 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d1, à D1 == 1237 197 (xC5) X milieu de l'image de l'objet 1238 96 (x60) Y bord inférieur de l'image de l'objet == Objet en d2, à D1 (NB : invisible dans le jeu car trop à droite) == 1239 0 (x00) X milieu de l'image de l'objet 1240 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d3, à D1 (NB : invisible dans le jeu car trop à droite) == 1241 0 (x00) X milieu de l'image de l'objet 1242 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d4, à D1 == 1243 220 (xDC) X milieu de l'image de l'objet 1244 111 (x6F) Y bord inférieur de l'image de l'objet == Objet dans niche, à D1 (sur la droite) (NB : invisible dans le jeu car trop à droite) == 1245 0 (x00) X milieu de l'image de l'objet 1246 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) ----------------------------------------------------- D0 --------------------------------------------------------- == Objet en c1, à D0 == 1247 66 (x42) X milieu de l'image de l'objet 1248 131 (x83) Y bord inférieur de l'image de l'objet == Objet en c2, à D0 == 1249 158 (x9E) X milieu de l'image de l'objet 1250 131 (x83) Y bord inférieur de l'image de l'objet == Objet en c3, à D0 (NB : invisible pour le joueur, puisque derrière lui) == 1251 0 (x00) X milieu de l'image de l'objet 1252 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en c4, à D0 (NB : invisible pour le joueur, puisque derrière lui) == 1253 0 (x00) X milieu de l'image de l'objet 1254 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet dans niche, à D0 (NB : invisible pour le joueur, puisque derrière lui) == 1255 0 (x00) X milieu de l'image de l'objet 1256 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible)
Ces coordonnées sont utilisées pour afficher : parchemin, flacon (plein/vide), Gemme (bleue/verte/orange), pièce (cuivre, argent, or), cuisse rat, casque, bâton/fronde, épée, amulette (or), flèche, clés (or/argent), masse, pain, fromage, pomme, maïs, sceptre of Lyfe, baguette, bâton "dragon spit", boussole, torche, anneau, Firestaff (sans/avec Joyau Puissance), Lame "Vorpal", massue bois, carreau, pierre, fléchette, shuriken, bout de bois, calista/couronne Nerra, amulette "pierre de lune", amulettes "pendant feral"/"Helion", boîte magique (bleue/verte), miroir, steak dragon, potion Ven, bombe Ful, patte lapin, corbum/ZoKathRa, collier "Choker", lock picks, loupe. ----------------------------------------------------- D3 --------------------------------------------------------- == Objet en c1, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1257 0 (x00) X milieu de l'image de l'objet dans la vue du donjon 1258 0 (x00) Y bord inférieur de l'image de l'objet dans la vue du donjon (=0, donc invisible) == Objet en c2, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1259 0 (x00) X milieu de l'image de l'objet 1260 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en c3, à D3 == 1261 125 (x7D) X milieu de l'image de l'objet 1262 72 (x48) Y bord inférieur de l'image de l'objet == Objet en c4, à D3 == 1263 95 (x5F) X milieu de l'image de l'objet 1264 72 (x48) Y bord inférieur de l'image de l'objet == Objet dans niche, à D3 (droit devant) == 1265 112 (x70) X milieu de l'image de l'objet 1266 63 (x3F) Y bord inférieur de l'image de l'objet == Objet en g1, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1267 0 (x00) X milieu de l'image de l'objet 1268 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en g2, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1269 0 (x00) X milieu de l'image de l'objet 1270 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en g3, à D3 == 1271 62 (x3E) X milieu de l'image de l'objet 1272 72 (x48) Y bord inférieur de l'image de l'objet == Objet en g4, à D3 == 1273 25 (x19) X milieu de l'image de l'objet 1274 72 (x48) Y bord inférieur de l'image de l'objet == Objet dans niche, à D3 (sur la gauche) == 1275 24 (x18) X milieu de l'image de l'objet 1276 63 (x3F) Y bord inférieur de l'image de l'objet == Objet en d1, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1277 0 (x00) X milieu de l'image de l'objet 1278 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d2, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1279 0 (x00) X milieu de l'image de l'objet 1280 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d3, à D3 == 1281 200 (xC8) X milieu de l'image de l'objet 1282 72 (x48) Y bord inférieur de l'image de l'objet == Objet en d4, à D3 == 1283 162 (xA2) X milieu de l'image de l'objet 1284 72 (x48) Y bord inférieur de l'image de l'objet == Objet dans niche, à D3 (sur la droite) == 1285 194 (xC2) X milieu de l'image de l'objet 1286 63 (x3F) Y bord inférieur de l'image de l'objet ----------------------------------------------------- D2 --------------------------------------------------------- == Objet en c1, à D2 == 1287 92 (x5C) X milieu de l'image de l'objet 1288 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en c2, à D2 == 1289 132 (x84) X milieu de l'image de l'objet 1290 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en c3, à D2 == 1291 136 (x88) X milieu de l'image de l'objet 1292 86 (x56) Y bord inférieur de l'image de l'objet == Objet en c4, à D2 == 1293 88 (x58) X milieu de l'image de l'objet 1294 86 (x56) Y bord inférieur de l'image de l'objet == Objet dans niche, à D2 (droit devant) == 1295 112 (x70) X milieu de l'image de l'objet 1296 73 (x49) Y bord inférieur de l'image de l'objet == Objet en g1, à D2 == 1297 10 (x0A) X milieu de l'image de l'objet 1298 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en g2, à D2 == 1299 53 (x35) X milieu de l'image de l'objet 1300 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en g3, à D2 == 1301 41 (x29) X milieu de l'image de l'objet 1302 86 (x56) Y bord inférieur de l'image de l'objet == Objet en g4, à D2 (NB : invisible dans le jeu car considéré comme trop à gauche) == 1303 0 (x00) X milieu de l'image de l'objet 1304 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet dans niche, à D2 (sur la gauche) == 1305 3 (x03) X milieu de l'image de l'objet 1306 73 (x49) Y bord inférieur de l'image de l'objet == Objet en d1, à D2 == 1307 171 (xAB) X milieu de l'image de l'objet 1308 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en d2, à D2 == 1309 218 (xDA) X milieu de l'image de l'objet 1310 78 (x4E) Y bord inférieur de l'image de l'objet == Objet en d3, à D2 (NB : invisible dans le jeu car considéré comme trop à droite) == 1311 0 (x00) X milieu de l'image de l'objet 1312 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d4, à D2 == 1313 183 (xB7) X milieu de l'image de l'objet 1314 86 (x56) Y bord inférieur de l'image de l'objet == Objet dans niche, à D2 (sur la droite) == 1315 219 (xDB) X milieu de l'image de l'objet 1316 73 (x49) Y bord inférieur de l'image de l'objet ----------------------------------------------------- D1 --------------------------------------------------------- == Objet en c1, à D1 == 1317 83 (x53) X milieu de l'image de l'objet 1318 96 (x60) Y bord inférieur de l'image de l'objet == Objet en c2, à D1 == 1319 141 (x8D) X milieu de l'image de l'objet 1320 96 (x60) Y bord inférieur de l'image de l'objet == Objet en c3, à D1 == 1321 148 (x94) X milieu de l'image de l'objet 1322 111 (x6F) Y bord inférieur de l'image de l'objet == Objet en c4, à D1 == 1323 76 (x4C) X milieu de l'image de l'objet 1324 111 (x6F) Y bord inférieur de l'image de l'objet == Objet dans niche, à D1 (droit devant) == 1325 112 (x70) X milieu de l'image de l'objet 1326 89 (x59) Y bord inférieur de l'image de l'objet == Objet en g1, à D1 (NB : invisible dans le jeu car trop à gauche) == 1327 0 (x00) X milieu de l'image de l'objet 1328 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en g2, à D1 == 1329 26 (x1A) X milieu de l'image de l'objet 1330 96 (x60) Y bord inférieur de l'image de l'objet == Objet en g3, à D1 == 1331 5 (x05) X milieu de l'image de l'objet 1332 111 (x6F) Y bord inférieur de l'image de l'objet == Objet en g4, à D1 (NB : invisible dans le jeu car trop à gauche) == 1333 0 (x00) X milieu de l'image de l'objet 1334 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet dans niche, à D1 (sur la gauche) (NB : invisible dans le jeu car trop à gauche) == 1335 0 (x00) X milieu de l'image de l'objet 1336 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d1, à D1 == 1337 197 (xC5) X milieu de l'image de l'objet 1338 96 (x60) Y bord inférieur de l'image de l'objet == Objet en d2, à D1 (NB : invisible dans le jeu car trop à droite) == 1339 0 (x00) X milieu de l'image de l'objet 1340 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d3, à D1 (NB : invisible dans le jeu car trop à droite) == 1341 0 (x00) X milieu de l'image de l'objet 1342 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d4, à D1 == 1343 220 (xDC) X milieu de l'image de l'objet 1344 111 (x6F) Y bord inférieur de l'image de l'objet == Objet dans niche, à D1 (sur la droite) (NB : invisible dans le jeu car trop à droite) == 1345 0 (x00) X milieu de l'image de l'objet 1346 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) ----------------------------------------------------- D0 --------------------------------------------------------- == Objet en c1, à D0 == 1347 66 (x42) X milieu de l'image de l'objet 1348 131 (x83) Y bord inférieur de l'image de l'objet == Objet en c2, à D0 == 1349 158 (x9E) X milieu de l'image de l'objet 1350 131 (x83) Y bord inférieur de l'image de l'objet == Objet en c3, à D0 (NB : invisible pour le joueur, puisque derrière lui) == 1351 0 (x00) X milieu de l'image de l'objet 1352 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en c4, à D0 (NB : invisible pour le joueur, puisque derrière lui) == 1353 0 (x00) X milieu de l'image de l'objet 1354 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet dans niche, à D0 (NB : invisible pour le joueur, puisque derrière lui) == 1355 0 (x00) X milieu de l'image de l'objet 1356 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible)
Ces coordonnées sont utilisées pour afficher : arc, élément d'armure (type cotte de mailles), éléments d'armure (cuirasse & jambières), arabalète. ----------------------------------------------------- D3 --------------------------------------------------------- == Objet en c1, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1357 0 (x00) X milieu de l'image de l'objet dans la vue du donjon 1358 0 (x00) Y bord inférieur de l'image de l'objet dans la vue du donjon (=0, donc invisible) == Objet en c2, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1359 0 (x00) X milieu de l'image de l'objet 1360 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en c3, à D3 == 1361 125 (x7D) X milieu de l'image de l'objet 1362 75 (x4B) Y bord inférieur de l'image de l'objet == Objet en c4, à D3 == 1363 95 (x5F) X milieu de l'image de l'objet 1364 75 (x4B) Y bord inférieur de l'image de l'objet == Objet dans niche, à D3 (droit devant) == 1365 112 (x70) X milieu de l'image de l'objet 1366 65 (x41) Y bord inférieur de l'image de l'objet == Objet en g1, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1367 0 (x00) X milieu de l'image de l'objet 1368 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en g2, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1369 0 (x00) X milieu de l'image de l'objet 1370 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en g3, à D3 == 1371 62 (x3E) X milieu de l'image de l'objet 1372 75 (x4B) Y bord inférieur de l'image de l'objet == Objet en g4, à D3 == 1373 25 (x19) X milieu de l'image de l'objet 1374 75 (x4B) Y bord inférieur de l'image de l'objet == Objet dans niche, à D3 (sur la gauche) == 1375 24 (x18) X milieu de l'image de l'objet 1376 65 (x41) Y bord inférieur de l'image de l'objet == Objet en d1, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1377 0 (x00) X milieu de l'image de l'objet 1378 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d2, à D3 (NB : invisible dans le jeu car considéré comme trop éloigné) == 1379 0 (x00) X milieu de l'image de l'objet 1380 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d3, à D3 == 1381 200 (xC8) X milieu de l'image de l'objet 1382 75 (x4B) Y bord inférieur de l'image de l'objet == Objet en d4, à D3 == 1383 162 (xA2) X milieu de l'image de l'objet 1384 75 (x4B) Y bord inférieur de l'image de l'objet == Objet dans niche, à D3 (sur la droite) == 1385 194 (xC2) X milieu de l'image de l'objet 1386 65 (x41) Y bord inférieur de l'image de l'objet ----------------------------------------------------- D2 --------------------------------------------------------- == Objet en c1, à D2 == 1387 92 (x5C) X milieu de l'image de l'objet 1388 81 (x51) Y bord inférieur de l'image de l'objet == Objet en c2, à D2 == 1389 132 (x84) X milieu de l'image de l'objet 1390 81 (x51) Y bord inférieur de l'image de l'objet == Objet en c3, à D2 == 1391 136 (x88) X milieu de l'image de l'objet 1392 88 (x58) Y bord inférieur de l'image de l'objet == Objet en c4, à D2 == 1393 88 (x58) X milieu de l'image de l'objet 1394 88 (x58) Y bord inférieur de l'image de l'objet == Objet dans niche, à D2 (droit devant) == 1395 112 (x70) X milieu de l'image de l'objet 1396 76 (x4C) Y bord inférieur de l'image de l'objet == Objet en g1, à D2 == 1397 10 (x0A) X milieu de l'image de l'objet 1398 81 (x51) Y bord inférieur de l'image de l'objet == Objet en g2, à D2 == 1399 53 (x35) X milieu de l'image de l'objet 1400 81 (x51) Y bord inférieur de l'image de l'objet == Objet en g3, à D2 == 1401 41 (x29) X milieu de l'image de l'objet 1402 88 (x58) Y bord inférieur de l'image de l'objet == Objet en g4, à D2 (NB : invisible dans le jeu car considéré comme trop à gauche) == 1403 0 (x00) X milieu de l'image de l'objet 1404 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet dans niche, à D2 (sur la gauche) == 1405 3 (x03) X milieu de l'image de l'objet 1406 76 (x4C) Y bord inférieur de l'image de l'objet == Objet en d1, à D2 == 1407 171 (xAB) X milieu de l'image de l'objet 1408 81 (x51) Y bord inférieur de l'image de l'objet == Objet en d2, à D2 == 1409 218 (xDA) X milieu de l'image de l'objet 1410 81 (x51) Y bord inférieur de l'image de l'objet == Objet en d3, à D2 (NB : invisible dans le jeu car considéré comme trop à droite) == 1411 0 (x00) X milieu de l'image de l'objet 1412 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d4, à D2 == 1413 183 (xB7) X milieu de l'image de l'objet 1414 88 (x58) Y bord inférieur de l'image de l'objet == Objet dans niche, à D2 (sur la droite) == 1415 219 (xDB) X milieu de l'image de l'objet 1416 76 (x4C) Y bord inférieur de l'image de l'objet ----------------------------------------------------- D1 --------------------------------------------------------- == Objet en c1, à D1 == 1417 83 (x53) X milieu de l'image de l'objet 1418 98 (x62) Y bord inférieur de l'image de l'objet == Objet en c2, à D1 == 1419 141 (x8D) X milieu de l'image de l'objet 1420 98 (x62) Y bord inférieur de l'image de l'objet == Objet en c3, à D1 == 1421 148 (x94) X milieu de l'image de l'objet 1422 115 (x73) Y bord inférieur de l'image de l'objet == Objet en c4, à D1 == 1423 76 (x4C) X milieu de l'image de l'objet 1424 115 (x73) Y bord inférieur de l'image de l'objet == Objet dans niche, à D1 (droit devant) == 1425 112 (x70) X milieu de l'image de l'objet 1426 98 (x62) Y bord inférieur de l'image de l'objet == Objet en g1, à D1 (NB : invisible dans le jeu car trop à gauche) == 1427 0 (x00) X milieu de l'image de l'objet 1428 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en g2, à D1 == 1429 26 (x1A) X milieu de l'image de l'objet 1430 98 (x62) Y bord inférieur de l'image de l'objet == Objet en g3, à D1 == 1431 5 (x05) X milieu de l'image de l'objet 1432 115 (x73) Y bord inférieur de l'image de l'objet == Objet en g4, à D1 (NB : invisible dans le jeu car trop à gauche) == 1433 0 (x00) X milieu de l'image de l'objet 1434 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet dans niche, à D1 (sur la gauche) (NB : invisible dans le jeu car trop à gauche) == 1435 0 (x00) X milieu de l'image de l'objet 1436 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d1, à D1 == 1437 197 (xC5) X milieu de l'image de l'objet 1438 98 (x62) Y bord inférieur de l'image de l'objet == Objet en d2, à D1 (NB : invisible dans le jeu car trop à droite) == 1439 0 (x00) X milieu de l'image de l'objet 1440 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d3, à D1 (NB : invisible dans le jeu car trop à droite) == 1441 0 (x00) X milieu de l'image de l'objet 1442 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en d4, à D1 == 1443 220 (xDC) X milieu de l'image de l'objet 1444 115 (x73) Y bord inférieur de l'image de l'objet == Objet dans niche, à D1 (sur la droite) (NB : invisible dans le jeu car trop à droite) == 1445 0 (x00) X milieu de l'image de l'objet 1446 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) ----------------------------------------------------- D0 --------------------------------------------------------- == Objet en c1, à D0 == 1447 66 (x42) X milieu de l'image de l'objet 1448 135 (x87) Y bord inférieur de l'image de l'objet == Objet en c2, à D0 == 1449 158 (x9E) X milieu de l'image de l'objet 1450 135 (x87) Y bord inférieur de l'image de l'objet == Objet en c3, à D0 (NB : invisible pour le joueur, puisque derrière lui) == 1451 0 (x00) X milieu de l'image de l'objet 1452 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet en c4, à D0 (NB : invisible pour le joueur, puisque derrière lui) == 1453 0 (x00) X milieu de l'image de l'objet 1454 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible) == Objet dans niche, à D0 (NB : invisible pour le joueur, puisque derrière lui) == 1455 0 (x00) X milieu de l'image de l'objet 1456 0 (x00) Y bord inférieur de l'image de l'objet (=0, donc invisible)
Cette partie prend en compte l'effet d'empilement des objets, en ajoutant ou retranchant des valeurs en X et en Y aux coordonnées de référence décrites dans les octets 1157 à 1456. Ainsi, lorsque plusieurs objets sont empilés sur le sol (ou dans une niche), leurs images sont décalées horizontalement et verticalement les unes par rapport aux autres... -----------N---------- Voici la représentation d'une case du jeu. On considère que dans | | cette case, le joueur peut poser des objets dans les 4 coins (NO, | NO NE | NE, SE et SO), ou dans les 4 niches (N, E, S, O). | | | | Le "décalage" des objets fonctionne de la même façon dans les | | coins NO et SE, et de la même façon dans les coins NE et SO. De O E même pour les niches N-S et E-O. | | | | Les valeurs données par ces octets indiquent simplement le nombre | | de pixels à ajouter ou retrancher aux coordonnées de référence | SO SE | (qu'on appelera ici X(ref), Y(ref)) définies dans les octets | | 1157 à 1456. -----------S---------- Ceci s'effectue de la façon suivante : Valeur Opération --------------------------------- 5 (101) -3 pixels 6 (110) -2 pixels 7 (111) -1 pixel 0 (000) => Coordonnée de référence 1 (001) +1 pixel 2 (010) +2 pixels 3 (011) +3 pixels
Pour les objets posés sur le sol : ================================== On considère que le premier objet posé sur le sol est l'objet 01, l'objet posé par dessus est l'objet 02, etc... Les décalages effectués se font "modulo 16", dans le sens où le même décalage sera effectué sur les objets 01, 17, 33 d'une même pile... 1457 2 (x02) X=X(ref)+2 pixels pour : objet 01, coins NO et SE et objet 09, coins NE et SO 1458 5 (x05) Y=Y(ref)-3 pixels pour : objet 01, coins NO et SE et objet 09, coins NE et SO 1459 0 (x00) X=X(ref) pour : objet 02, coins NO et SE et objet 10, coins NE et SO 1460 6 (x06) Y=Y(ref)-2 pixels pour : objet 02, coins NO et SE et objet 10, coins NE et SO 1461 5 (x05) X=X(ref)-3 pixels pour : objet 03, coins NO et SE et objet 11, coins NE et SO 1462 7 (x07) Y=Y(ref)-1 pixel pour : objet 03, coins NO et SE et objet 11, coins NE et SO 1463 3 (x03) X=X(ref)+3 pixels pour : objet 04, coins NO et SE et objet 12, coins NE et SO 1464 0 (x00) Y=Y(ref) pour : objet 04, coins NO et SE et objet 12, coins NE et SO 1465 7 (x07) X=X(ref)-1 pixels pour : objet 05, coins NO et SE et objet 13, coins NE et SO 1466 1 (x01) Y=Y(ref)+1 pixel pour : objet 05, coins NO et SE et objet 13, coins NE et SO 1467 1 (x01) X=X(ref)+1 pixel pour : objet 06, coins NO et SE et objet 14, coins NE et SO 1468 2 (x02) Y=Y(ref)+2 pixels pour : objet 06, coins NO et SE et objet 14, coins NE et SO 1469 6 (x06) X=X(ref)-2 pixels pour : objet 07, coins NO et SE et objet 15, coins NE et SO 1470 3 (x03) Y=Y(ref)+3 pixels pour : objet 07, coins NO et SE et objet 15, coins NE et SO 1471 3 (x03) X=X(ref)+3 pixels pour : objet 08, coins NO et SE et objet 16, coins NE et SO 1472 3 (x03) Y=Y(ref)+3 pixels pour : objet 08, coins NO et SE et objet 16, coins NE et SO 1473 5 (x05) X=X(ref)-3 pixels pour : objet 09, coins NO et SE et objet 01, coins NE et SO 1474 5 (x05) Y=Y(ref)-3 pixels pour : objet 09, coins NO et SE et objet 01, coins NE et SO 1475 2 (x02) X=X(ref)+2 pixels pour : objet 10, coins NO et SE et objet 02, coins NE et SO 1476 6 (x06) Y=Y(ref)-2 pixels pour : objet 10, coins NO et SE et objet 02, coins NE et SO 1477 7 (x07) X=X(ref)-1 pixel pour : objet 11, coins NO et SE et objet 03, coins NE et SO 1478 7 (x07) Y=Y(ref)-1 pixel pour : objet 11, coins NO et SE et objet 03, coins NE et SO 1479 1 (x01) X=X(ref)+1 pixel pour : objet 12, coins NO et SE et objet 04, coins NE et SO 1480 0 (x00) Y=Y(ref) pour : objet 12, coins NO et SE et objet 04, coins NE et SO 1481 3 (x03) X=X(ref)+3 pixels pour : objet 13, coins NO et SE et objet 05, coins NE et SO 1482 1 (x01) Y=Y(ref)+1 pixel pour : objet 13, coins NO et SE et objet 05, coins NE et SO 1483 6 (x06) X=X(ref)-2 pixels pour : objet 14, coins NO et SE et objet 06, coins NE et SO 1484 2 (x02) Y=Y(ref)+2 pixels pour : objet 14, coins NO et SE et objet 06, coins NE et SO 1485 1 (x01) X=X(ref)+1 pixel pour : objet 15, coins NO et SE et objet 07, coins NE et SO 1486 3 (x03) Y=Y(ref)+3 pixels pour : objet 15, coins NO et SE et objet 07, coins NE et SO 1487 5 (x05) X=X(ref)-3 pixels pour : objet 16, coins NO et SE et objet 08, coins NE et SO 1488 3 (x03) Y=Y(ref)+3 pixels pour : objet 16, coins NO et SE et objet 08, coins NE et SO
Pour les objets placés dans les niches : ======================================== On considère que le premier objet posé dans une niche est l'objet 01, l'objet posé par dessus est l'objet 02, etc... Les décalages effectués se font "modulo 12" cette fois, dans le sens où le même décalage sera effectué sur les objets 01, 13, 25 d'une même pile... (NB : les mêmes octets que précédemment sont utilisés, sauf que l'on ne prend pas les 4 premiers ni les 4 derniers) 1461 5 (x05) X=X(ref)-3 pixels pour : objet 01, niches N et S et objet 05, niches E et O 1462 7 (x07) Y=Y(ref)-1 pixel pour : objet 01, niches N et S et objet 05, niches E et O 1463 3 (x03) X=X(ref)+3 pixels pour : objet 02, niches N et S et objet 06, niches E et O 1464 0 (x00) Y=Y(ref) pour : objet 02, niches N et S et objet 06, niches E et O 1465 7 (x07) X=X(ref)-1 pixels pour : objet 03, niches N et S et objet 07, niches E et O 1466 1 (x01) Y=Y(ref)+1 pixel pour : objet 03, niches N et S et objet 07, niches E et O 1467 1 (x01) X=X(ref)+1 pixel pour : objet 04, niches N et S et objet 08, niches E et O 1468 2 (x02) Y=Y(ref)+2 pixels pour : objet 04, niches N et S et objet 08, niches E et O 1469 6 (x06) X=X(ref)-2 pixels pour : objet 05, niches N et S et objet 09, niches E et O 1470 3 (x03) Y=Y(ref)+3 pixels pour : objet 05, niches N et S et objet 09, niches E et O 1471 3 (x03) X=X(ref)+3 pixels pour : objet 06, niches N et S et objet 10, niches E et O 1472 3 (x03) Y=Y(ref)+3 pixels pour : objet 06, niches N et S et objet 10, niches E et O 1473 5 (x05) X=X(ref)-3 pixels pour : objet 07, niches N et S et objet 11, niches E et O 1474 5 (x05) Y=Y(ref)-3 pixels pour : objet 07, niches N et S et objet 11, niches E et O 1475 2 (x02) X=X(ref)+2 pixels pour : objet 08, niches N et S et objet 12, niches E et O 1476 6 (x06) Y=Y(ref)-2 pixels pour : objet 08, niches N et S et objet 12, niches E et O 1477 7 (x07) X=X(ref)-1 pixel pour : objet 09, niches N et S et objet 01, niches E et O 1478 7 (x07) Y=Y(ref)-1 pixel pour : objet 09, niches N et S et objet 01, niches E et O 1479 1 (x01) X=X(ref)+1 pixel pour : objet 10, niches N et S et objet 02, niches E et O 1480 0 (x00) Y=Y(ref) pour : objet 10, niches N et S et objet 02, niches E et O 1481 3 (x03) X=X(ref)+3 pixels pour : objet 11, niches N et S et objet 03, niches E et O 1482 1 (x01) Y=Y(ref)+1 pixel pour : objet 11, niches N et S et objet 03, niches E et O 1483 6 (x06) X=X(ref)-2 pixels pour : objet 12, niches N et S et objet 04, niches E et O 1484 2 (x02) Y=Y(ref)+2 pixels pour : objet 12, niches N et S et objet 04, niches E et O
Un exemple pour clarifier un peu les choses : --------------------------------------------- Je lance CSBWin et je sors Halk de son miroir. Je reste tourné vers le Nord et je pose sa massue juste devant moi sur la gauche (la massue est donc en c1, à D0, d'après le petit dessin du fichier précédent). La massue fait partie du groupe 1 pour les coordonnées de référence, et les octets 1347 et 1348 me donnent pour ces coordonnées : X(ref)=66, Y(ref)=131. Comme cet objet est placé dans le coin NO d'une case, et que c'est l'objet 01 d'une "pile" (de 1 objet, certes ^^), j'utilise les valeurs des octets 1457 et 1458, soit : X=66+2=68 et Y=131-3=128. La massue que je viens de poser est donc affichée aux coordonnées (68,128) dans la vue du donjon (=> le milieu de l'image de la massue se trouve en X=68 et le bord inférieur de l'image de la massue se trouve en Y=128). Une remarque pour compliquer un peu le tout ^^ : ------------------------------------------------ Dans l'exemple que je viens de prendre, l'objet est à D0, il est donc affiché à "l'échelle 1" et je peux utiliser directement les valeurs des octets 1457 à 1488. Mais pour un objet éloigné, il semble (et ça paraît plutôt logique) que ces valeurs soient multipliées par un "facteur d'échelle" (peut-être le même facteur que pour les dimensions des objets, mais comme les valeurs des octets 1457 à 1488 sont petites, c'est impossible à déterminer de façon précise sur des captures d'écran :))). En résumé, les coordonnées de l'images d'un objet seraient déterminées par des calculs du type : X=X(ref)+F*dx Y=Y(ref)+F*dy Avec X : abscisse du milieu de l'image de l'objet dans la vue du donjon Y : ordonnée du bord inférieur de l'image de l'objet dans la vue du donjon X(ref) et Y(ref) : coordonnées de référence données par les octets 1157 à 1456 F : facteur d'échelle (F=1 quand l'objet est affiché à l'échelle "1") dx et dy : petites variations en X et Y, données par les octets 1457 à 1488 Remarque : les équations exactes sont sûrement quelque part dans le code source de CSBWin... :)) A propos de la taille des images des objets en fonction de la distance : ------------------------------------------------------------------------ | | |g4 g3|c4 c3|d4 d3| <\ -----N-----N-----N----- <-- Objets affichés avec les mêmes dimensions |g1 g2|c1 c2|d1 d2| </ (dimensions = dimensions de l'image x 1/2) \ | | | | / \ g3|c4 c3|d4 / <\ \--N-----N-----N--/ <-- Objets affichés avec les mêmes dimensions \ g2|c1 c2|d1 / </ (dimensions = dimensions de l'image x 5/8) \ | | / \g3|c4 c3|d4/ <\ \----N----/ <-- Objets affichés avec les mêmes dimensions \|c1 c2|/ </ (dimensions = dimensions de l'image) \ J / NB : les dimensions modifiées par les facteurs 5/8 et 1/2 sont arrondies aux entiers inférieurs. (Pour obtenir ces facteurs de 5/8 et 1/2 j'ai tout simplement barbouillé l'image de l'arbalète en jaune pour obtenir un beau rectangle assez grand et bien visible, ensuite en mesurant sur des captures d'écran on obtient les dimmensions suivantes : 80x25, 50x15 et 40x12. La valeur de 5/8 est donc une valeur "à vue de nez", le programme utilise peut être en fait la valeur 0.6315421 à la place :)))
i8 Byte5758[6]; // Explosion sizes? Maybe cloud sizes... not sure.
32 = full size, 16 = half, 8 = 1/4th, etc.
i8 Byte5752[8]; // Another type of scaling, 32 = full size.
Appears to scale projectiles in the air that are NOT spells
[x] = 'distance' from player.
Seems logical, you can see 3 rooms, each room has 2 locations.
3x2 = 6... byte5752[6] and [7] = ?
i8 Byte5744[16]; // D2 Floor item graphic palette modifier?
i8 Byte5728[16]; // D3 Floor item graphic palette modifier
i8 Byte5712[16]; // palette for graphics 351-359.
this is the palette for when u get hit by dispel or are in a poison cloud.
I think =] Its either that or this is the special palette for light fireballs. UNlikely.
i8 Byte5696[8]; // 4 groups of width/height combonations.
there seems to be 14 pre-made graphics for each, 4/6/8/10.../32 / 32 scale.
? = fireball?
? = antimaterial?
? = lightning?
? = poison?
Dans cette partie sont décrites toutes les images des "missiles" (sorts, ou armes disposant d'images spéciales lorsqu'elles sont lancées), c'est à dire les graphs 0316 à 0347. Chaque type de missile est décrit par un groupe de 6 octets. Chacun de ces groupes de 6 octets se présente de la façon suivante : Octet 1 : donne l'index de la première image du missile (à partir du graph 0316) Octet 2 : cet octet semble servir pour un système d'indexation : - Pour les missiles de type "arme" qui disposent d'une vue de face, de dos, et de profil, la valeur de cet octet progresse de 18 en 18 (voir différence de valeur entre les octets 1560, 1566, 1572, 1578). On peut donc supposer que le programme stocke quelque part 6 images de différentes tailles pour la vue de face, 6 pour la vue de dos et 6 pour la vue de profil... (cette hypothèse est renforcée par le fait que dans le jeu, si on lance une flèche par exemple, elle passe par 6 tailles différentes. On peut également la voir de face ou de profil à 6 tailles différentes!) - Pour le shuriken, qui ne dispose que d'une vue de face et une de profil, la différence entre les valeurs des octets 1614 et 1620 est de 12 => ça collerait, 6 images pour la vue de face + 6 pour la vue de profil... - Pour les sortilèges par contre... les octets 1578 et 1584 ont la même valeur, de même que les octets 1620, 1626, 1632, 1638 => cela laisserait donc supposer que le programme ne stocke pas d'images de différentes tailles pour ces missiles... mais ceci pourrait s'expliquer par le fait que la taille d'un missile de type "magique" dépend aussi de la puissance du sort! Octet 3 : largeur de l'image du missile divisée par 2 (toutes les images des missiles ont une largeur égale à un multiple de 16). Remarque : si le missile dispose de plusieurs images (face, dos, profil), elles doivent toutes avoir les mêmes dimensions. Octet 4 : hauteur de l'image du missile, en pixels. Octet 5 : à 0 si c'est un missile de type "arme", et à "1" si c'est un missile "magique". Cet octet indique en fait si la taille de l'image doit varier en fonction d'un "facteur de puissance"! Exemple amusant : changer la valeur 00 de l'octet 1563 en 01. Créer un nouveau fichier Graphics.dat et l'utiliser avec CSBWin. Lancer une flèche à la main : la flèche est minuscule :))). Lancer ensuite la flèche avec un arc, puis une arbalète, puis avec l'arbalète "speedbow"... Octet 6 : seuls 3 bits sont utilisés. En considérant que le bit le plus à gauche est le bit 1 : - bit 1 : inutilisé - bit 2 : inutilisé - bit 3 : inutilisé - bit 4 : s'il est à 1, cela indique qu'il existe un graph pour le profil du missile. S'il existe également une vue de dos (voir bit 7), alors on prend l'image qui suit celle de la vue de dos pour la vue de profil, sinon, on prend l'image qui suit celle de la vue de face. - bit 5 : inutilisé - bit 6 : inutilisé - bit 7 : s'il est à 0, cela indique qu'il existe un graph pour la vue de dos du missile. L'image qui suit l'image de la vue de face sera donc utilisée pour cette vue de dos. - bit 8 : s'il est à 0, cela indique que le missile est "animé". Ainsi, pour la hache par exemple, on aura une alternance vue de face/vue de dos, avec un effet de "miroir" qui alternera tête de la hache en haut/en bas, donnant l'impression qu'elle tourne sur elle même en vol (ou si on voit la hache de profil alternance effet "miroir" horizontal/vertical sur la vue de profil).
1559 0 (x00) Graph 0316+0=0316 => Flèche (lancée, face) 1560 0 (x00) 1561 32 (x20) Largeur image/2 (largeur Graph 0316 = largeur Graph 0317 et 0318) 1562 11 (x0B) Hauteur image en pixels (hauteur Graph 0316 = hauteur Graph 0317 et 0318) 1563 0 (x00) à 0 donc missile de type "arme" 1564 17 (x11) 8ème bit à 1 => ce missile n'est pas "animé", il ne tourne pas sur lui-même 7ème bit à 0 => ce missile dispose d'une vue de dos, utiliser le Graph suivant pour cette vue de dos => Graph 0317 4ème bit à 1 => ce missile dispose d'une vue de profil. Comme il y a également une vue de dos, utiliser graph d'après => Graph 0318
1565 3 (x03) Graph 0316+3=0319 => Dague (lancée, face) 1566 18 (x12) 1567 16 (x10) Largeur image/2 1568 11 (x0B) Hauteur image en pixels 1569 0 (x00) missile de type arme (sa taille ne dépend pas d'un "facteur de puissance") 1570 17 (x11) 8ème bit à 1 => ce missile n'est pas "animé", il ne tourne pas sur lui-même 7ème bit à 0 => ce missile dispose d'une vue de dos => Graph 0320 4ème bit à 1 => ce missile dispose d'une vue de profil => Graph 0321
1571 6 (x06) Graph 0322 => Hache (lancée, face) 1572 36 (x24) 1573 24 (x18) Largeur image/2 1574 47 (x2F) Hauteur image en pixels 1575 0 (x00) Missile de type arme 1576 16 (x10) 8ème bit à 0 => ce missile est "animé", il tourne sur lui-même en vol 7ème bit à 0 => ce missile dispose d'une vue de dos => Graph 0323 4ème bit à 1 => ce missile dispose d'une vue de profil => Graph 0324
1577 9 (x09) Graph 0325 => Eclair (face) 1578 54 (x36) 1579 32 (x20) Largeur image/2 1580 15 (x0F) Hauteur image en pixels 1581 1 (x01) Missile de type "magique" (sa taille dépend de la puissance du sort) 1582 18 (x12) 8ème bit à 0 => l'éclair est le seul sort "animé" (par simple effet de "miroir", car il n'y a pas de vue de dos pour l'éclair)! 7ème bit à 1 => ce missile n'a pas de vue de dos... 4ème bit à 1 => ce missile dispose d'une vue de profil => Graph 0326
1583 11 (x0B) Graph 0327 => Carreau (face) 1584 54 (x36) 1585 32 (x20) Largeur image/2 1586 12 (x0C) Hauteur image en pixels 1587 0 (x00) missile de type arme 1588 17 (x11) 8ème bit à 1 => ce missile n'est pas "animé" 7ème bit à 0 => ce missile dispose d'une vue de dos => Graph 0328 4ème bit à 1 => ce missile dispose d'une vue de profil => Graph 0329
1589 14 (x0E) Graph 0330 => Massue en pierre (face) 1590 72 (x48) 1591 24 (x18) Largeur image/2 1592 47 (x2F) Hauteur image en pixels 1593 0 (x00) missile de type arme 1594 16 (x10) 8ème bit à 0 => ce missile est "animé", il tourne sur lui-même en vol 7ème bit à 0 => ce missile dispose d'une vue de dos => Graph 0331 4ème bit à 1 => ce missile dispose d'une vue de profil => Graph 0332
1595 17 (x11) Graph 0333 => Massue en bois (face) 1596 90 (x5A) 1597 24 (x18) Largeur image/2 1598 47 (x2F) Hauteur image en pixels 1599 0 (x00) missile de type arme 1600 16 (x10) 8ème bit à 0 => ce missile est "animé", il tourne sur lui-même en vol 7ème bit à 0 => ce missile dispose d'une vue de dos => Graph 0334 4ème bit à 1 => ce missile dispose d'une vue de profil => Graph 0335
1601 20 (x14) Graph 0336 => Fléchette empoisonnée (face) 1602 108 (x6C) 1603 16 (x10) Largeur image/2 1604 11 (x0B) Hauteur image en pixels 1605 0 (x00) missile de type arme 1606 17 (x11) 8ème bit à 1 => ce missile n'est pas "animé" 7ème bit à 0 => ce missile dispose d'une vue de dos => Graph 0337 4ème bit à 1 => ce missile dispose d'une vue de profil => Graph 0338
1607 23 (x17) Graph 0339 => Epée (face) 1608 126 (x7E) 1609 48 (x30) Largeur image/2 1610 18 (x12) Hauteur image en pixels 1611 0 (x00) missile de type arme 1612 17 (x11) 8ème bit à 1 => ce missile n'est pas "animé" 7ème bit à 0 => ce missile dispose d'une vue de dos => Graph 0340 4ème bit à 1 => ce missile dispose d'une vue de profil => Graph 0341
1613 26 (x1A) Graph 0342 => Shuriken (face) 1614 144 (x90) 1615 8 (x08) Largeur image/2 1616 15 (x0F) Hauteur image en pixels 1617 0 (x00) missile de type arme 1618 18 (x12) 8ème bit à 0 => ce missile est "animé" (par simple effet de "miroir", car il n'y a pas de vue de dos pour le shuriken) 7ème bit à 1 => ce missile n'a pas de vue de dos... 4ème bit à 1 => ce missile dispose d'une vue de profil => Graph 0343
1619 28 (x1C) Graph 0344 => Boule de Feu 1620 156 (x9C) 1621 16 (x10) Largeur image/2 1622 28 (x1C) Hauteur image en pixels 1623 1 (x01) missile de type magique 1624 3 (x03) 8ème bit à 1 => ce missile n'est pas "animé" 7ème bit à 1 => ce missile n'a pas de vue de dos... 4ème bit à 0 => ce missile n'a pas de vue de profil...
1625 29 (x1D) Graph 0345 => Anti-immatériels, Zo 1626 156 (x9C) 1627 16 (x10) Largeur image/2 1628 11 (x0B) Hauteur image en pixels 1629 1 (x01) missile de type magique 1630 3 (x03) 8ème bit à 1 => ce missile n'est pas "animé" 7ème bit à 1 => ce missile n'a pas de vue de dos... 4ème bit à 0 => ce missile n'a pas de vue de profil...
1631 30 (x1E) Graph 0346 => Boule poison 1632 156 (x9C) 1633 16 (x10) Largeur image/2 1634 28 (x1C) Hauteur image en pixels 1635 1 (x01) missile de type magique 1636 3 (x03) 8ème bit à 1 => ce missile n'est pas "animé" 7ème bit à 1 => ce missile n'a pas de vue de dos... 4ème bit à 0 => ce missile n'a pas de vue de profil...
1637 31 (x1F) Graph 0347 => Poison 1638 156 (x9C) 1639 16 (x10) Largeur image/2 1640 24 (x18) Hauteur image en pixels 1641 1 (x01) missile de type magique 1642 3 (x03) 8ème bit à 1 => ce missile n'est pas "animé" 7ème bit à 1 => ce missile n'a pas de vue de dos... 4ème bit à 0 => ce missile n'a pas de vue de profil...
Dans cette partie sont décrites toutes les images des objets du jeu, du graph 0360 au graph 0445. Chaque objet est décrit par un groupe de 6 octets. Chacun de ces groupes de 6 octets se présente de la façon suivante : Octet 1 : donne l'index de l'image de l'objet (à partir du graph 0360) Octet 2 : cet octet semble servir pour un système d'indexation : sa valeur progresse de 2 en 2 d'un objet au suivant (3 tailles possibles pour l'affichage des objets en fonction de la distance => on suppose que le programme stocke quelque part les 2 images de l'objet redimensionné), sauf dans 3 cas : le coffre (la différence entre les octets 1644 et 1650 est de 6), et les 2 boîtes magiques (différence de 4 entre les valeurs des octets 2022 et 2028, et entre celles des octets 2118 et 2124). Ces 3 objets sont particuliers, puisque ce sont les seuls pour lesquels il y a un effet "miroir", qui fait que leur image est différente selon qu'ils se trouvent sur la gauche ou sur la droite du joueur (=> on suppose donc que le programme stocke 2 images supplémentaires, correspondant à l'objet "miroir" redimensionné). Le coffre a une autre particularité : c'est le seul objet qui dispose d'une image spéciale lorsqu'il est placé dans une niche (=> on suppose que le programme stocke 2 images supplémentaires, correspondant à l'objet dans la niche redimensionné). Octet 3 : largeur de l'image de l'objet divisée par 2 (remarque : toutes les images des objets ont une largeur égale à un multiple de 16) Octet 4 : hauteur de l'image de l'objet, en pixels. (remarque : la hauteur de l'image d'un objet ne doit pas dépasser 48 pixels, sinon cette image va "déborder" de la vue du donjon lorsqu'on lancera l'objet, et l'objet ne sera pas affiché!) Octet 5 : seuls 2 bits semblent utilisés. En considérant que le bit le plus à gauche est le bit 1 : - bit 1 : inutilisé - bit 2 : inutilisé - bit 3 : inutilisé - bit 4 : s'il est à 1, cela indique que l'objet dispose d'une image particulière pour le cas où il serait placé dans une niche. L'image suivante est alors utilisée. - bit 5 : inutilisé - bit 6 : inutilisé - bit 7 : inutilisé - bit 8 : s'il est à 1, cela indique qu'il faut appliquer un effet "miroir" entre les positions "à gauche du joueur" et "à droite du joueur" pour cet objet, comme ceci : ______ | ______ / /| | |\ \ (Remarque : ce dessin est sans | | | | | | | doute superflu mais j'avais | | | <---|---> | | | envie de le faire, alors je |_____|/ | \|_____| me suis dit "juste fais-le" | et je l'ai fait) Octet 6 : groupe de coordonnées de référence qu'il faut utiliser pour afficher l'image de cet objet au bon endroit (0, 1, ou 2, voir octets 1157 à 1456). * Remarque pratique, pour savoir à peu près dans quel groupe placer un objet que l'on a dessiné soi-même : - le groupe 0 concerne 30 objets, de largeur moyenne=55 pixels et de hauteur moyenne=18 - le groupe 1 concerne 50 objets, de largeur moyenne=34 pixels et de hauteur moyenne=10 - le groupe 2 concerne 5 objets, de largeur moyenne=70 pixels et de hauteur moyenne=23 Les objets les plus "petits" sont donc généralement dans le groupe 1, les plus "gros" dans le groupe 2, et les objets de taille "moyenne" dans le groupe 0.
1643 0 (x00) Graph 0360+0=0360 => Coffre posé au sol 1644 0 (x00) 1645 24 (x18) Largeur image divisée par 2 (largeur image 0360 = 48 pixels) 1646 27 (x1B) Hauteur image coffre en pixels 1647 17 (x11) 8ème bit à 1 : effet "miroir" entre positions gauche et droite 4ème bit à 1 : il existe une image spéciale pour le coffre placé dans une niche. => utiliser graph 0361 (qui a les mêmes dimensions que 0360) 1648 0 (x00) Utiliser les coordonnées de référence du groupe 0 pour cet objet
1649 2 (x02) Graph 0360+2=0362 => Parchemin posé au sol 1650 6 (x06) 1651 24 (x18) Largeur image/2 (largeur image 0362 = 48 pixels) 1652 8 (x08) Hauteur de l'image 0362 en pixels 1653 0 (x00) pas d'effet "miroir" et pas de graph spécial si l'objet est placé dans une niche 1654 1 (x01) Utiliser les coordonnées de référence du groupe 1 pour cet objet
1655 3 (x03) Graph 0360+3=0363 => Flacon plein (eau/potion) 1656 8 (x08) 1657 8 (x08) Largeur image/2 (largeur 0363 = 16 pixels) 1658 18 (x12) Hauteur image 0363 en pixels 1659 0 (x00) pas d'effet "miroir" et pas de graph spécial si l'objet est placé dans une niche 1660 1 (x01) Utiliser coordonnées de référence du groupe 1
1661 4 (x04) Graph 0360+4=0364 => Gemme bleue 1662 10 (x0A) 1663 8 (x08) largeur/2 1664 8 (x08) hauteur 1665 0 (x00) " 1666 1 (x01) Utiliser coordonnées de référence du groupe 1
1667 5 (x05) Graph 0360+5=0365 => Pièce or, cuivre 1668 12 (x0C) 1669 8 (x08) largeur/2 1670 4 (x04) hauteur 1671 0 (x00) " 1672 1 (x01) Utiliser coordonnées de référence du groupe 1
1673 6 (x06) Graph 0360+6=0366 => Cuissot de rat 1674 14 (x0E) 1675 16 (x10) largeur/2 1676 11 (x0B) hauteur 1677 0 (x00) " 1678 1 (x01) Utiliser coordonnées de référence du groupe 1
1679 7 (x07) Graph 0367 => Outre pleine d'eau 1680 16 (x10) 1681 24 (x18) " 1682 13 (x0D) " 1683 0 (x00) " 1684 0 (x00) Utiliser coordonnées de référence du groupe 0
1685 8 (x08) Graph 0368 => Vêtement elfe (pantalon/chemise) 1686 18 (x12) 1687 32 (x20) " 1688 16 (x10) " 1689 0 (x00) " 1690 0 (x00) Utiliser coordonnées de référence du groupe 0
1691 9 (x09) Graph 0369 => Bottes de cuir (noires) 1692 20 (x14) 1693 40 (x28) " 1694 24 (x18) " 1695 0 (x00) " 1696 0 (x00) Utiliser coordonnées de référence du groupe 0
1697 10 (x0A) Graph 0370 => Casque 1698 22 (x16) 1699 16 (x10) " 1700 20 (x14) " 1701 0 (x00) " 1702 1 (x01) Utiliser coordonnées de référence du groupe 1
1703 11 (x0B) Graph 0371 => Bouclier (Grand, ovoïde) 1704 24 (x18) 1705 40 (x28) " 1706 20 (x14) " 1707 0 (x00) " 1708 0 (x00) Utiliser coordonnées de référence du groupe 0
1709 12 (x0C) Graph 0372 => Bâtons & fronde 1710 26 (x1A) 1711 32 (x20) " 1712 4 (x04) " 1713 0 (x00) " 1714 1 (x01) Utiliser coordonnées de référence du groupe 1
1715 13 (x0D) Graph 0373 => Epée 1716 28 (x1C) 1717 40 (x28) " 1718 8 (x08) " 1719 0 (x00) " 1720 1 (x01) Utiliser coordonnées de référence du groupe 1
1721 14 (x0E) Graph 0374 => Hache 1722 30 (x1E) 1723 32 (x20) " 1724 17 (x11) " 1725 0 (x00) " 1726 0 (x00) Utiliser coordonnées de référence du groupe 0
1727 15 (x0F) Graph 0375 => Arc 1728 32 (x20) 1729 40 (x28) " 1730 17 (x11) " 1731 0 (x00) " 1732 2 (x02) Utiliser coordonnées de référence du groupe 2
1733 16 (x10) Graph 0376 => Amulette (or) 1734 34 (x22) 1735 16 (x10) " 1736 9 (x09) " 1737 0 (x00) " 1738 1 (x01) Utiliser coordonnées de référence du groupe 1
1739 17 (x11) Graph 0377 => Flèche 1740 36 (x24) 1741 24 (x18) " 1742 5 (x05) " 1743 0 (x00) " 1744 1 (x01) Utiliser coordonnées de référence du groupe 1
1745 18 (x12) Graph 0378 => Dague 1746 38 (x26) 1747 16 (x10) " 1748 9 (x09) " 1749 0 (x00) " 1750 0 (x00) Utiliser coordonnées de référence du groupe 0
1751 19 (x13) Graph 0379 => Clé (argent) 1752 40 (x28) 1753 8 (x08) " 1754 4 (x04) " 1755 0 (x00) " 1756 1 (x01) Utiliser coordonnées de référence du groupe 1
1757 20 (x14) Graph 0380 => Elément armure type cotte de mailles 1758 42 (x2A) 1759 32 (x20) " 1760 21 (x15) " 1761 0 (x00) " 1762 2 (x02) Utiliser coordonnées de référence du groupe 2
1763 21 (x15) Graph 0381 => Elément armure (cuirasse) 1764 44 (x2C) 1765 32 (x20) " 1766 25 (x19) " 1767 0 (x00) " 1768 2 (x02) Utiliser coordonnées de référence du groupe 2
1769 22 (x16) Graph 0382 => Masse 1770 46 (x2E) 1771 32 (x20) " 1772 14 (x0E) " 1773 0 (x00) " 1774 1 (x01) Utiliser coordonnées de référence du groupe 1
1775 23 (x17) Graph 0383 => Elément armure (jambières) 1776 48 (x30) 1777 32 (x20) " 1778 26 (x1A) " 1779 0 (x00) " 1780 2 (x02) Utiliser coordonnées de référence du groupe 2
1781 24 (x18) Graph 0384 => Vêtements (cuir) 1782 50 (x32) 1783 32 (x20) " 1784 16 (x10) " 1785 0 (x00) " 1786 0 (x00) Utiliser coordonnées de référence du groupe 0
1787 25 (x19) Graph 0385 => Vêtements (blancs) 1788 52 (x34) 1789 32 (x20) " 1790 16 (x10) " 1791 0 (x00) " 1792 0 (x00) Utiliser coordonnées de référence du groupe 0
1793 26 (x1A) Graph 0386 => Pain 1794 54 (x36) 1795 16 (x10) " 1796 16 (x10) " 1797 0 (x00) " 1798 1 (x01) Utiliser coordonnées de référence du groupe 1
1799 27 (x1B) Graph 0387 => Fromage 1800 56 (x38) 1801 16 (x10) " 1802 15 (x0F) " 1803 0 (x00) " 1804 1 (x01) Utiliser coordonnées de référence du groupe 1
1805 28 (x1C) Graph 0388 => Pomme 1806 58 (x3A) 1807 16 (x10) " 1808 13 (x0D) " 1809 0 (x00) " 1810 1 (x01) Utiliser coordonnées de référence du groupe 1
1811 29 (x1D) Graph 0389 => Maïs 1812 60 (x3C) 1813 16 (x10) " 1814 10 (x0A) " 1815 0 (x00) " 1816 1 (x01) Utiliser coordonnées de référence du groupe 1
1817 30 (x1E) Graph 0390 => Bottes (marron) 1818 62 (x3E) 1819 40 (x28) " 1820 24 (x18) " 1821 0 (x00) " 1822 0 (x00) Utiliser coordonnées de référence du groupe 0
1823 31 (x1F) Graph 0391 => Sceptre (of Lyfe) 1824 64 (x40) 1825 40 (x28) " 1826 9 (x09) " 1827 0 (x00) " 1828 1 (x01) Utiliser coordonnées de référence du groupe 1
1829 32 (x20) Graph 0392 => Baguette 1830 66 (x42) 1831 16 (x10) " 1832 3 (x03) " 1833 0 (x00) " 1834 1 (x01) Utiliser coordonnées de référence du groupe 1
1835 33 (x21) Graph 0393 => Bâton "Dragon Spit" 1836 68 (x44) 1837 32 (x20) " 1838 5 (x05) " 1839 0 (x00) " 1840 1 (x01) Utiliser coordonnées de référence du groupe 1
1841 34 (x22) Graph 0394 => Morningstar 1842 70 (x46) 1843 40 (x28) " 1844 16 (x10) " 1845 0 (x00) " 1846 0 (x00) Utiliser coordonnées de référence du groupe 0
1847 35 (x23) Graph 0395 => Boussole 1848 72 (x48) 1849 8 (x08) " 1850 7 (x07) " 1851 0 (x00) " 1852 1 (x01) Utiliser coordonnées de référence du groupe 1
1853 36 (x24) Graph 0396 => Torche 1854 74 (x4A) 1855 32 (x20) " 1856 7 (x07) " 1857 0 (x00) " 1858 1 (x01) Utiliser coordonnées de référence du groupe 1
1859 37 (x25) Graph 0397 => Outre vide 1860 76 (x4C) 1861 24 (x18) " 1862 14 (x0E) " 1863 0 (x00) " 1864 0 (x00) Utiliser coordonnées de référence du groupe 0
1865 38 (x26) Graph 0398 => Gant "Flamit" 1866 78 (x4E) 1867 16 (x10) " 1868 8 (x08) " 1869 0 (x00) " 1870 0 (x00) Utiliser coordonnées de référence du groupe 0
1871 39 (x27) Graph 0399 => Anneau 1872 80 (x50) 1873 8 (x08) " 1874 3 (x03) " 1875 0 (x00) " 1876 1 (x01) Utiliser coordonnées de référence du groupe 1
1877 40 (x28) Graph 0400 => Firestaff 1878 82 (x52) 1879 40 (x28) " 1880 9 (x09) " 1881 0 (x00) " 1882 1 (x01) Utiliser coordonnées de référence du groupe 1
1883 41 (x29) Graph 0401 => Cendres 1884 84 (x54) 1885 24 (x18) " 1886 14 (x0E) " 1887 0 (x00) " 1888 0 (x00) Utiliser coordonnées de référence du groupe 0
1889 42 (x2A) Graph 0402 => Ossements 1890 86 (x56) 1891 40 (x28) " 1892 20 (x14) " 1893 0 (x00) " 1894 0 (x00) Utiliser coordonnées de référence du groupe 0
1895 43 (x2B) Graph 0403 => Lame "Vorpal" 1896 88 (x58) 1897 40 (x28) " 1898 15 (x0F) " 1899 0 (x00) " 1900 1 (x01) Utiliser coordonnées de référence du groupe 1
1901 44 (x2C) Graph 0404 => Massue bois 1902 90 (x5A) 1903 32 (x20) " 1904 10 (x0A) " 1905 0 (x00) " 1906 1 (x01) Utiliser coordonnées de référence du groupe 1
1907 45 (x2D) Graph 0405 => Massue pierre 1908 92 (x5C) 1909 32 (x20) " 1910 19 (x13) " 1911 0 (x00) " 1912 0 (x00) Utiliser coordonnées de référence du groupe 0
1913 46 (x2E) Graph 0406 => Arbalète 1914 94 (x5E) 1915 40 (x28) " 1916 25 (x19) " 1917 0 (x00) " 1918 2 (x02) Utiliser coordonnées de référence du groupe 2
1919 47 (x2F) Graph 0407 => Carreau 1920 96 (x60) 1921 24 (x18) " 1922 7 (x07) " 1923 0 (x00) " 1924 1 (x01) Utiliser coordonnées de référence du groupe 1
1925 48 (x30) Graph 0408 => Pierre 1926 98 (x62) 1927 8 (x08) " 1928 7 (x07) " 1929 0 (x00) " 1930 1 (x01) Utiliser coordonnées de référence du groupe 1
1931 49 (x31) Graph 0409 => Flèchette empoisonnée 1932 100 (x64) 1933 16 (x10) " 1934 5 (x05) " 1935 0 (x00) " 1936 1 (x01) Utiliser coordonnées de référence du groupe 1
1937 50 (x32) Graph 0410 => Shuriken 1938 102 (x66) 1939 8 (x08) " 1940 9 (x09) " 1941 0 (x00) " 1942 1 (x01) Utiliser coordonnées de référence du groupe 1
1943 51 (x33) Graph 0411 => Bout de bois 1944 104 (x68) 1945 32 (x20) " 1946 11 (x0B) " 1947 0 (x00) " 1948 1 (x01) Utiliser coordonnées de référence du groupe 1
1949 52 (x34) Graph 0412 => Bâton "The Conduit" 1950 106 (x6A) 1951 32 (x20) " 1952 14 (x0E) " 1953 0 (x00) " 1954 0 (x00) Utiliser coordonnées de référence du groupe 0
1955 53 (x35) Graph 0413 => Heaume 1956 108 (x6C) 1957 24 (x18) " 1958 20 (x14) " 1959 0 (x00) " 1960 0 (x00) Utiliser coordonnées de référence du groupe 0
1961 54 (x36) Graph 0414 => Calista, Couronne Nerra 1962 110 (x6E) 1963 16 (x10) " 1964 14 (x0E) " 1965 0 (x00) " 1966 1 (x01) Utiliser coordonnées de référence du groupe 1
1967 55 (x37) Graph 0415 => Bouclier rond 1968 112 (x70) 1969 32 (x20) " 1970 23 (x17) " 1971 0 (x00) " 1972 0 (x00) Utiliser coordonnées de référence du groupe 0
1973 56 (x38) Graph 0416 => Sandales 1974 114 (x72) 1975 24 (x18) " 1976 16 (x10) " 1977 0 (x00) " 1978 0 (x00) Utiliser coordonnées de référence du groupe 0
1979 57 (x39) Graph 0417 => Element armure (chausses) 1980 116 (x74) 1981 32 (x20) " 1982 25 (x19) " 1983 0 (x00) " 1984 0 (x00) Utiliser coordonnées de référence du groupe 0
1985 58 (x3A) Graph 0418 => Bottes elfe 1986 118 (x76) 1987 24 (x18) " 1988 25 (x19) " 1989 0 (x00) " 1990 0 (x00) Utiliser coordonnées de référence du groupe 0
1991 59 (x3B) Graph 0419 => Amulette "Pierre de Lune" 1992 120 (x78) 1993 8 (x08) " 1994 8 (x08) " 1995 0 (x00) " 1996 1 (x01) Utiliser coordonnées de référence du groupe 1
1997 60 (x3C) Graph 0420 => Amulette "Pendant Feral", "Helion" 1998 122 (x7A) 1999 8 (x08) " 2000 7 (x07) " 2001 0 (x00) " 2002 1 (x01) Utiliser coordonnées de référence du groupe 1
2003 61 (x3D) Graph 0421 => Gemme orange 2004 124 (x7C) 2005 8 (x08) " 2006 8 (x08) " 2007 0 (x00) " 2008 1 (x01) Utiliser coordonnées de référence du groupe 1
2009 62 (x3E) Graph 0422 => Gemme verte 2010 126 (x7E) 2011 8 (x08) " 2012 8 (x08) " 2013 0 (x00) " 2014 1 (x01) Utiliser coordonnées de référence du groupe 1
2015 63 (x3F) Graph 0423 => Clé (or) 2016 128 (x80) 2017 8 (x08) " 2018 5 (x05) " 2019 0 (x00) " 2020 1 (x01) Utiliser coordonnées de référence du groupe 1
2021 64 (x40) Graph 0424 => Boîte magique (verte) 2022 130 (x82) 2023 8 (x08) " 2024 13 (x0D) " 2025 1 (x01) Effet "miroir" entre positions gauche-droite 2026 1 (x01) Utiliser coordonnées de référence du groupe 1
2027 65 (x41) Graph 0425 => Miroir 2028 134 (x86) 2029 16 (x10) " 2030 13 (x0D) " 2031 0 (x00) " 2032 1 (x01) Utiliser coordonnées de référence du groupe 1
2033 66 (x42) Graph 0426 => Corne de peur 2034 136 (x88) 2035 16 (x10) " 2036 14 (x0E) " 2037 0 (x00) " 2038 0 (x00) Utiliser coordonnées de référence du groupe 0
2039 67 (x43) Graph 0427 => Steak de Dragon 2040 138 (x8A) 2041 16 (x10) " 2042 10 (x0A) " 2043 0 (x00) " 2044 1 (x01) Utiliser coordonnées de référence du groupe 1
2045 68 (x44) Graph 0428 => Potion Ven 2046 140 (x8C) 2047 8 (x08) " 2048 18 (x12) " 2049 0 (x00) " 2050 1 (x01) Utiliser coordonnées de référence du groupe 1
2051 69 (x45) Graph 0429 => Bombe Ful 2052 142 (x8E) 2053 8 (x08) " 2054 17 (x11) " 2055 0 (x00) " 2056 1 (x01) Utiliser coordonnées de référence du groupe 1
2057 70 (x46) Graph 0430 => Vêtements bleus 2058 144 (x90) 2059 32 (x20) " 2060 18 (x12) " 2061 0 (x00) " 2062 0 (x00) Utiliser coordonnées de référence du groupe 0
2063 71 (x47) Graph 0431 => Tranche de Ver 2064 146 (x92) 2065 16 (x10) " 2066 23 (x17) " 2067 0 (x00) " 2068 0 (x00) Utiliser coordonnées de référence du groupe 0
2069 72 (x48) Graph 0432 => Portion de "Screamer" 2070 148 (x94) 2071 16 (x10) " 2072 24 (x18) " 2073 0 (x00) " 2074 0 (x00) Utiliser coordonnées de référence du groupe 0
2075 73 (x49) Graph 0433 => Corde 2076 150 (x96) 2077 16 (x10) " 2078 15 (x0F) " 2079 0 (x00) " 2080 0 (x00) Utiliser coordonnées de référence du groupe 0
2081 74 (x4A) Graph 0434 => Patte de Lapin 2082 152 (x98) 2083 8 (x08) " 2084 7 (x07) " 2085 0 (x00) " 2086 1 (x01) Utiliser coordonnées de référence du groupe 1
2087 75 (x4B) Graph 0435 => Corbum, ZoKathRa 2088 154 (x9A) 2089 8 (x08) " 2090 15 (x0F) " 2091 0 (x00) " 2092 1 (x01) Utiliser coordonnées de référence du groupe 1
2093 76 (x4C) Graph 0436 => Collier "Choker" 2094 156 (x9C) 2095 8 (x08) " 2096 9 (x09) " 2097 0 (x00) " 2098 1 (x01) Utiliser coordonnées de référence du groupe 1
2099 77 (x4D) Graph 0437 => Grosse pierre 2100 158 (x9E) 2101 16 (x10) " 2102 14 (x0E) " 2103 0 (x00) " 2104 0 (x00) Utiliser coordonnées de référence du groupe 0
2105 78 (x4E) Graph 0438 => Lock Picks 2106 160 (xA0) 2107 8 (x08) " 2108 8 (x08) " 2109 0 (x00) " 2110 1 (x01) Utiliser coordonnées de référence du groupe 1
2111 79 (x4F) Graph 0439 => Loupe 2112 162 (xA2) 2113 16 (x10) " 2114 9 (x09) " 2115 0 (x00) " 2116 1 (x01) Utiliser coordonnées de référence du groupe 1
2117 80 (x50) Graph 0440 => Boîte magique (bleue) 2118 164 (xA4) 2119 8 (x08) " 2120 13 (x0D) " 2121 1 (x01) Effet "miroir" entre positions gauche-droite 2122 1 (x01) Utiliser coordonnées de référence du groupe 1
2123 81 (x51) Graph 0441 => Flacon vide 2124 168 (xA8) 2125 8 (x08) " 2126 18 (x12) " 2127 0 (x00) " 2128 1 (x01) Utiliser coordonnées de référence du groupe 1
2129 82 (x52) Graph 0442 => Bottes de vitesse 2130 170 (xAA) 2131 24 (x18) " 2132 28 (x1C) " 2133 0 (x00) " 2134 0 (x00) Utiliser coordonnées de référence du groupe 0
2135 83 (x53) Graph 0443 => Firestaff (avec Joyau de puissance) 2136 172 (xAC) 2137 40 (x28) " 2138 13 (x0D) " 2139 0 (x00) " 2140 1 (x01) Utiliser coordonnées de référence du groupe 1
2141 84 (x54) Graph 0444 => Pièce argent 2142 174 (xAE) 2143 8 (x08) " 2144 4 (x04) " 2145 0 (x00) " 2146 1 (x01) Utiliser coordonnées de référence du groupe 1
2147 85 (x55) Graph 0445 => Soutif en Titane 2148 176 (xB0) 2149 32 (x20) " 2150 17 (x11) " 2151 0 (x00) " 2152 0 (x00) Utiliser coordonnées de référence du groupe 0
Dans cette partie sont définies les données utilisées pour afficher toutes les décorations de portes, à toutes les distances possibles, ainsi que les données utilisées pour afficher le bouton des portes. On utilise les mêmes conventions que précédemment : -----P-----P-----P----- <-- Mur à D3 (distance 3) | | | | | | | | | | | | ----P-----P-----P---- <-- Mur à D2 (distance 2) | | | | | | | | | | | | ---P-----P-----P--- <-- Mur à D1 (distance 1) | | | J | <-- Position du Joueur | | ------- P = Portes visibles par le joueur (entièrement ou partiellement).
Ici se trouvent toutes les données nécessaires à l'affichage du petit bouton des portes, à toutes les positions et distances où celui-ci est visible. Le Graph de ce "bouton de porte" est le 0315. Xg Xd ' ' Yh +-------+ | | | | <--- Bouton de porte dans la vue du donjon | | | | Yb +-------+ NB : dimensions du graph 0315 : 16x9 pixels (largeur=multiple de 16) *** Pour une porte en D3, sur la droite *** 2153 199 (xC7) Xg en pixels 2154 204 (xCC) Xd en pixels 2155 41 (x29) Yh en pixels 2156 44 (x2C) Yb en pixels 2157 8 (x08) largeur image redimensionnée, arrondie au multiple de 16 supérieur, puis divisée par 2 ((Xd+1)-Xg=6 => on prend 16/2=8) 2158 4 (x04) Hauteur de l'image redimensionnée en pixels (H=(Yb+1)-Yh) *** Pour une porte en D3, sur la gauche *** Le bouton de porte est invisible, puisqu'il est "masqué" par un pan de mur => on ne s'en occupe donc pas! De même, à D2 et D1, sur la gauche ou sur la droite, le bouton est invisible (soit masqué par un pan de mur, soit hors champ). *** Pour une porte en D3, droit devant *** 2159 136 (x88) Xg en pixels 2160 141 (x8D) Xd en pixels 2161 41 (x29) Yh en pixels 2162 44 (x2C) Yb en pixels 2163 8 (x08) (Xd+1)-Xg=6 => on prend 16/2=8 2164 4 (x04) Hauteur de l'image redimensionnée (H=(Yb+1)-Yh) *** Pour une porte en D2, droit devant *** 2165 144 (x90) Xg 2166 155 (x9B) Xd 2167 42 (x2A) Yh 2168 47 (x2F) Yb 2169 8 (x08) (Xd+1)-Xg=12 => on prend 16/2=8 2170 6 (x06) H de l'image redimensionnée (H=(Yb+1)-Yh) *** Pour une porte en D1, droit devant *** 2171 160 (xA0) Xg 2172 175 (xAF) Xd 2173 44 (x2C) Yh 2174 52 (x34) Yb 2175 8 (x08) Largeur image (multiple de 16) divisée par 2 2176 9 (x09) H de l'image en pixels
La partie suivante définit 4 groupes de données qui seront utilisés pour l'affichage des différentes décorations de porte, à toutes les distances possibles. Les octets 3125 à 3136 indiquent pour chaque décoration de porte lequel de ces 4 groupes il faut utiliser. ** REMARQUE ** : pour les décorations de porte, les coordonnées Xg, Xd, Yh, Yb, sont données relativement au coin supérieur gauche de l'image de la porte! La décoration est donc "collée" sur la porte avant que celle-ci ne soit affichée dans la vue du donjon. Xg Xd 0--------+--------+--------+-> X (en pixels) | ' ' | Yh-+- - - - ---------- | | | | | | | | <------------- image de la décoration | | | | de la porte Yb-+- - - - ---------- | | | | | <---- image de la porte | | | | | | | | +--------------------------+ | Y (en pixels) Remarque pratique : les graphs 0108 à 0119 représentent les portes aux 3 différentes tailles (à D3, D2, et D1). Si l'on souhaite modifier les données d'un groupe, de façon à pouvoir intégrer une décoration de porte personnalisée, le plus simple est donc de se servir de ces images, sur lesquelles on collera la décoration à l'endroit et à la taille exacts que l'on souhaite. Ainsi, on obtiendra facilement les coordonnées Xg, Xd, Yh, et Yb nécessaires.
Concerne les petites décorations, placées en haut de porte et centrées. => Graphs 0303 et 0307 (dimensions 32x19) *** Porte à D3 *** 2177 17 (x11) Xg 2178 31 (x1F) Xd 2179 8 (x08) Yh 2180 17 (x11) Yb 2181 8 (x08) largeur image redimensionnée, arrondie au multiple de 16 supérieur, puis divisée par 2 ((Xd+1)-Xg=15 => on prend 16/2=8) 2182 10 (x0A) H de l'image redimensionnée (H=(Yb+1)-Yh) *** Porte à D2 *** 2183 22 (x16) Xg 2184 42 (x2A) Xd 2185 11 (x0B) Yh 2186 23 (x17) Yb 2187 16 (x10) largeur image redimensionnée, arrondie au multiple de 16 supérieur, puis divisée par 2 ((Xd+1)-Xg=21 => on prend 32/2=16) 2188 13 (x0D) H de l'image redimensionnée (H=(Yb+1)-Yh) *** Porte à D1 *** 2189 32 (x20) Xg 2190 63 (x3F) Xd 2191 13 (x0D) Yh 2192 31 (x1F) Yb 2193 16 (x10) largeur image/2 (NB: largeur image=multiple de 16) 2194 19 (x13) H de l'image
Concerne les décorations qui occupent toute la surface de la porte. => Graphs 0301, 0304, 0305, 0306, 0310, 0313 et 0314 (dimensions 96x88) *** Porte à D3 *** 2195 0 (x00) Xg 2196 47 (x2F) Xd 2197 0 (x00) Yh 2198 40 (x28) Yb 2199 24 (x18) (Xd+1)-Xg=48, multiple de 16 => on prend 48/2=24 2200 41 (x29) H de l'image redimensionnée (H=(Yb+1)-Yh) *** Porte à D2 *** 2201 0 (x00) Xg 2202 63 (x3F) Xd 2203 0 (x00) Yh 2204 60 (x3C) Yb 2205 32 (x20) (Xd+1)-Xg=64, multiple de 16 => on prend 64/2=32 2206 61 (x3D) H de l'image redimensionnée (H=(Yb+1)-Yh) *** Porte à D1 *** 2207 0 (x00) Xg 2208 95 (x5F) Xd 2209 0 (x00) Yh 2210 87 (x57) Yb 2211 48 (x30) largeur image/2 (NB: largeur image=multiple de 16) 2212 88 (x58) H de l'image
Concerne les petites décorations, placées au centre de la porte. => Graphs 0308, 0311 et 0312 (dimensions 32x19) *** Porte à D3 *** 2213 17 (x11) Xg 2214 31 (x1F) Xd 2215 15 (x0F) Yh 2216 24 (x18) Yb 2217 8 (x08) (Xd+1)-Xg=15 => on prend 16/2=8 2218 10 (x0A) H de l'image redimensionnée (H=(Yb+1)-Yh) *** Porte à D2 *** 2219 22 (x16) Xg 2220 42 (x2A) Xd 2221 22 (x16) Yh 2222 34 (x22) Yb 2223 16 (x10) (Xd+1)-Xg=21 => on prend 32/2=16 2224 13 (x0D) H de l'image redimensionnée (H=(Yb+1)-Yh) *** Porte à D1 *** 2225 32 (x20) Xg 2226 63 (x3F) Xd 2227 31 (x1F) Yh 2228 49 (x31) Yb 2229 16 (x10) largeur image/2 (NB: largeur image=multiple de 16) 2230 19 (x13) H de l'image
Concerne les petites décorations, placées en bas de porte et décentrées. => Graph 0309 (dimensions 32x19) *** Porte à D3 *** 2231 23 (x17) Xg 2232 35 (x23) Xd 2233 31 (x1F) Yh 2234 39 (x27) Yb 2235 8 (x08) (Xd+1)-Xg=13 => on prend 16/2=8 2236 9 (x09) H de l'image redimensionnée (NB: H=(Yb+1)-Yh) *** Porte à D2 *** 2237 30 (x1E) Xg 2238 48 (x30) Xd 2239 41 (x29) Yh 2240 52 (x34) Yb 2241 16 (x10) (Xd+1)-Xg=19 => on prend 32/2=16 2242 12 (x0C) H de l'image redimensionnée (NB: H=(Yb+1)-Yh) *** Porte à D1 *** 2243 44 (x2C) Xg 2244 75 (x4B) Xd 2245 61 (x3D) Yh 2246 79 (x4F) Yb 2247 16 (x10) largeur image/2 (NB: largeur image=multiple de 16) 2248 19 (x13) H de l'image
Dans cette partie sont définies les données utilisées pour afficher toutes les décorations de sol, à toutes les distances possibles. Ceci concerne donc les graphs 0241 à 0300. Ces données sont réparties en 3 groupes. Les octets 3137 à 3146 indiquent pour chaque décoration de sol lequel de ces 3 groupes il faut utiliser. On utilise les mêmes conventions que précédemment : ------------------- | | | | | Sg | Sc | Sd | <-- Décorations de sol à D3 (distance 3) | | | | ------------------- | | | | | Sg | Sc | Sd | <-- Décorations de sol à D2 (distance 2) | | | | ------------------- | | | | | Sg | Sc | Sd | <-- Décorations de sol à D1 (distance 1) | | | | ------------------- | | | J | <-- Position du Joueur | | ------- Sg : décoration de sol sur la gauche du joueur Sc : décoration de sol au centre, face au joueur Sd : décoration de sol sur la droite du joueur Vue du donjon : Xg Xd 0------------+--------+----+-> X (en pixels) | ' ' | | ' ' | | ' ' | | ' ' | | ' ' | | ' ' | Yh-+- - - - - - ---------- | | | | <------------- image de la | | | | décoration de sol Yb-+- - - - - - ---------- | | | +--------------------------+ | Y (en pixels)
Concerne la majorité des décorations de sol : grille carrée (graphs 0247 à 0252), dalle carrée (graphs 0253 à 0258), mousse (graphs 0259 à 0264), grille ronde (graphs 0265 à 0270), socle flamme noire (graphs 0277 à 0282), craquelure (graphs 0283 à 0288), et flaque d'eau (graphs 0295 à 0300). *** Décoration en Sg à D3 *** (Graphs 0247, 0253, 0259, 0265, 0277, 0283, 0295) (Dimensions : 48x6) 2249 32 (x20) Xg 2250 79 (x4F) Xd 2251 66 (x42) Yh 2252 71 (x47) Yb 2253 24 (x18) largeur image/2 (largeur image = multiple de 16) 2254 6 (x06) H de l'image (NB: H=(Yb+1)-Yh) *** Décoration en Sc à D3 *** (Graphs 0248, 0254, 0260, 0266, 0278, 0284, 0296) (Dimensions : 32x6) 2255 96 (x60) Xg 2256 127 (x7F) Xd 2257 66 (x42) Yh 2258 71 (x47) Yb 2259 16 (x10) largeur image/2 (largeur image = multiple de 16) 2260 6 (x06) H de l'image *** Décoration en Sd à D3 *** (Graphs 0247, 0253, 0259, 0265, 0277, 0283, 0295, avec effet "miroir") 2261 144 (x90) Xg 2262 191 (xBF) Xd 2263 66 (x42) Yh 2264 71 (x47) Yb 2265 24 (x18) largeur image/2 (largeur image = multiple de 16) 2266 6 (x06) H de l'image *** Décoration en Sg à D2 *** (Graphs 0249, 0255, 0261, 0267, 0279, 0285, 0297) (Dimensions : 64x11) 2267 0 (x00) Xg 2268 63 (x3F) Xd 2269 77 (x4D) Yh 2270 87 (x57) Yb 2271 32 (x20) largeur image/2 (largeur image = multiple de 16) 2272 11 (x0B) H de l'image *** Décoration en Sc à D2 *** (Graphs 0250, 0256, 0262, 0268, 0280, 0286, 0298) (Dimensions : 64x11) 2273 80 (x50) Xg 2274 143 (x8F) Xd 2275 77 (x4D) Yh 2276 87 (x57) Yb 2277 32 (x20) largeur image/2 (largeur image = multiple de 16) 2278 11 (x0B) H de l'image *** Décoration en Sd à D2 *** (Graphs 0249, 0255, 0261, 0267, 0279, 0285, 0297 avec effet "miroir") 2279 160 (xA0) Xg 2280 223 (xDF) Xd 2281 77 (x4D) Yh 2282 87 (x57) Yb 2283 32 (x20) largeur image/2 (largeur image = multiple de 16) 2284 11 (x0B) H de l'image *** Décoration en Sg à D1 *** (Graphs 0251, 0257, 0263, 0269, 0281, 0287, 0299) (Dimensions : 32x25) 2285 0 (x00) Xg 2286 31 (x1F) Xd 2287 92 (x5C) Yh 2288 116 (x74) Yb 2289 16 (x10) largeur image/2 (largeur image = multiple de 16) 2290 25 (x19) H de l'image *** Décoration en Sc à D1 *** (Graphs 0252, 0258, 0264, 0270, 0282, 0288, 0300) (Dimensions : 64x25) 2291 80 (x50) Xg 2292 143 (x8F) Xd 2293 92 (x5C) Yh 2294 116 (x74) Yb 2295 32 (x20) largeur image/2 (largeur image = multiple de 16) 2296 25 (x19) H de l'image *** Décoration en Sd à D1 *** (Graphs 0251, 0257, 0263, 0269, 0281, 0287, 0299 avec effet "miroir") 2297 192 (xC0) Xg 2298 223 (xDF) Xd 2299 92 (x5C) Yh 2300 116 (x74) Yb 2301 32 (x10) largeur image/2 (largeur image = multiple de 16) 2302 25 (x19) H de l'image
Ne concerne que les empreintes de pas : graphs 0241 à 0246 *** Décoration en Sg à D3 *** (Graph 0241) (Dimensions : 96x9) 2303 0 (x00) Xg 2304 95 (x5F) Xd 2305 66 (x42) Yh 2306 74 (x4A) Yb 2307 48 (x30) largeur image/2 (largeur image = multiple de 16) 2308 9 (x09) H de l'image *** Décoration en Sc à D3 *** (Graph 0242) (Dimensions : 96x9) 2309 64 (x40) Xg 2310 159 (x9F) Xd 2311 66 (x42) Yh 2312 74 (x4A) Yb 2313 48 (x30) largeur image/2 2314 9 (x09) H de l'image *** Décoration en Sd à D3 *** (Graph 0241 avec effet "miroir") 2315 128 (x80) Xg 2316 223 (xDF) Xd 2317 66 (x42) Yh 2318 74 (x4A) Yb 2319 48 (x30) largeur image/2 2320 9 (x09) H de l'image *** Décoration en Sg à D2 *** (Graph 0243) (Dimensions : 80x15) 2321 0 (x00) Xg 2322 79 (x4F) Xd 2323 75 (x4B) Yh 2324 89 (x59) Yb 2325 40 (x28) largeur image/2 2326 15 (x0F) H de l'image *** Décoration en Sc à D2 *** (Graph 0244) (Dimensions : 112x15) 2327 56 (x38) Xg 2328 167 (xA7) Xd 2329 75 (x4B) Yh 2330 89 (x59) Yb 2331 56 (x38) largeur image/2 2332 15 (x0F) H de l'image *** Décoration en Sd à D2 *** (Graph 0243 avec effet "miroir") 2333 144 (x90) Xg 2334 223 (xDF) Xd 2335 75 (x4B) Yh 2336 89 (x59) Yb 2337 40 (x28) largeur image/2 2338 15 (x0F) H de l'image *** Décoration en Sg à D1 *** (Graph 0245) (Dimensions : 64x29) 2339 0 (x00) Xg 2340 63 (x3F) Xd 2341 90 (x5A) Yh 2342 118 (x76) Yb 2343 32 (x20) largeur image/2 2344 29 (x1D) H de l'image *** Décoration en Sc à D1 *** (Graph 0246) (Dimensions : 160x29) 2345 32 (x20) Xg 2346 191 (xBF) Xd 2347 90 (x5A) Yh 2348 118 (x76) Yb 2349 80 (x50) largeur image/2 2350 29 (x1D) H de l'image *** Décoration en Sd à D1 *** (Graph 0245 avec effet "miroir") 2351 160 (xA0) Xg 2352 223 (xDF) Xd 2353 90 (x5A) Yh 2354 118 (x76) Yb 2355 32 (x20) largeur image/2 2356 29 (x1D) H de l'image
Concerne les décorations de sol les plus petites : dalle hexagonale (graphs 0271 à 0276) et dalle minuscule (graphs 0289 à 0294) *** Décoration en Sg à D3 *** (Graph 0271, 0289) (Dimensions : 16x5) 2357 42 (x2A) Xg 2358 57 (x39) Xd 2359 68 (x44) Yh 2360 72 (x48) Yb 2361 8 (x08) largeur image/2 2362 5 (x05) H de l'image *** Décoration en Sc à D3 *** (Graph 0272, 0290) (Dimensions : 16x5) 2363 104 (x68) Xg 2364 119 (x77) Xd 2365 68 (x44) Yh 2366 77 (x48) Yb 2367 8 (x08) largeur image/2 2368 5 (x05) H de l'image *** Décoration en Sd à D3 *** (Graph 0271, 0289 avec effet "miroir") 2369 166 (xA6) Xg 2370 181 (xB5) Xd 2371 68 (x44) Yh 2372 77 (x48) Yb 2373 8 (x08) largeur image/2 2374 5 (x05) H de l'image *** Décoration en Sg à D2 *** (Graph 0273, 0291) (Dimensions : 32x6) 2375 9 (x09) Xg 2376 40 (x28) Xd 2377 80 (x50) Yh 2378 85 (x55) Yb 2379 16 (x10) largeur image/2 2380 6 (x06) H de l'image *** Décoration en Sc à D2 *** (Graph 0274, 0292) (Dimensions : 32x6) 2381 96 (x60) Xg 2382 127 (x7F) Xd 2383 80 (x50) Yh 2384 85 (x55) Yb 2385 16 (x10) largeur image/2 2386 6 (x06) H de l'image *** Décoration en Sd à D2 *** (Graph 0273, 0291 avec effet "miroir") 2387 183 (xB7) Xg 2388 214 (xD6) Xd 2389 80 (x50) Yh 2390 85 (x55) Yb 2391 16 (x10) largeur image/2 2392 6 (x06) H de l'image *** Décoration en Sg à D1 *** (Graph 0275, 0293) (Dimensions : 16x12) 2393 0 (x00) Xg 2394 15 (x0F) Xd 2395 97 (x61) Yh 2396 108 (x6C) Yb 2397 8 (x08) largeur image/2 2398 12 (x0C) H de l'image *** Décoration en Sc à D1 *** (Graph 0276, 0294) (Dimensions : 32x12) 2399 96 (x60) Xg 2400 127 (x7F) Xd 2401 97 (x61) Yh 2402 108 (x6C) Yb 2403 16 (x10) largeur image/2 2404 12 (x0C) H de l'image *** Décoration en Sg à D1 *** (Graph 0275, 0293 avec effet "miroir") 2405 208 (xD0) Xg 2406 223 (xDF) Xd 2407 97 (x61) Yh 2408 108 (x6C) Yb 2409 8 (x08) largeur image/2 2410 12 (x0C) H de l'image
Dans cette partie sont définies les données utilisées pour afficher toutes les décorations murales, à toutes les distances possibles (de face comme de côté). Ceci concerne donc les graphs 0121 à 0240. Ces données sont réparties en 8 grands groupes. Les octets 3147 à 3206 indiquent pour chaque décoration murale lequel de ces 8 groupes il faut utiliser. On utilise les mêmes conventions que précédemment : ------------------- | | | | | Cg Cd | <-- Décorations murales à D3 (vues de côté) | | | | ---Fg----F-----Fd-- <-- Décorations murales à D3 (vues de face) | | | | | Cg Cd | <-- Décorations murales à D2 (vues de côté) | | | | ---Fg----F-----Fd-- <-- Décorations murales à D2 (vues de face) | | | | | Cg Cd | <-- Décorations murales à D1 (vues de côté) | | | | ---------F--------- <-- Décoration murale à D1 (vue de face) | | | J | <-- Position du Joueur | | ------- Vue du donjon : Xg Xd 0--------+--------+--------+-> X (en pixels) | ' ' | | ' ' | Yh-+- - - - ---------- | | | | <------------- image de la | | | | décoration murale Yb-+- - - - ---------- | | | | | | | | | | | +--------------------------+ | Y (en pixels)
** REMARQUE IMPORTANTE ** : pour une décoration située en Fg ou en Fd, à D2 ou à D3, l'image utilisée est en fait celle qui est définie pour la position en F, à D2 ou à D3. Ce sont en effet les données définies pour la position F qui fixent le redimensionnement effectué sur l'image! Il faut donc absolument veiller à ce que les données pour les positions Fg et Fd concordent avec les données pour la position F si l'on veut éviter de voir des grabouillages pas très beaux... (voir les petites erreurs à D3 pour la décoration "Librasulus dehors", à la fin du fichier!! ^^). De même, l'image d'une décoration en Cd est le "miroir" de l'image en Cg, donc il vaut mieux que les données concordent entre ces 2 positions...
Concerne les décorations murales de petite taille, placées en haut de mur et centrées (comme les serrures par exemple). Graphs : 0129-0130, 0131-0132, 0133-0134, 0135-0136, 0137-0138, 0139-0140, 0141-0142, 0147-0148, 0149-0150, 0151-0152, 0153-0154, 0155-0156, 0157-0158, 0159-0160, 0161-0162, 0163-0164, 0165-0166, 0167-0168, 0169-0170, 0171-0172, 0173-0174, 0175-0176, 0177-0178, 0179-0180, 0181-0182, 0183-0184, 0185-0186, 0209-0210, 0211-0212, 0215-0216, 0217-0218, 0219-0220, 0223-0224, 0225-0226, 0227-0228, 0229-0230 (et aussi, sans doute par erreur, 0231-0232) Dimensions : vue côté 16x19, vue face 32x28 (NB : largeur = multiple de 16) *** Décoration en Cg à D3 *** 2411 80 (x50) Xg 2412 83 (x53) Xd 2413 41 (x29) Yh 2414 45 (x2D) Yb 2415 8 (x08) (Xd+1)-Xg=4 => on prend 16/2=8 2416 5 (x05) H de l'image redimensionnée (NB: H=(Yb+1)-Yh) *** Décoration en Cd à D3 *** 2417 140 (x8C) Xg 2418 143 (x8F) Xd 2419 41 (x29) Yh 2420 45 (x2D) Yb 2421 8 (x08) doit concorder avec image en Cg, donc 8 2422 5 (x05) doit concorder avec image en Cg, donc 5 *** Décoration en Fg à D3 *** 2423 16 (x10) Xg 2424 29 (x1D) Xd 2425 39 (x27) Yh 2426 50 (x32) Yb 2427 8 (x08) doit concorder avec image en F, donc 8 2428 12 (x0C) doit concorder avec image en F, donc 12 *** Décoration en F à D3 *** 2429 107 (x6B) Xg 2430 120 (x78) Xd 2431 39 (x27) Yh 2432 50 (x32) Yb 2433 8 (x08) (Xd+1)-Xg=14 => on prend 16/2=8 2434 12 (x0C) H de l'image redimensionnée *** Décoration en Fd à D3 *** 2435 187 (xBB) Xg 2436 200 (xC8) Xd 2437 39 (x27) Yh 2438 50 (x32) Yb 2439 8 (x08) doit concorder avec image en F, donc 8 2440 12 (x0C) doit concorder avec image en F, donc 12 *** Décoration en Cg à D2 *** 2441 67 (x43) Xg 2442 77 (x4D) Xd 2443 40 (x28) Yh 2444 49 (x31) Yb 2445 8 (x08) (Xd+1)-Xg=11 => on prend 16/2=8 2446 10 (x0A) H de l'image redimensionnée *** Décoration en Cd à D2 *** 2447 146 (x92) Xg 2448 156 (x9C) Xd 2449 40 (x28) Yh 2450 49 (x31) Yb 2451 8 (x08) doit concorder avec image en Cg, donc 8 2452 10 (x0A) doit concorder avec image en Cg, donc 10 *** Décoration en Fg à D2 *** 2453 0 (x00) Xg 2454 17 (x11) Xd 2455 38 (x26) Yh 2456 55 (x37) Yb 2457 16 (x10) doit concorder avec image en F, donc 16 2458 18 (x12) doit concorder avec image en F, donc 18 *** Décoration en F à D2 *** 2459 102 (x66) Xg 2460 123 (x7B) Xd 2461 38 (x26) Yh 2462 55 (x37) Yb 2463 16 (x10) (Xd+1)-Xg=22 => on prend 32/2=16 2464 18 (x12) H de l'image redimensionnée *** Décoration en Fd à D2 *** 2465 206 (xCE) Xg 2466 223 (xDF) Xd 2467 38 (x26) Yh 2468 55 (x37) Yb 2469 16 (x10) doit concorder avec image en F, donc 16 2470 18 (x12) doit concorder avec image en F, donc 18 *** Décoration en Cg à D1 *** 2471 48 (x30) Xg 2472 63 (x3F) Xd 2473 38 (x26) Yh 2474 56 (x38) Yb 2475 8 (x08) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2476 19 (x13) H de l'image *** Décoration en Cd à D1 *** 2477 160 (xA0) Xg 2478 175 (xAF) Xd 2479 38 (x26) Yh 2480 56 (x38) Yb 2481 8 (x08) doit concorder avec image en Cg, donc 8 2482 19 (x13) doit concorder avec image en Cg, donc 19 *** Décoration en F à D1 *** 2483 96 (x60) Xg 2484 127 (x7F) Xd 2485 36 (x24) Yh 2486 63 (x3F) Yb 2487 16 (x10) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2488 28 (x1C) H de l'image
Concerne les décorations de taille moyenne, placées en milieu de mur et centrées (comme la fontaine par exemple) Graphs : 0121-0122, 0123-0124, 0125-0126, 0127-0128, 0191-0192, 0193-0194, 0195-0196, 0197-0198, 0199-0200, 0213-0214. Dimensions : vue côté 32x48, vue face 96x56 (NB : largeur = multiple de 16) *** Décoration en Cg à D3 *** 2489 74 (x4A) Xg 2490 82 (x52) Xd 2491 41 (x29) Yh 2492 60 (x3C) Yb 2493 8 (x08) (Xd+1)-Xg=9 => on prend 16/2=8 2494 20 (x14) H de l'image redimensionnée (NB: H=(Yb+1)-Yh) *** Décoration en Cd à D3 *** 2495 141 (x8D) Xg 2496 149 (x95) Xd 2497 41 (x29) Yh 2498 60 (x3C) Yb 2499 8 (x08) doit concorder avec image en Cg, donc 8 2500 20 (x14) doit concorder avec image en Cg, donc 20 *** Décoration en Fg à D3 *** 2501 1 (x01) Xg 2502 47 (x2F) Xd 2503 37 (x25) Yh 2504 63 (x3F) Yb 2505 24 (x18) doit concorder avec image en F, donc 24 2506 27 (x1B) doit concorder avec image en F, donc 27 *** Décoration en F à D3 *** 2507 88 (x58) Xg 2508 134 (x86) Xd 2509 37 (x25) Yh 2510 63 (x3F) Yb 2511 24 (x18) (Xd+1)-Xg=47 => on prend 48/2=24 2512 27 (x1B) H de l'image redimensionnée *** Décoration en Fd à D3 *** 2513 171 (xAB) Xg 2514 217 (xD9) Xd 2515 37 (x25) Yh 2516 63 (x3F) Yb 2517 24 (x18) doit concorder avec image en F, donc 24 2518 27 (x1B) doit concorder avec image en F, donc 27 *** Décoration en Cg à D2 *** 2519 61 (x3D) Xg 2520 76 (x4C) Xd 2521 38 (x26) Yh 2522 67 (x43) Yb 2523 8 (x08) (Xd+1)-Xg=16 => largeur/2=8 2524 30 (x1E) H de l'image redimensionnée *** Décoration en Cd à D2 *** 2525 147 (x93) Xg 2526 162 (xA2) Xd 2527 38 (x26) Yh 2528 67 (x43) Yb 2529 8 (x08) doit concorder avec image en Cg, donc 8 2530 30 (x1E) doit concorder avec image en Cg, donc 30 *** Décoration en Fg à D2 *** 2531 0 (x00) Xg 2532 43 (x2B) Xd 2533 37 (x25) Yh 2534 73 (x49) Yb 2535 32 (x20) doit concorder avec image en F, donc 32 2536 37 (x25) doit concorder avec image en F, donc 37 *** Décoration en F à D2 *** 2537 80 (x50) Xg 2538 143 (x8F) Xd 2539 37 (x25) Yh 2540 73 (x49) Yb 2541 32 (x20) (Xd+1)-Xg=64 => largeur/2=32 2542 37 (x25) H de l'image redimensionnée *** Décoration en Fd à D2 *** 2543 180 (xB4) Xg 2544 223 (xDF) Xd 2545 37 (x25) Yh 2546 73 (x49) Yb 2547 32 (x20) doit concorder avec image en F, donc 32 2548 37 (x25) doit concorder avec image en F, donc 37 *** Décoration en Cg à D1 *** 2549 32 (x20) Xg 2550 63 (x3F) Xd 2551 36 (x24) Yh 2552 83 (x53) Yb 2553 16 (x10) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2554 48 (x30) H de l'image *** Décoration en Cd à D1 *** 2555 160 (xA0) Xg 2556 191 (xBF) Xd 2557 36 (x24) Yh 2558 83 (x53) Yb 2559 16 (x10) doit concorder avec image en Cg, donc 16 2560 48 (x30) doit concorder avec image en Cg, donc 48 *** Décoration en F à D1 *** 2561 64 (x40) Xg 2562 159 (x9F) Xd 2563 36 (x24) Yh 2564 91 (x5B) Yb 2565 48 (x30) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2566 56 (x38) H de l'image
Concerne les décorations murales de petite taille, placées en bas de mur et centrées. Graphs : 0143-0144, 0187-0188, 0189-0190, 0221-0222 (NB: 0231-0232 devraient être dans ce groupe) Dimensions : vue côté 16x19, vue face 32x28 (NB : largeur = multiple de 16) *** Décoration en Cg à D3 *** 2567 80 (x50) Xg 2568 83 (x53) Xd 2569 66 (x42) Yh 2570 70 (x46) Yb 2571 8 (x08) (Xd+1)-Xg=4 => on prend 16/2=8 2572 5 (x05) H de l'image redimensionnée (NB: H=(Yb+1)-Yh) *** Décoration en Cd à D3 *** 2573 140 (x8C) Xg 2574 143 (x8F) Xd 2575 66 (x42) Yh 2576 70 (x46) Yb 2577 8 (x08) doit concorder avec image en Cg, donc 8 2578 5 (x05) doit concorder avec image en Cg, donc 5 *** Décoration en Fg à D3 *** 2579 16 (x10) Xg 2580 29 (x1D) Xd 2581 64 (x40) Yh 2582 75 (x4B) Yb 2583 8 (x08) doit concorder avec image en F, donc 8 2584 12 (x0C) doit concorder avec image en F, donc 12 *** Décoration en F à D3 *** 2585 106 (x6A) Xg 2586 119 (x77) Xd 2587 64 (x40) Yh 2588 45 (x4B) Yb 2589 8 (x08) (Xd+1)-Xg=14 => on prend 16/2=8 2590 12 (x0C) H de l'image redimensionnée *** Décoration en Fd à D3 *** 2591 187 (xBB) Xg 2592 200 (xC8) Xd 2593 64 (x40) Yh 2594 45 (x4B) Yb 2595 8 (x08) doit concorder avec image en F, donc 8 2596 12 (x0C) doit concorder avec image en F, donc 12 *** Décoration en Cg à D2 *** 2597 67 (x43) Xg 2598 77 (x4D) Xd 2599 74 (x4A) Yh 2600 83 (x53) Yb 2601 8 (x08) (Xd+1)-Xg=11 => on prend 16/2=8 2602 10 (x0A) H de l'image redimensionnée *** Décoration en Cd à D2 *** 2603 146 (x92) Xg 2604 156 (x9C) Xd 2605 74 (x4A) Yh 2606 83 (x53) Yb 2607 8 (x08) doit concorder avec image en Cg, donc 8 2608 10 (x0A) doit concorder avec image en Cg, donc 10 *** Décoration en Fg à D2 *** 2609 0 (x00) Xg 2610 17 (x11) Xd 2611 73 (x49) Yh 2612 90 (x5A) Yb 2613 16 (x10) doit concorder avec image en F, donc 16 2614 18 (x12) doit concorder avec image en F, donc 18 *** Décoration en F à D2 *** 2615 100 (x64) Xg 2616 121 (x79) Xd 2617 73 (x49) Yh 2618 90 (x5A) Yb 2619 16 (x10) (Xd+1)-Xg=22 => on prend 32/2=16 2620 18 (x12) H de l'image redimensionnée *** Décoration en Fd à D2 *** 2621 206 (xCE) Xg 2622 223 (xDF) Xd 2623 73 (x49) Yh 2624 90 (x5A) Yb 2625 16 (x10) doit concorder avec image en F, donc 16 2626 18 (x12) doit concorder avec image en F, donc 18 *** Décoration en Cg à D1 *** 2627 48 (x30) Xg 2628 63 (x3F) Xd 2629 84 (x54) Yh 2630 102 (x66) Yb 2631 8 (x08) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2632 19 (x13) H de l'image *** Décoration en Cd à D1 *** 2633 160 (xA0) Xg 2634 175 (xAF) Xd 2635 84 (x54) Yh 2636 102 (x66) Yb 2637 8 (x08) doit concorder avec image en Cg, donc 8 2638 19 (x13) doit concorder avec image en Cg, donc 19 *** Décoration en F à D1 *** 2639 96 (x60) Xg 2640 127 (x7F) Xd 2641 92 (x5C) Yh 2642 119 (x77) Yb 2643 16 (x10) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2644 28 (x1C) H de l'image
Concerne les décorations de petite taille, placées en milieu de mur et centrées (bouche d'égout) Graphs : 0145-0146. Dimensions : vue côté 16x19, vue face 32x28 (NB : largeur = multiple de 16) *** Décoration en Cg à D3 *** 2645 80 (x50) Xg 2646 83 (x53) Xd 2647 49 (x31) Yh 2648 53 (x35) Yb 2649 8 (x08) (Xd+1)-Xg=4 => on prend 16/2=8 2650 5 (x05) H de l'image redimensionnée *** Décoration en Cd à D3 *** 2651 140 (x8C) Xg 2652 143 (x8F) Xd 2653 49 (x31) Yh 2654 53 (x35) Yb 2655 8 (x08) doit concorder avec image en Cg, donc 8 2656 5 (x05) doit concorder avec image en Cg, donc 5 *** Décoration en Fg à D3 *** 2657 16 (x10) Xg 2658 29 (x1D) Xd 2659 50 (x32) Yh 2660 61 (x3D) Yb 2661 8 (x08) doit concorder avec image en F, donc 8 2662 12 (x0C) doit concorder avec image en F, donc 12 *** Décoration en F à D3 *** 2663 106 (x6A) Xg 2664 119 (x77) Xd 2665 50 (x32) Yh 2666 61 (x3D) Yb 2667 8 (x08) (Xd+1)-Xg=14 => on prend 16/2=8 2668 12 (x0C) H de l'image redimensionnée *** Décoration en Fd à D3 *** 2669 187 (xBB) Xg 2670 200 (xC8) Xd 2671 50 (x32) Yh 2672 61 (x3D) Yb 2673 8 (x08) doit concorder avec image en F, donc 8 2674 12 (x0C) doit concorder avec image en F, donc 12 *** Décoration en Cg à D2 *** 2675 67 (x43) Xg 2676 77 (x4D) Xd 2677 53 (x35) Yh 2678 62 (x3E) Yb 2679 8 (x08) (Xd+1)-Xg=11 => on prend 16/2=8 2680 10 (x0A) H de l'image redimensionnée *** Décoration en Cd à D2 *** 2681 146 (x92) Xg 2682 156 (x9C) Xd 2683 53 (x35) Yh 2684 62 (x3E) Yb 2685 8 (x08) doit concorder avec image en Cg, donc 8 2686 10 (x0A) doit concorder avec image en Cg, donc 10 *** Décoration en Fg à D2 *** 2687 0 (x00) Xg 2688 17 (x11) Xd 2689 55 (x37) Yh 2690 72 (x48) Yb 2691 16 (x10) doit concorder avec image en F, donc 16 2692 18 (x12) doit concorder avec image en F, donc 18 *** Décoration en F à D2 *** 2693 100 (x64) Xg 2694 121 (x79) Xd 2695 55 (x37) Yh 2696 72 (x48) Yb 2697 16 (x10) (Xd+1)-Xg=22 => on prend 32/2=16 2698 18 (x12) H de l'image redimensionnée *** Décoration en Fd à D2 *** 2699 206 (xCE) Xg 2700 223 (xDF) Xd 2701 55 (x37) Yh 2702 72 (x48) Yb 2703 16 (x10) doit concorder avec image en F, donc 16 2704 18 (x12) doit concorder avec image en F, donc 18 *** Décoration en Cg à D1 *** 2705 48 (x30) Xg 2706 63 (x3F) Xd 2707 57 (x39) Yh 2708 75 (x4B) Yb 2709 8 (x08) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2710 19 (x13) H de l'image *** Décoration en Cd à D1 *** 2711 160 (xA0) Xg 2712 175 (xAF) Xd 2713 57 (x39) Yh 2714 75 (x4B) Yb 2715 8 (x08) doit concorder avec image en Cg, donc 8 2716 19 (x13) doit concorder avec image en Cg, donc 19 *** Décoration en F à D1 *** 2717 96 (x60) Xg 2718 127 (x7F) Xd 2719 64 (x40) Yh 2720 91 (x5B) Yb 2721 16 (x10) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2722 28 (x1C) H de l'image
Concerne les décorations larges, placées en haut de mur et centrées (type "canons" à boules de feu) Graphs : 0201-0202, 0203-0204, 0205-0206. Dimensions : vue côté 32x12, vue face 96x12 (NB : largeur = multiple de 16) *** Décoration en Cg à D3 *** 2723 75 (x4B) Xg 2724 90 (x5A) Xd 2725 40 (x28) Yh 2726 44 (x2C) Yb 2727 8 (x08) (Xd+1)-Xg=16 => largeur/2=8 2728 5 (x05) H de l'image redimensionnée *** Décoration en Cd à D3 *** 2729 133 (x85) Xg 2730 148 (x94) Xd 2731 40 (x28) Yh 2732 44 (x2C) Yb 2733 8 (x08) doit concorder avec image en Cg, donc 8 2734 5 (x05) doit concorder avec image en Cg, donc 5 *** Décoration en Fg à D3 *** 2735 1 (x01) Xg 2736 48 (x30) Xd 2737 44 (x2C) Yh 2738 49 (x31) Yb 2739 24 (x18) doit concorder avec image en F, donc 24 2740 6 (x06) doit concorder avec image en F, donc 6 *** Décoration en F à D3 *** 2741 88 (x58) Xg 2742 135 (x87) Xd 2743 44 (x2C) Yh 2744 49 (x31) Yb 2745 24 (x18) (Xd+1)-Xg=48 => largeur/2=24 2746 6 (x06) H de l'image redimensionnée *** Décoration en Fd à D3 *** 2747 171 (xAB) Xg 2748 218 (xDA) Xd 2749 44 (x2C) Yh 2750 49 (x31) Yb 2751 24 (x18) doit concorder avec image en F, donc 24 2752 6 (x06) doit concorder avec image en F, donc 6 *** Décoration en Cg à D2 *** 2753 60 (x3C) Xg 2754 77 (x4D) Xd 2755 40 (x28) Yh 2756 46 (x2E) Yb 2757 16 (x10) (Xd+1)-Xg=18 => on prend 32/2=16 2758 7 (x07) H de l'image redimensionnée *** Décoration en Cd à D2 *** 2759 146 (x92) Xg 2760 163 (xA3) Xd 2761 40 (x28) Yh 2762 46 (x2E) Yb 2763 16 (x10) doit concorder avec image en Cg, donc 16 2764 7 (x07) doit concorder avec image en Cg, donc 7 *** Décoration en Fg à D2 *** 2765 0 (x00) Xg 2766 35 (x23) Xd 2767 43 (x2B) Yh 2768 50 (x32) Yb 2769 32 (x20) doit concorder avec image en F, donc 32 2770 8 (x08) doit concorder avec image en F, donc 8 *** Décoration en F à D2 *** 2771 80 (x50) Xg 2772 143 (x8F) Xd 2773 43 (x2B) Yh 2774 50 (x32) Yb 2775 32 (x20) (Xd+1)-Xg=64 => largeur/2=32 2776 8 (x08) H de l'image redimensionnée *** Décoration en Fd à D2 *** 2777 184 (xB8) Xg 2778 223 (xDF) Xd 2779 43 (x2B) Yh 2780 50 (x32) Yb 2781 32 (x20) doit concorder avec image en F, donc 32 2782 8 (x08) doit concorder avec image en F, donc 8 *** Décoration en Cg à D1 *** 2783 32 (x20) Xg 2784 63 (x3F) Xd 2785 41 (x29) Yh 2786 52 (x34) Yb 2787 16 (x10) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2788 12 (x0C) H de l'image *** Décoration en Cd à D1 *** 2789 160 (xA0) Xg 2790 191 (xBF) Xd 2791 41 (x29) Yh 2792 52 (x34) Yb 2793 16 (x10) doit concorder avec image en Cg, donc 16 2794 12 (x0C) doit concorder avec image en Cg, donc 12 *** Décoration en F à D1 *** 2795 64 (x40) Xg 2796 159 (x9F) Xd 2797 41 (x29) Yh 2798 52 (x34) Yb 2799 48 (x30) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2800 12 (x0C) H de l'image
Concerne les décorations de taille moyenne, placées en haut de mur et centrées (miroir champion) Graphs : 0207-0208 Dimensions : vue côté 16x35, vue face 64x43 (NB : largeur = multiple de 16) *** Décoration en Cg à D3 *** 2801 78 (x4E) Xg 2802 85 (x55) Xd 2803 36 (x24) Yh 2804 51 (x33) Yb 2805 8 (x08) (Xd+1)-Xg=8 => on prend 16/2=8 2806 16 (x10) H de l'image redimensionnée *** Décoration en Cd à D3 *** 2807 138 (x8A) Xg 2808 145 (x91) Xd 2809 36 (x24) Yh 2810 51 (x33) Yb 2811 8 (x08) doit concorder avec image en Cg, donc 8 2812 16 (x10) doit concorder avec image en Cg, donc 16 *** Décoration en Fg à D3 *** 2813 10 (x0A) Xg 2814 41 (x29) Xd 2815 34 (x22) Yh 2816 53 (x35) Yb 2817 16 (x10) doit concorder avec image en F, donc 16 2818 20 (x14) doit concorder avec image en F, donc 20 *** Décoration en F à D3 *** 2819 98 (x62) Xg 2820 129 (x81) Xd 2821 34 (x22) Yh 2822 53 (x35) Yb 2823 16 (x10) (Xd+1)-Xg=32 => largeur/2=16 2824 20 (x14) H de l'image redimensionnée *** Décoration en Fd à D3 *** 2825 179 (xB3) Xg 2826 210 (xD2) Xd 2827 34 (x22) Yh 2828 53 (x35) Yb 2829 16 (x10) doit concorder avec image en F, donc 16 2830 20 (x14) doit concorder avec image en F, donc 20 *** Décoration en Cg à D2 *** 2831 66 (x42) Xg 2832 75 (x4B) Xd 2833 34 (x22) Yh 2834 56 (x38) Yb 2835 8 (x08) (Xd+1)-Xg=10 => on prend 16/2=8 2836 23 (x17) H de l'image redimensionnée *** Décoration en Cd à D2 *** 2837 147 (x93) Xg 2838 157 (x9D) Xd 2839 34 (x22) Yh 2840 56 (x38) Yb 2841 8 (x08) doit concorder avec image en Cg, donc 8 2842 23 (x17) doit concorder avec image en Cg, donc 23 *** Décoration en Fg à D2 *** 2843 0 (x00) Xg 2844 26 (x1A) Xd 2845 33 (x21) Yh 2846 61 (x3D) Yb 2847 24 (x18) doit concorder avec image en F, donc 24 2848 29 (x1D) doit concorder avec image en F, donc 29 *** Décoration en F à D2 *** 2849 91 (x5B) Xg 2850 133 (x85) Xd 2851 33 (x21) Yh 2852 61 (x3D) Yb 2853 24 (x18) (Xd+1)-Xg=43 => on prend 48/2=24 2854 29 (x1D) H de l'image redimensionnée *** Décoration en Fd à D2 *** 2855 194 (xC2) Xg 2856 223 (xDF) Xd 2857 33 (x21) Yh 2858 61 (x3D) Yb 2859 24 (x18) doit concorder avec image en F, donc 24 2860 29 (x1D) doit concorder avec image en F, donc 29 *** Décoration en Cg à D1 *** 2861 41 (x29) Xg 2862 56 (x38) Xd 2863 31 (x1F) Yh 2864 65 (x41) Yb 2865 8 (x08) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2866 35 (x23) H de l'image *** Décoration en Cd à D1 *** 2867 167 (xA7) Xg 2868 182 (xB6) Xd 2869 31 (x1F) Yh 2870 65 (x41) Yb 2871 8 (x08) doit concorder avec image en Cg, donc 8 2872 35 (x23) doit concorder avec image en Cg, donc 35 *** Décoration en F à D1 *** 2873 80 (x50) Xg 2874 143 (x8F) Xd 2875 29 (x1D) Yh 2876 71 (x47) Yb 2877 32 (x20) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2878 43 (x2B) H de l'image
Concerne les grandes décorations, sur toute la hauteur du mur (joyau de puissance) Graphs : 0233-0234, 0235-0236, 0237-0238. Dimensions : vue côté 16x111, vue face 96x111 (NB : largeur = multiple de 16) *** Décoration en Cg à D3 *** 2879 75 (x4B) Xg 2880 82 (x52) Xd 2881 25 (x19) Yh 2882 75 (x4B) Yb 2883 8 (x08) (Xd+1)-Xg=8 => on prend 16/2=8 2884 51 (x33) H de l'image redimensionnée *** Décoration en Cd à D3 *** 2885 142 (x8E) Xg 2886 149 (x95) Xd 2887 25 (x19) Yh 2888 75 (x4B) Yb 2889 8 (x08) doit concorder avec image en Cg, donc 8 2890 51 (x33) doit concorder avec image en Cg, donc 51 *** Décoration en Fg à D3 *** 2891 12 (x0C) Xg 2892 60 (x3C) Xd 2893 25 (x19) Yh 2894 75 (x4B) Yb 2895 32 (x20) doit concorder avec image en F, donc 32 2896 51 (x33) doit concorder avec image en F, donc 51 *** Décoration en F à D3 *** 2897 88 (x58) Xg 2898 136 (x88) Xd 2899 25 (x19) Yh 2900 75 (x4B) Yb 2901 32 (x20) (Xd+1)-Xg=49 => on prend 64/2=32 2902 51 (x33) H de l'image redimensionnée *** Décoration en Fd à D3 *** 2903 163 (xA3) Xg 2904 211 (xD3) Xd 2905 25 (x19) Yh 2906 75 (x4B) Yb 2907 32 (x20) doit concorder avec image en F, donc 32 2908 51 (x33) doit concorder avec image en F, donc 51 *** Décoration en Cg à D2 *** 2909 64 (x40) Xg 2910 73 (x49) Xd 2911 20 (x14) Yh 2912 90 (x5A) Yb 2913 8 (x08) (Xd+1)-Xg=10 => on prend 16/2=8 2914 71 (x47) H de l'image redimensionnée *** Décoration en Cd à D2 *** 2915 150 (x96) Xg 2916 159 (x9F) Xd 2917 20 (x14) Yh 2918 90 (x5A) Yb 2919 8 (x08) doit concorder avec image en Cg, donc 8 2920 71 (x47) doit concorder avec image en Cg, donc 71 *** Décoration en Fg à D2 *** 2921 0 (x00) Xg 2922 38 (x26) Xd 2923 20 (x14) Yh 2924 90 (x5A) Yb 2925 32 (x20) doit concorder avec image en F, donc 32 2926 71 (x47) doit concorder avec image en F, donc 71 *** Décoration en F à D2 *** 2927 82 (x52) Xg 2928 142 (x8E) Xd 2929 20 (x14) Yh 2930 90 (x5A) Yb 2931 32 (x20) (Xd+1)-Xg=61 => on prend 64/2=32 2932 71 (x47) H de l'image redimensionnée *** Décoration en Fd à D2 *** 2933 184 (xB8) Xg 2934 223 (xDf) Xd 2935 20 (x14) Yh 2936 90 (x5A) Yb 2937 32 (x20) doit concorder avec image en F, donc 32 2938 71 (x47) doit concorder avec image en F, donc 71 *** Décoration en Cg à D1 *** 2939 41 (x29) Xg 2940 56 (x38) Xd 2941 9 (x09) Yh 2942 119 (x77) Yb 2943 8 (x08) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2944 111 (x6F) H de l'image *** Décoration en Cd à D1 *** 2945 169 (xA9) Xg 2946 184 (xB8) Xd 2947 9 (x09) Yh 2948 119 (x77) Yb 2949 8 (x08) doit concorder avec image en Cg, donc 8 2950 111 (x6F) doit concorder avec image en Cg, donc 111 *** Décoration en F à D1 *** 2951 64 (x40) Xg 2952 159 (x9F) Xd 2953 9 (x09) Yh 2954 119 (x77) Yb 2955 48 (x30) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 2956 111 (x6F) H de l'image
Concerne les très grandes décorations murales, couvrant tout un mur (Librasulus dehors) Graphs : 0239-0240. Dimensions : vue côté 32x111, vue face 160x111 (NB : largeur = multiple de 16) *** Décoration en Cg à D3 *** 2957 74 (x4A) Xg 2958 85 (x55) Xd 2959 25 (x19) Yh 2960 75 (x4B) Yb 2961 8 (x08) (Xd+1)-Xg=12 => on prend 16/2=8 2962 51 (x33) H de l'image redimensionnée *** Décoration en Cd à D3 *** 2963 137 (x89) Xg 2964 149 (x95) Xd 2965 25 (x19) Yh 2966 75 (x4B) Yb 2967 8 (x08) doit concorder avec image en Cg, donc 8 2968 51 (x33) doit concorder avec image en Cg, donc 51 - - - - *** Décoration en Fg à D3 *** - - - - 2969 0 (x00) Xg - - - - 2970 83 (x53) Xd => largeur=(Xd+1)-Xg=84 => du délire! Plus large qu'en F (!) - - - - => grabouillage en perspective :))) - - - - 2971 25 (x19) Yh - - - - 2972 75 (x4B) Yb - - - - 2973 48 (x30) doit concorder avec image en F, donc 48... hum... - - - - 2974 51 (x33) doit concorder avec image en F, donc 51 - - - - - - - - *** Décoration en F à D3 *** - - - - 2975 74 (x4A) Xg - - - - 2976 149 (x95) Xd - - - - 2977 25 (x19) Yh - - - - 2978 75 (x4B) Yb - - - - 2979 48 (x30) (Xd+1)-Xg=76 => on prend 80/2=40... ah non, tiens? :))) - - - - => Paul Stevens a raison (comme toujours ^^) - - - - 2980 51 (x33) H de l'image redimensionnée - - - - - - - - *** Décoration en Fd à D3 *** - - - - 2981 139 (x8B) Xg - - - - 2982 223 (xDF) Xd => largeur=(Xd+1)-Xg=85 => c'est la fête! - - - - => encore des grabouillages en perspective! :))) - - - - 2983 25 (x19) Yh - - - - 2984 75 (x4B) Yb - - - - 2985 48 (x30) doit concorder avec image en F, donc 48... - - - - 2986 51 (x33) doit concorder avec image en F, donc 51 ---------------------------------------------- *** Correction rapide du "ch'tit problème" *** ---------------------------------------------- Largeur mur à D3=76 pixels => largeur en F est donc ok! Largeur vue donjon=224 pixels. 224-76=148. 148/2=74 => largeur en Fg et Fd =74 pixels! Donc, utiliser les valeurs suivantes : *** Décoration en Fg à D3 *** 2969 0 (x00) Xg 2970 73 (x49) Xd=Xg+74-1=73 2971 25 (x19) Yh 2972 75 (x4B) Yb 2973 40 (x28) doit concorder avec image en F, donc 40 2974 51 (x33) doit concorder avec image en F, donc 51 *** Décoration en F à D3 *** 2975 74 (x4A) Xg 2976 149 (x95) Xd 2977 25 (x19) Yh 2978 75 (x4B) Yb 2979 40 (x28) (Xd+1)-Xg=76 => on prend 80/2=40 2980 51 (x33) H de l'image redimensionnée *** Décoration en Fd à D3 *** 2981 150 (x96) Xg=(Xd+1)-74=150 2982 223 (xDF) Xd 2983 25 (x19) Yh 2984 75 (x4B) Yb 2985 40 (x28) doit concorder avec image en F, donc 40 2986 51 (x33) doit concorder avec image en F, donc 51 *** Décoration en Cg à D2 *** 2987 60 (x3C) Xg 2988 77 (x4D) Xd 2989 20 (x14) Yh 2990 90 (x5A) Yb 2991 16 (x10) (Xd+1)-Xg=18 => on prend 32/2=16 2992 71 (x47) H de l'image redimensionnée *** Décoration en Cd à D2 *** 2993 146 (x92) Xg 2994 163 (xA3) Xd 2995 20 (x14) Yh 2996 90 (x5A) Yb 2997 16 (x10) doit concorder avec image en Cg, donc 16 2998 71 (x47) doit concorder avec image en Cg, donc 71 *** Décoration en Fg à D2 *** 2999 0 (x00) Xg 3000 74 (x4A) Xd 3001 20 (x14) Yh 3002 90 (x5A) Yb 3003 56 (x38) doit concorder avec image en F, donc 56 3004 71 (x47) doit concorder avec image en F, donc 71 *** Décoration en F à D2 *** 3005 60 (x3C) Xg 3006 163 (xA3) Xd 3007 20 (x14) Yh 3008 90 (x5A) Yb 3009 56 (x38) (Xd+1)-Xg=104 => on prend 112/2=56 3010 71 (x47) H de l'image (NB: H=(Yb+1)-Yh) *** Décoration en Fd à D2 *** 3011 149 (x95) Xg 3012 223 (xDF) Xd 3013 20 (x14) Yh 3014 90 (x5A) Yb 3015 56 (x38) doit concorder avec image en F, donc 56 3016 71 (x47) doit concorder avec image en F, donc 71 --------------------------------------------------- *** Remarque sur les valeurs pour Fg et Fd à D2 *** --------------------------------------------------- Largeur mur à D2=104 pixels (=> largeur en F ok) Largeur vue donjon=224 pixels. 224-104=120. 120/2=60 Donc (Xd+1)-Xg devrait nous donner 60 pour Fg et Fd... Or, on obtient 75! Ceci est en fait destiné à créer un léger effet de perspective, donnant l'impression que l'image de Librasulus n'est pas "plaquée" sur le mur! En effet, l'excédent de 15 pixels sera masqué par le mur en F! Le dessin suivant représente la vue du donjon. Le mur en F à D2 est un mur "nu", sans décoration. La partie hachurée / / / représente la partie visible de la décoration murale "Librasulus dehors" en Fg, à D2. La partie hachurée \\\ représente l'excédent de 15 pixels de cette décoration qui est masquée par le mur en F. ----------------------------------------- | | | | | | +--------+-+-------------------+--------+ |/ / / / |\| | | | / / / /|\| | | |/ / / / |\| | | | / / / /|\| | | |/ / / / |\| | | | / / / /|\| | | |/ / / / |\| | | +--------+-+-------------------+--------+ | | | | | | ----------------------------------------- Remarque : les petites erreurs constatées pour les données en Fg, F, et Fd à D3 sont sans aucun doute dûes à une tentative de reproduire ce léger effet de perspective à la distance 3! Seulement cela ne pouvait pas marcher puisque l'excédent de 10 pixels choisi rendait les images en Fg et Fd plus larges que l'image en F! :))) ** REMARQUE ** : si l'on souhaite remplacer "Librasulus dehors" par une décoration murale personnalisée de mêmes dimensions, mais qui ne soit pas partiellement masquée en Fg ou en Fd à D2, il faut supprimer l'excédent de 15 pixels! Pour cela, il suffit de donner aux octets 3000 et 3011 les valeurs suivantes : 3000 59 (x3B) 3011 164 (xA4) *** Décoration en Cg à D1 *** 3017 32 (x20) Xg 3018 63 (x3F) Xd 3019 9 (x09) Yh 3020 119 (x77) Yb 3021 16 (x10) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 3022 111 (x6F) H de l'image *** Décoration en Cd à D1 *** 3023 160 (xA0) Xg 3024 191 (xBF) Xd 3025 9 (x09) Yh 3026 119 (x77) Yb 3027 16 (x10) doit concorder avec image en Cg, donc 16 3028 111 (x6F) doit concorder avec image en Cg, donc 111 *** Décoration en F à D1 *** 3029 32 (x20) Xg 3030 191 (xBF) Xd 3031 9 (x09) Yh 3032 119 (x77) Yb 3033 80 (x50) largeur de l'image/2 (NB largeur de l'image = multiple de 16) 3034 111 (x6F) H de l'image
Cette partie concerne l'affichage des textes "illisibles" sur les murs, donc les graphs 0121 pour la vue de côté à D1, D2 ou D3, et 0122 pour la vue de face à D2 ou D3. En effet, en fonction du nombre de lignes que comporte le texte réel, sa représentation (graph 0121 ou 0122) sera "coupée" plus ou moins haut, de sorte que l'on verra autant de lignes de texte "illisible" qu'il y en a dans le texte réel. Si le texte réel comporte 4 lignes, alors le graph 0121 ou 0122 est affiché en entier. Vue du donjon (sur cet exemple, on considère que le texte réel comporte 2 lignes et que l'on doit donc voir 2 lignes de texte illisible, à D2 ou D3) : 0-------------------------------+-> X (en pixels) | | | | | --------------- | | | BABCDE GH | <------------- Partie visible de l'image | | O IJKLMNO | | du texte "illisible" Yc-+- - - - +-------------+ | | ' ' | | ' ' <------------- Partie "coupée" de l'image du texte | '.............' | "illisible", qui n'est donc pas affichée. | | | | | | +-------------------------------+ | Y (en pixels) Yc : ordonnée de "coupe" de l'image du texte illisible dans la vue du donjon *** Texte à D3, vu de côté (Graph 0121) *** 3035 45 (x2D) Yc=45 pixels si le texte réel tient sur 1 ligne 3036 48 (x30) Yc=48 pixels si le texte réel comporte 2 lignes 3037 53 (x35) Yc=53 pixels si le texte réel comporte 3 lignes *** Texte à D3, vu de face (Graph 0122) *** 3038 43 (x2B) Yc=43 pixels si le texte réel tient sur 1 ligne 3039 49 (x31) Yc=49 pixels si le texte réel comporte 2 lignes 3040 56 (x38) Yc=56 pixels si le texte réel comporte 3 lignes *** Texte à D2, vu de côté (Graph 0121) *** 3041 42 (x2A) Yc=42 pixels si le texte réel tient sur 1 ligne 3042 49 (x31) Yc=49 pixels si le texte réel comporte 2 lignes 3043 56 (x38) Yc=56 pixels si le texte réel comporte 3 lignes *** Texte à D2, vu de face (Graph 0122) *** 3044 46 (x2E) Yc=46 pixels si le texte réel tient sur 1 ligne 3045 53 (x35) Yc=53 pixels si le texte réel comporte 2 lignes 3046 63 (x3F) Yc=63 pixels si le texte réel comporte 3 lignes *** Texte à D1, vu de côté (Graph 0121) *** 3047 46 (x2E) Yc=46 pixels si le texte réel tient sur 1 ligne 3048 57 (x39) Yc=57 pixels si le texte réel comporte 2 lignes 3049 68 (x44) Yc=68 pixels si le texte réel comporte 3 lignes 3050 0 (x00) ???
Cette partie donne simplement les ordonnées auxquelles doivent être affichées les lignes d'un texte mural (vu de face à D1). 3051 48 (x30) la 1ère ligne du texte mural sera écrite en Y=48 pixels 3052 59 (x3B) la 2ème ligne du texte mural sera écrite en Y=59 pixels 3053 75 (x4B) la 3ème ligne du texte mural sera écrite en Y=75 pixels 3054 86 (x56) la 4ème ligne du texte mural sera écrite en Y=86 pixels
Cette partie donne juste les coordonnées auxquelles un tout petit bout de mur (provenant du graph 0086) doit être affiché pour masquer la jointure entre 2 briques au milieu d'un texte mural! :)) 3055 110 (x6E) Xg 3056 113 (x71) Xd 3057 37 (x25) Yh 3058 62 (x3E) Yb
Cette partie indique les changements de couleurs qu'il faut effectuer pour afficher les décorations de porte à D2 ou à D3, par rapport aux couleurs utilisées à D1. Les octets viennent par groupes de 16 et chaque octet représente une couleur, dans l'ordre 0, 1, 2... La valeur d'un octet donne simplement l'indice de la couleur qui doit remplacer la couleur qu'il représente. Remarque : la couleur 9 (orange) est utilisée comme couleur de transparence pour la décoration de porte (=> on voit la porte au travers de la décoration), et la couleur 10 (rose) est utilisée comme couleur de transparence pour l'ensemble "décoration+porte" (=> on voit au travers de la porte). Ces deux couleurs sont donc invariables en ce qui concerne les décorations de porte. Pour obtenir les bons indices de couleurs, on divise la valeur des octets par 10. *** Pour une décoration de porte à D2 *** 3059 0 (x00) la couleur 0 (noir) ne change pas 3060 10 (x0A) la couleur 1 (gris 2) ne change pas 3061 20 (x14) la couleur 2 (gris 1) ne change pas 3062 30 (x1E) la couleur 3 (brun foncé) ne change pas 3063 40 (x28) la couleur 4 (cyan) ne change pas 3064 30 (x1E) la couleur 5 (brun) est remplacée par la couleur 3 (brun foncé) 3065 60 (x3C) la couleur 6 (vert foncé) ne change pas 3066 70 (x46) la couleur 7 (vert) ne change pas 3067 50 (x32) la couleur 8 (rouge) est remplacée par la couleur 5 (brun) 3068 90 (x5A) la couleur 9 (orange) ne change pas 3069 100 (x64) la couleur 10 (rose) ne change pas 3070 110 (x6E) la couleur 11 (jaune) ne change pas 3071 120 (x78) la couleur 12 (gris foncé) ne change pas 3072 130 (x82) la couleur 13 (gris clair) ne change pas 3073 140 (x8C) la couleur 14 (bleu) ne change pas 3074 150 (x96) la couleur 15 (blanc) ne change pas *** Pour une décoration de porte à D3 *** 3075 0 (x00) la couleur 0 (noir) ne change pas 3076 120 (x78) la couleur 1 (gris 2) est remplacée par la couleur 12 (gris foncé) 3077 10 (x0A) la couleur 2 (gris 1) est remplacée par la couleur 1 (gris 2) 3078 30 (x1E) la couleur 3 (brun foncé) ne change pas 3079 40 (x28) la couleur 4 (cyan) ne change pas 3080 30 (x1E) la couleur 5 (brun) est remplacée par la couleur 3 (brun foncé) 3081 0 (x00) la couleur 6 (vert foncé) est remplacée par la couleur 0 (noir) 3082 60 (x3C) la couleur 7 (vert) est remplacée par la couleur 6 (vert foncé) 3083 30 (x1E) la couleur 8 (rouge) est remplacée par la couleur 3 (brun foncé) 3084 90 (x5A) la couleur 9 (orange) ne change pas 3085 100 (x64) la couleur 10 (rose) ne change pas 3086 110 (x6E) la couleur 11 (jaune) ne change pas 3087 0 (x00) la couleur 12 (gris foncé) est remplacée par la couleur 0 (noir) 3088 20 (x14) la couleur 13 (gris clair) est remplacée par la couleur 2 (gris 1) 3089 0 (x00) la couleur 14 (bleu) est remplacée par la couleur 0 (noir) 3090 130 (x82) la couleur 15 (blanc) est remplacée par la couleur 13 (gris clair)
Cette partie indique les changements de couleurs qu'il faut effectuer pour afficher les décorations murales à D2 ou à D3, par rapport aux couleurs utilisées à D1. Le fonctionnement est le même que précédemment. Remarque : la couleur 9 (orange) peut être utilisée pour les décorations murales. Cependant, il faut faire attention au fait qu'elle peut varier dans la vue du donjon en fonction des créatures présentes dans le niveau! (pour cette même raison, la couleur 9 n'est jamais utilisée dans les images des objets, parce que le joueur peut emporter un objet dans n'importe quel niveau et le poser au sol... remarque c'est pratique si on veut faire une sorte "d'identificateur" de créatures : je pose mon truc par terre, il est violet. Tiens? Il y a des vers géants dans ce niveau! :))). La couleur 10 (rose) est utilisée comme couleur de transparence pour les décoration murales (=> on voit le mur au travers de la décoration). Cette couleur est donc invariable pour les décorations murales. *** Pour une décoration murale à D2 *** 3091 0 (x00) la couleur 0 (noir) ne change pas 3092 120 (x78) la couleur 1 (gris 2) est remplacée par la couleur 12 (gris foncé) 3093 10 (x0A) la couleur 2 (gris 1) est remplacée par la couleur 1 (gris 2) 3094 30 (x1E) la couleur 3 (brun foncé) ne change pas 3095 40 (x28) la couleur 4 (cyan) ne change pas 3096 30 (x1E) la couleur 5 (brun) est remplacée par la couleur 3 (brun foncé) 3097 60 (x3C) la couleur 6 (vert foncé) ne change pas 3098 70 (x46) la couleur 7 (vert) ne change pas 3099 50 (x32) la couleur 8 (rouge) est remplacée par la couleur 5 (brun) 3100 90 (x5A) la couleur 9 (orange) ne change pas 3101 100 (x64) la couleur 10 (rose) ne change pas 3102 110 (x6E) la couleur 11 (jaune) ne change pas 3103 0 (x00) la couleur 12 (gris foncé) est remplacée par la couleur 0 (noir) 3104 20 (x14) la couleur 13 (gris clair) est remplacée par la couleur 2 (gris 1) 3105 140 (x8C) la couleur 14 (bleu) ne change pas 3106 130 (x82) la couleur 15 (blanc) est remplacée par la couleur 13 (gris clair) *** Pour une décoration murale à D3 *** 3107 0 (x00) la couleur 0 (noir) ne change pas 3108 0 (x00) la couleur 1 (gris 2) est remplacée par la couleur 0 (noir) 3109 120 (x78) la couleur 2 (gris 1) est remplacée par la couleur 12 (gris foncé) 3110 30 (x1E) la couleur 3 (brun foncé) ne change pas 3111 40 (x28) la couleur 4 (cyan) ne change pas 3112 30 (x1E) la couleur 5 (brun) est remplacée par la couleur 3 (brun foncé) 3113 0 (x00) la couleur 6 (vert foncé) est remplacée par la couleur 0 (noir) 3114 60 (x3C) la couleur 7 (vert) est remplacée par la couleur 6 (vert foncé) 3115 30 (x1E) la couleur 8 (rouge) est remplacée par la couleur 3 (brun foncé) 3116 90 (x5A) la couleur 9 (orange) ne change pas 3117 100 (x64) la couleur 10 (rose) ne change pas 3118 110 (x6E) la couleur 11 (jaune) ne change pas 3119 0 (x00) la couleur 12 (gris foncé) est remplacée par la couleur 0 (noir) 3120 10 (x0A) la couleur 13 (gris clair) est remplacée par la couleur 1 (gris 2) 3121 0 (x00) la couleur 14 (bleu) est remplacée par la couleur 0 (noir) 3122 20 (x14) la couleur 15 (blanc) est remplacée par la couleur 2 (gris 1)
Si l'on considère les parties qui suivent celle-ci, on pourrait penser que l'octet 3123 sert à indiquer quel groupe de coordonnées il faut utiliser pour afficher le bouton de porte... (peut-être était-il prévu à l'origine qu'il y ait plusieurs types de boutons de porte différents!) 3123 0 (x00) => si la valeur est modifiée, cela affecte le bouton de porte... 3124 0 (x00) ??? (peut-être prévu à l'origine pour un autre graph de bouton de porte (?)...)
Four coordinates sets to display door decorations are defined at offset 0868h.
This section contains one byte for each of the 12 door decorations to define which coordinates set to use.
Graphic item #303 uses coordinates set 0 (Square Grid)
Graphic item #304 uses coordinates set 1 (Iron Bars)
Graphic item #305 uses coordinates set 1 (Jewels)
Graphic item #306 uses coordinates set 1 (Wooden Bars)
Graphic item #307 uses coordinates set 0 (Arched Grid)
Graphic item #308 uses coordinates set 2 (Block Lock)
Graphic item #309 uses coordinates set 3 (Corner Lock)
Graphic item #310 uses coordinates set 1 (Black door)
Graphic item #311 uses coordinates set 2 (Red Triangle Lock)
Graphic item #312 uses coordinates set 2 (Triangle Lock)
Graphic item #313 uses coordinates set 1 (Ra Door Energy)
Graphic item #314 uses coordinates set 1 (Iron Door Damages)
Three coordinates sets to display floor decorations are defined at offset 08C8h.
This section contains one byte for each of the 9 floor decorations to define which coordinates set to use.
The 10th byte in this section is 00h. Probably padding for word alignment in memory.
Note: Footprints (Graphic items #241-246) are a special case of floor decoration manage separately. It is the only floor decoration using coordinates set 1 but it is not declared here.
Graphic items #247-252 use coordinates set 0 (Square Grate)
Graphic items #253-258 use coordinates set 0 (Square Pressure Pad)
Graphic items #259-264 use coordinates set 0 (Moss)
Graphic items #265-270 use coordinates set 0 (Round Grate)
Graphic items #271-276 use coordinates set 2 (Round Pressure Plate)
Graphic items #277-282 use coordinates set 0 (Black Flame Pit)
Graphic items #283-288 use coordinates set 0 (Crack)
Graphic items #289-294 use coordinates set 2 (Tiny Pressure Pad)
Graphic items #295-300 use coordinates set 0 (Puddle)
Seven coordinates sets to display wall decorations are defined at offset 096Ah.
This section contains one byte for each of the 60 wall decorations to define which coordinates set to use.
Graphic items #0121-0122 use coordinates set 1 (Unreadable Wall Inscription)
Graphic items #0123-0124 use coordinates set 1 (Square Alcove)
Graphic items #0125-0126 use coordinates set 1 (Vi Altar)
Graphic items #0127-0128 use coordinates set 1 (Arched Alcove)
Graphic items #0129-0130 use coordinates set 0 (Hook)
Graphic items #0131-0132 use coordinates set 0 (Iron Lock)
Graphic items #0133-0134 use coordinates set 0 (Wood Ring)
Graphic items #0135-0136 use coordinates set 0 (Small Switch)
Graphic items #0137-0138 use coordinates set 0 (Dent 1)
Graphic items #0139-0140 use coordinates set 0 (Dent 2)
Graphic items #0141-0142 use coordinates set 0 (Iron Ring)
Graphic items #0143-0144 use coordinates set 2 (Crack)
Graphic items #0145-0146 use coordinates set 3 (Slime Outlet)
Graphic items #0147-0148 use coordinates set 0 (Dent 3)
Graphic items #0149-0150 use coordinates set 0 (Tiny Switch)
Graphic items #0151-0152 use coordinates set 0 (Green Switch Out)
Graphic items #0153-0154 use coordinates set 0 (Blue Switch Out)
Graphic items #0155-0156 use coordinates set 0 (Coin Slot)
Graphic items #0157-0158 use coordinates set 0 (Double Iron Lock)
Graphic items #0159-0160 use coordinates set 0 (Square Lock)
Graphic items #0161-0162 use coordinates set 0 (Winged Lock)
Graphic items #0163-0164 use coordinates set 0 (Onyx Lock)
Graphic items #0165-0166 use coordinates set 0 (Stone Lock)
Graphic items #0167-0168 use coordinates set 0 (Cross Lock)
Graphic items #0169-0170 use coordinates set 0 (Topaz Lock)
Graphic items #0171-0172 use coordinates set 0 (Skeleton Lock)
Graphic items #0173-0174 use coordinates set 0 (Gold Lock)
Graphic items #0175-0176 use coordinates set 0 (Tourquoise Lock)
Graphic items #0177-0178 use coordinates set 0 (Emerald Lock)
Graphic items #0179-0180 use coordinates set 0 (Ruby Lock)
Graphic items #0181-0182 use coordinates set 0 (Ra Lock)
Graphic items #0183-0184 use coordinates set 0 (Master Lock)
Graphic items #0185-0186 use coordinates set 0 (Gem Hole)
Graphic items #0187-0188 use coordinates set 2 (Slime)
Graphic items #0189-0190 use coordinates set 2 (Grate)
Graphic items #0191-0192 use coordinates set 1 (Fountain)
Graphic items #0193-0194 use coordinates set 1 (Manacles)
Graphic items #0195-0196 use coordinates set 1 (Ghoul's Head)
Graphic items #0197-0198 use coordinates set 1 (Empty Torch Holder)
Graphic items #0199-0200 use coordinates set 1 (Scratches)
Graphic items #0201-0202 use coordinates set 4 (Poison Holes)
Graphic items #0203-0204 use coordinates set 4 (Fireball Holes)
Graphic items #0205-0206 use coordinates set 4 (Dagger Holes)
Graphic items #0207-0208 use coordinates set 5 (Champion Mirror)
Graphic items #0209-0210 use coordinates set 0 (Lever Up)
Graphic items #0211-0212 use coordinates set 0 (Lever Down)
Graphic items #0213-0214 use coordinates set 1 (Full Torch Holder)
Graphic items #0215-0216 use coordinates set 0 (Red Switch Out)
Graphic items #0217-0218 use coordinates set 0 (Eye Switch)
Graphic items #0219-0220 use coordinates set 0 (Big Switch Out)
Graphic items #0221-0222 use coordinates set 2 (Crack Switch Out)
Graphic items #0223-0224 use coordinates set 0 (Green Switch In)
Graphic items #0225-0226 use coordinates set 0 (Blue Switch In)
Graphic items #0227-0228 use coordinates set 0 (Red Switch In)
Graphic items #0229-0230 use coordinates set 0 (Big Switch In)
Graphic items #0231-0232 use coordinates set 2 (Crack Switch In). Note: In Dungeon Master for Atari ST version 1.0 English (1987-12-08), the value was set to 0. The effect was that pressing the switch moved it up the wall. This bug was fixed in later versions.
Graphic items #0233-0234 use coordinates set 6 (Amalgam (Encased Gem))
Graphic items #0235-0236 use coordinates set 6 (Amalgam (Free Gem))
Graphic items #0237-0238 use coordinates set 6 (Amalgam (Without Gem))
Graphic items #0239-0240 use coordinates set 7 (Lord Order (Outside))
i16 Word4040[1]; // graphic number of 'water' giving wall decoration
i8 Byte4038[3]; // ... These are wall graphics that define
// alcoves. The numbers here are 1, 2, and 3
// in CSB. Square Alcove, VI Altar, Ornate Alcove.
A 4th byte (00h) is used as padding for memory alignment
i8 Byte4034[9]; // some sort of floor decoration offset for which graphic to display
A 10th byte (00h) is used as padding for memory alignment
i8 Byte4024[12]; // 12 bytes. one byte for each 'distance' from player.
defines the groups for Byte4213.
group = byte4024[distanceFromPlayer] * ;
Then use Byte4213[group] as the base for cutoff.
For i = 1 To 12
illegibletextgroups(i) = read_byte()
Next
word4012 = read_int()
i16 Word4012; // unused, set to 3217 during runtime.
There is one descriptor for each visible tile in the dungeon view
8 Byte4010[8]; [0] teleporter F3
i8 Byte4002[8]; [1] teleporter F3L1
i8 Byte3994[8]; [2] teleporter F3R1 //Bad????
i8 Byte3986[8]; [3] teleporter F2
i8 Byte3978[8]; [4] teleporter F2L1
i8 Byte3970[8]; [5] teleporter F2R1
i8 Byte3962[8]; [6] teleporter F1
i8 Byte3954[8]; [7] teleporter F1L1
i8 Byte3946[8]; [8] teleporter F1R1
i8 Byte3938[8]; [9] teleporter F0
i8 Byte3930[8]; [10]teleporter F0L1
i8 Byte3922[8]; [11]teleporter F0R1
Each descriptor is 8 bytes large:
Byte 0: 73 + byte 0 = Teleporter graphic index. This value is always 0 in the data as there is only one teleporter graphic in the graphics.dat. However when drawing Fluxcages, the game makes a temporary copy of the teleporter graphic descriptor and increases this byte value by 1 in order to use the Fluxcage graphic.
Byte 1: Byte 1 + Random value 0..1 = some offset, maybe where to 'lock' the graphic
Byte 2 = Index of transparent color
Byte 3: If byte 3 = 255 then no mask is used to draw the teleporter else Byte 3 & 0x7F + 69 = Graphic index for mask to draw the teleporter graphics; Byte 3 & 0x80: Flip graphic horizontally if 1.
Byte 4: Width of the teleporter mask
Byte 5: Height of the teleporter mask
Byte 6: Src offset x
Byte 7: Src offset y
door graphic information
i8 Byte3914[80]; // door stuff. 10 groups of 8 D1R
group 0 = opens sideways
group 1 = opens up/down
group 2-5 = 'graphics' as door is opening?
group 6-10 = 'graphics' as door is opening sideways?
i8 Byte3834[80]; // D1, 'tested' to see if canseethroughwalls
i8 Byte3754[80]; // D1L
i8 Byte3674[80]; // D2R
i8 Byte3594[80]; // D2
i8 Byte3514[80]; // D2L
i8 Byte3434[80]; // D3R
i8 Byte3354[80]; // D3
i8 Byte3274[80]; // D3L
For i = 1 To 90
graphicrects(i).x1 = read_byte()
graphicrects(i).x2 = read_byte()
graphicrects(i).y1 = read_byte()
graphicrects(i).y2 = read_byte()
graphicrects(i).width = read_byte()
graphicrects(i).height = read_byte()
graphicrects(i).srcx = read_byte()
graphicrects(i).srcy = read_byte()
Next
For i = 1 To 81
graphicrects(i).x1 = read_byte()
graphicrects(i).x2 = read_byte()
graphicrects(i).y1 = read_byte()
graphicrects(i).y2 = read_byte()
graphicrects(i).width = read_byte()
graphicrects(i).height = read_byte()
graphicrects(i).srcx = read_byte()
graphicrects(i).srcy = read_byte()
Next
Wall graphic information: These are 8 byte rect positions, but the positions are in bytes, not words. Thus the structure is of { byte x1, y1, x2, y2, width, height, offsetx, offsety } bitmap[0] = Door Left or Right Frame (Front 1),, bitmap[1] = Door Left Frame (Front 1),, bitmap[2] = Door Left Frame (Front 2),, bitmap[3] = Door Left Frame (Front 3),, bitmap[4] = Door Left Frame (Left Side 3),, bitmap[5] = Door Top Frame (Front 1),, bitmap[6] = Door Top Frame (Front 2),, bitmap[7] = Wall (Right Side 0),, bitmap[8] = Wall (Left Side 0),, bitmap[9] = Wall (Front and Sides 1),, bitmap[10] = Wall (Front and Sides 2),, bitmap[11] = Wall (Front and Sides 3),, bitmap[12] = Wall (Far Left Side 3),, i8 Byte3194[8]; // RectPos ... D1R bitmap[5] i8 Byte3186[8]; // RectPos ... D1 bitmap[5] i8 Byte3178[8]; // RectPos ... D1L bitmap[5] i8 Byte3170[8]; // RectPos ... D2R bitmap[6] i8 Byte3162[8]; // RectPos ... D2 bitmap[6] i8 Byte3154[8]; // RectPos ... D2L bitmap[6] i8 Byte3146[8]; // RectPos ... D0 bitmap[0] if can' see through walls otherwise its d0 bitmap[0] with offsetx - uByte2534[0] i8 Byte3138[4]; // RectPos ... D0 for Pointer2142 = bitmap[1] mirrored i8 Byte3134; // ... part of the rect... i8 Byte3133; // ... part of the rect... i8 Byte3132[2]; // ... part of the rect... i8 Byte3130[8]; // RectPos ... D1 bitmap[1] i8 Byte3122[8]; // ... D2 for Pointer1848 = ????? i8 Byte3114[8]; // RectPos ... D2 bitmap[2] i8 Byte3106[8]; // ... D3 for Pointer1848 = ????? i8 Byte3098[8]; // RectPos ... D3 bitmap[3] i8 Byte3090[8]; // ... D3R for Pointer1848 = ????? i8 Byte3082[8]; // RectPos ... D3L bitmap[4] i8 Byte3074[8]; // RectPos ... D3 bitmap[11] ** AND ALOT OF OTHER STUFF ** i8 Byte3066[8]; // RectPos ... D3L bitmap[11] and teleporter? i8 Byte3058[8]; // RectPos ... D3R bitmap[11] and teleporter? i8 Byte3050[8]; // RectPos ... D2 bitmap[10] ** and alot of other stuff ** i8 Byte3042[8]; // RectPos ... D2L bitmap[10] and teleporter? i8 Byte3034[8]; // RectPos ... D2R bitmap[10] and teleporter? ui8 uByte3026[8]; // RectPos ...D1 bitmap[9] and teleporter i8 Byte3018[8]; // RectPos ... D1L bitmap[9] and teleporter? i8 Byte3010[8]; // RectPos ... D1R bitmap[9] and teleporter? i8 Byte3002[8]; // ... D0 teleporter ui8 uByte2994[8]; // RectPos ... D0L bitmap[8] and teleporter? i8 Byte2986[8]; // RectPos ...D0R bitmap[7] and teleporter? i8 Byte2978[8]; // RectPos ... D?? mirriored bitmap[12] i8 Byte2970[8]; // RectPos ... D?? bitmap[12] i8 Byte2962[4]; // byte RectPos ... D?? mirrored bitmap[10] i8 Byte2958[4]; // byte Rectpos ... D?? mirrored bitmap[11] i8 Byte2954[8]; //byte RectPos ... D0R ceiling pit i8 Byte2946[8]; //byte RectPos ... D0 ceiling pit i8 Byte2938[8]; //byte RectPos ... D0L ceiling pit i8 Byte2930[8]; //byte RectPos ... D1R ceilign pit i8 Byte2922[8]; //byte RectPos ... D1 ceiling pit i8 Byte2914[8]; //byte RectPos ... D1L ceiling pit i8 Byte2906[8]; //byte RectPos ... D2R ceiling pit i8 Byte2898[8]; //byte RectPos ... D2 ceiling pit i8 Byte2890[8]; //byte Rectpos ... D2L ceiling pit i8 Byte2882[8]; //RectPos (byte) ... D0R floor pit i8 Byte2874[8]; //RectPos (byte) ... D0 floor pit i8 Byte2866[8]; //RectPos (byte) ... D0L floor pit i8 Byte2858[8]; //RectPos (byte) ... D1R floor pit i8 Byte2850[8]; //RectPos (byte) ... D1 floor pit i8 Byte2842[8]; //RectPos (byte) ... D1L floor pit i8 Byte2834[8]; //RectPos (byte) ... D2R floor pit i8 Byte2826[8]; //RectPos (byte) ... D2 floor pit i8 Byte2818[8]; //RectPos (byte) ... D2L floor pit i8 Byte2810[8]; //RectPos (byte) ... D3R floor pit i8 Byte2802[8]; //RectPos (byte) ... D3 floor pit i8 Byte2794[8]; //RectPos (byte) ... D3L floor pit i8 Byte2786[8]; //RectPos (byte) ... D0R stairs (these are left-right facing?) i8 Byte2778[8]; //RectPos (byte) ... D0L stairs i8 Byte2770[8]; //RectPos (byte) ... D1R stairs i8 Byte2762[8]; //RectPos (byte) ... DlL stairs (depends on facing) i8 Byte2754[8]; //RectPos (byte) ... D1R stairs (depends on facing) i8 Byte2746[8]; //RectPos (byte) ... D1L stairs (depends on facing) i8 Byte2738[8]; //RectPos (byte) ... D2R stairs i8 Byte2730[8]; //RectPos (byte) ... D2L stairs i8 Byte2722[8]; //RectPos (byte) ... D0 stairs (for front facing?) i8 Byte2714[8]; //RectPos (byte) ... D0 stairs i8 Byte2706[8]; //RectPos (byte) ... D1R stairs i8 Byte2698[8]; //RectPos (byte) ... D1 Stairs i8 Byte2690[8]; //RectPos (byte) ... D1L stairs i8 Byte2682[8]; //RectPos (byte) ... D2R stairs i8 Byte2674[8]; //RectPos (byte) ... D2 stairs i8 Byte2666[8]; //RectPos (byte) ... D2L stairs i8 Byte2658[8]; //RectPos (byte) ... D3R stairs i8 Byte2650[8]; //RectPos (byte) ... D3 stairs i8 Byte2642[8]; //RectPos (byte) ... D3L stairs i8 Byte2634[8]; //RectPos (byte) ... D0 stairs i8 Byte2626[8]; //RectPos (byte) ... D0 stairs i8 Byte2618[8]; //RectPos (byte) ... D1R stairs i8 Byte2610[8]; //RectPos (byte) ... D1 stairs i8 Byte2602[8]; //RectPos (byte) ... D1L stairs i8 Byte2594[8]; //RectPos (byte) ... D2R stairs i8 Byte2586[8]; //RectPos (byte) ... D2 stairs i8 Byte2578[8]; //RectPos (byte) ... D2L stairs i8 Byte2570[8]; //RectPos (byte) ... D3R stairs i8 Byte2562[8]; //RectPos (byte) ... D3 stairs i8 Byte2554[8]; //RectPos (byte) ... D3L stairs
i8 Byte2546[4]; // where to draw character portraits ?
ui8 uByte2542[4]; //Rectpos (byte) ... see through walls rect
i16 Word2538[2]; // ... D1 see through walls?
ui8 uByte2534[4]; // ... rectpos? (part of above (bytes 4-7)
i16 Word2530[2]; // ... rect for drawing overlays (i.e. inside poison cloud)