Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
trs:scripting_tr4_tr5 [2017/02/02 19:56] – ↷ Page moved from opentomb:trs:scripting_tr4_tr5 to trs:scripting_tr4_tr5 stohrendorftrs:scripting_tr4_tr5 [2021/04/29 21:45] (current) – [Script Opcodes] zdimension
Line 1: Line 1:
 +{{indexmenu_n>11}}
 +
 ====== Scripting in TR4 and TR5 ====== ====== Scripting in TR4 and TR5 ======
  
Line 18: Line 20:
     uint8_t  Filler[3];     // Unused     uint8_t  Filler[3];     // Unused
     uint32_t InputTimeout;     uint32_t InputTimeout;
-    uint8_t  Security;+    uint8_t  SecurityTag;
 } }
 </code> </code>
 ''%%Options%%'' is a set of bit flags with several global game settings (name of the settings directly borrowed from original text scripts distributed with TRLE): ''%%Options%%'' is a set of bit flags with several global game settings (name of the settings directly borrowed from original text scripts distributed with TRLE):
  
-  * //Bit 0// (''%%0x01%%'') — FlyCheat. Enables debug fly mode activated by typing ''%%DOZY%%'' ingame. +^ Hex ^ Bit ^ Description ^ 
-  * //Bit 1// (''%%0x02%%'') — LoadSave. When this bit is not set, load and save features are disabled. This option was used for demo versions. +^  ''0x0001'' ^  ''CheatEnabled'' -- Enables debug fly mode activated by typing ''%%DOZY%%'' ingame. | 
-  * //Bit 2// (''%%0x04%%'') — Title. Specifies if title screen should be displayed or not. If not set, game will start right away after user has launched an application. +^  ''0x0002'' ''LoadSaveEnabled'' -- When this bit is not set, load and save features are disabled. This option was used for demo versions. | 
-  * //Bit 3// (''%%0x08%%'') — PlayAnyLevelGives an access to any level from the title screen. +^  ''0x0004'' ''TitleEnabled'' -- Specifies if title screen should be displayed or not. If not set, game will start right away after user has launched an application. | 
-  * //Bit 7// (''%%0x80%%'') — DemoDiscUnknown feature, probably related to game versions deployed on promotional CDs.+ ''0x0008'' ^  3 | ''PlayAnyLevel'' -- Gives an access to any level from the title screen. | 
 + ''0x0070'' ^  4 | ''Language'' -- Chooses which loading picture (US, GR, FR or UKis showed | 
 +^  ::: ^  5 | ::: | 
 +^  ::: ^  6 | ::: | 
 +^  ''0x0080'' ^  7 | ''DemoDisc'' -- Unknown feature, probably related to game versions deployed on promotional CDs. |
  
 ''%%InputTimeout%%'': in early TR4 demos (for example, version dated September 15, 1999) this parameter specified time interval, after which game will engage pre-recorded rolling demo, in case there was no user input. This feature became useless in final version. ''%%InputTimeout%%'': in early TR4 demos (for example, version dated September 15, 1999) this parameter specified time interval, after which game will engage pre-recorded rolling demo, in case there was no user input. This feature became useless in final version.
  
-''%%Security%%'' parameter meant to be a special “key” value used to encrypt script data. Encryption is done with simple XOR operation against the data. However, this value was never used, and instead, hardcoded one was specified. This matter will be discussed later.+''%%SecurityTag%%'' parameter meant to be a special “key” value used to encrypt script data. Encryption is done with simple XOR operation against the data. However, this value was never used, and instead, hardcoded one was specified. This matter will be discussed later.
  
 ==== Level Header ==== ==== Level Header ====
Line 41: Line 47:
 struct tr4_script_levelheader struct tr4_script_levelheader
 { {
-     uint8_t NumTotalLevels; +    uint8_t NumTotalLevels; 
-    uint16_t NumUniqueLevelPaths;+    uint8_t NumFilenames; 
 +     
 +    uint8_t Filler;
  
     uint16_t LevelpathStringLen;     uint16_t LevelpathStringLen;
     uint16_t LevelBlockLen;     uint16_t LevelBlockLen;
  
-    uint8_t  PSXLevelString [5];    //  typically ".PSX" +    uint8_t PSXLevelString [5];    //  typically ".PSX" 
-    uint8_t  PSXFMVString   [5];    //  typically ".FMV" +    uint8_t PSXFMVString   [5];    //  typically ".FMV" 
-    uint8_t  PSXCutString   [5];    //  typically ".CUT" +    uint8_t PSXCutString   [5];    //  typically ".CUT" 
-    uint8_t  Filler         [5];    //  Possibly for some additional extension type?+    uint8_t Filler         [5];    //  Possibly for some additional extension type?
  
-    uint8_t  PCLevelString  [5];    //  typically ".TR4" +    uint8_t PCLevelString  [5];    //  typically ".TR4" 
-    uint8_t  PCFMVString    [5];    //  typically ".BIK" +    uint8_t PCFMVString    [5];    //  typically ".BIK" 
-    uint8_t  PCCutString    [5];    //  typically ".TR4" +    uint8_t PCCutString    [5];    //  typically ".TR4" 
-    uint8_t  Filler         [5];+    uint8_t Filler         [5];
 } }
 </code> </code>
Line 117: Line 125:
 Here is a list of all available TR4 opcodes, their meaning and their corresponding arguments (order of arguments matters!): Here is a list of all available TR4 opcodes, their meaning and their corresponding arguments (order of arguments matters!):
  
-<code> +It is important to note that the ''LoadCamera'' opcode has been removed in TR5which means that all the other opcodes (>= 0x92) are shifted by 1).
-0x81  Level           bitu8 stringIndex, uint16_t levelOptions, bitu8 pathIndex, bitu8 audio +
-0x82  [Title] Level   bitu8 pathIndex, uint16_t titleOptions, bitu8 audio +
-0x8C  Legend          bitu8 stringIndex +
-0x91  LoadCamera      bit32 srcXbit32 srcY, bit32 srcZ, bit32 targX, bit32 targY, bit32 targZ, bitu8 room +
-0x89  Layer1          bitu8 red, bitu8 green, bitu8 blue, bit8 speed +
-0x8A  Layer2          bitu8 red, bitu8 green, bitu8 blue, bit8 speed +
-0x8E  Mirror          bitu8 room, bit32 xAxis +
-0x8F  Fog             bitu8 red, bitu8 green, bitu8 blue +
-0x84  Cut             bitu8 cutIndex +
-0x8B  UVrotate        bit8 speed +
-0x85  ResidentCut1    bitu8 cutIndex +
-0x86  ResidentCut2    bitu8 cutIndex +
-0x87  ResidentCut3    bitu8 cutIndex +
-0x88  ResidentCut4    bitu8 cutIndex +
-0x80  FMV             bitu8: 4 least significant bits represent the FMV index; 4 most significant bits (y) represent the FMV trigger bitfield as in y=1<->bit 8 set +
-0x92  ResetHUB        bitu8 levelIndex +
-0x90  AnimatingMIP    bitu8: 4 least significant bits represent animatingObjectIndex - 1; 4 most significant bits represent the distance +
-0x8D  LensFlare       uint16_t yClicks, bit16 zClicks, uint16_t xClicks, bitu8 red, bitu8 green, bitu8 blue +
-0x93  KEY_ITEM1       uint16_t stringIndex, uint16_t height, uint16_t size, uint16_t yAngle, uint16_t zAngle, uint16_t xAngle, uint16_t unknown +
-0x94  KEY_ITEM2   -=-  (All the same) +
-0x95  KEY_ITEM3   -=- +
-0x96  KEY_ITEM4   -=- +
-0x97  KEY_ITEM5   -=- +
-0x98  KEY_ITEM6   -=- +
-0x99  KEY_ITEM7   -=- +
-0x9A  KEY_ITEM8   -=- +
-0x9B  KEY_ITEM9   -=- +
-0x9C  KEY_ITEM10  -=- +
-0x9D  KEY_ITEM11  -=- +
-0x9E  KEY_ITEM12  -=- +
-0x9F  PUZZLE_ITEM1  -=- +
-0xA0  PUZZLE_ITEM2  -=- +
-0xA1  PUZZLE_ITEM3  -=- +
-0xA2  PUZZLE_ITEM4  -=- +
-0xA3  PUZZLE_ITEM5  -=- +
-0xA4  PUZZLE_ITEM6  -=- +
-0xA5  PUZZLE_ITEM7  -=- +
-0xA6  PUZZLE_ITEM8  -=- +
-0xA7  PUZZLE_ITEM9  -=- +
-0xA8  PUZZLE_ITEM10  -=- +
-0xA9  PUZZLE_ITEM11  -=- +
-0xAA  PUZZLE_ITEM12  -=-+
  
-0xAB  PICKUP_ITEM1  -=- +^ TR4 ^ TR5 ^ Opcode ^ Arguments ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
-0xAC  PICKUP_ITEM2  -=+ ''0x80''||  ''FMV''  |  ''uint8_t: 4 least significant bits represent the FMV index; 4 most significant bits (y) represent the FMV trigger bitfield as in y=1<->bit 8 set''  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
-0xAD  PICKUP_ITEM3  -=- + ''0x81''||  ''Level''  |  ''uint8_t stringIndex''  |||||||||||||||||||||  ''uint16_t levelOptions''  |||||||||||||||||||||  ''uint8_t pathIndex''  |||||||||||||||||||||  ''uint8_t audio''  ||||||||||||||||||||| 
-0xAE  PICKUP_ITEM4  -=-+|  ''0x82''||  ''[Title] Level''  |  ''uint8_t pathIndex''  ||||||||||||||||||||||||||||  ''uint16_t titleOptions''  ||||||||||||||||||||||||||||  ''uint8_t audio''  |||||||||||||||||||||||||||| 
 +|  ''0x83''||  ''LEVEL_DATA_END''  |  None -- this opcode appears at the end of every level (incl. title) block  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x84''||  ''Cut''  |  ''uint8_t cutIndex''  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x85''||  ''ResidentCut1''  |  ''uint8_t cutIndex''  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x86''||  ''ResidentCut2''  |:::|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x87''||  ''ResidentCut3''  |:::|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x88''||  ''ResidentCut4''  |:::|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x89''||  ''Layer1''  |  ''uint8_t red''  |||||||||||||||||||||  ''uint8_t green''  |||||||||||||||||||||  ''uint8_t blue''  |||||||||||||||||||||  ''int8_t speed''  ||||||||||||||||||||| 
 +|  ''0x8A''||  ''Layer2''  |:::|||||||||||||||||||||:::|||||||||||||||||||||:::|||||||||||||||||||||:::||||||||||||||||||||| 
 +|  ''0x8B''||  ''UVrotate''  |  ''int8_t speed''  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x8C''||  ''Legend''  |  ''uint8_t stringIndex''  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x8D''||  ''LensFlare''  |  ''uint16_t yClicks''  ||||||||||||||  ''bit16 zClicks''  ||||||||||||||  ''uint16_t xClicks''  ||||||||||||||  ''uint8_t red''  ||||||||||||||  ''uint8_t green''  ||||||||||||||  ''uint8_t blue''  |||||||||||||| 
 +|  ''0x8E''||  ''Mirror''  |  ''uint8_t room''  ||||||||||||||||||||||||||||||||||||||||||  ''int32_t xAxis''  |||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x8F''||  ''Fog''  |  ''uint8_t red''  ||||||||||||||||||||||||||||  ''uint8_t green''  ||||||||||||||||||||||||||||  ''uint8_t blue''  |||||||||||||||||||||||||||| 
 +|  ''0x90''||  ''AnimatingMIP''  |  ''uint8_t: 4 least significant bits represent animatingObjectIndex - 1; 4 most significant bits represent the distance''  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x91'' **XXX**  |  ''LoadCamera''  |  ''int32_t srcX''  ||||||||||||  ''int32_t srcY''  ||||||||||||  ''int32_t srcZ''  ||||||||||||  ''int32_t targX''  ||||||||||||  ''int32_t targY''  ||||||||||||  ''int32_t targZ''  ||||||||||||  ''uint8_t room''  |||||||||||| 
 +|  ''0x92'' ''0x91'' ''ResetHUB''  |  ''uint8_t levelIndex''  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|  ''0x93'' ''0x92'' ''KEY_ITEM1''  |  ''uint16_t stringIndex''  ||||||||||||  ''uint16_t height''  ||||||||||||  ''uint16_t size''  ||||||||||||  ''uint16_t yAngle''  ||||||||||||  ''uint16_t zAngle''  ||||||||||||  ''uint16_t xAngle''  ||||||||||||  ''uint16_t flags''  |||||||||||| 
 +|  ''0x94'' ''0x93'' ''KEY_ITEM2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x95'' ''0x94'' ''KEY_ITEM3''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x96'' ''0x95'' ''KEY_ITEM4''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x97'' ''0x96'' ''KEY_ITEM5''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x98'' ''0x97'' ''KEY_ITEM6''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x99'' ''0x98'' ''KEY_ITEM7''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x9A'' ''0x99'' ''KEY_ITEM8''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x9B'' ''0x9A'' ''KEY_ITEM9''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x9C'' ''0x9B'' ''KEY_ITEM10''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x9D'' ''0x9C'' ''KEY_ITEM11''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x9E'' ''0x9D'' ''KEY_ITEM12''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0x9F'' ''0x9E'' ''PUZZLE_ITEM1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA0'' ''0x9F'' ''PUZZLE_ITEM2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA1'' ''0xA0'' ''PUZZLE_ITEM3''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA2'' ''0xA1'' ''PUZZLE_ITEM4''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA3'' ''0xA2'' ''PUZZLE_ITEM5''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA4'' ''0xA3'' ''PUZZLE_ITEM6''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA5'' ''0xA4'' ''PUZZLE_ITEM7''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA6'' ''0xA5'' ''PUZZLE_ITEM8''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA7'' ''0xA6'' ''PUZZLE_ITEM9''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA8'' ''0xA7'' ''PUZZLE_ITEM10''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xA9'' ''0xA8'' ''PUZZLE_ITEM11''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xAA'' ''0xA9'' ''PUZZLE_ITEM12''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xAB'' ''0xAA'' ''PICKUP_ITEM1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xAC'' ''0xAB'' ''PICKUP_ITEM2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xAD'' ''0xAC'' ''PICKUP_ITEM3''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xAE'' ''0xAD'' ''PICKUP_ITEM4''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xAF'' ''0xAE'' ''EXAMINE1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB0'' ''0xAF'' ''EXAMINE2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB1'' ''0xB0'' ''EXAMINE3''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB2'' ''0xB1'' ''KEY_ITEM1_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB3'' ''0xB2'' ''KEY_ITEM1_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB4'' ''0xB3'' ''KEY_ITEM2_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB5'' ''0xB4'' ''KEY_ITEM2_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB6'' ''0xB5'' ''KEY_ITEM3_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB7'' ''0xB6'' ''KEY_ITEM3_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB8'' ''0xB7'' ''KEY_ITEM4_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xB9'' ''0xB8'' ''KEY_ITEM4_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xBA'' ''0xB9'' ''KEY_ITEM5_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xBB'' ''0xBA'' ''KEY_ITEM5_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xBC'' ''0xBB'' ''KEY_ITEM6_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xBD'' ''0xBC'' ''KEY_ITEM6_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xBE'' ''0xBD'' ''KEY_ITEM7_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xBF'' ''0xBE'' ''KEY_ITEM7_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC0'' ''0xBF'' ''KEY_ITEM8_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC1'' ''0xC0'' ''KEY_ITEM8_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC2'' ''0xC1'' ''PUZZLE_ITEM1_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC3'' ''0xC2'' ''PUZZLE_ITEM1_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC4'' ''0xC3'' ''PUZZLE_ITEM2_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC5'' ''0xC4'' ''PUZZLE_ITEM2_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC6'' ''0xC5'' ''PUZZLE_ITEM3_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC7'' ''0xC6'' ''PUZZLE_ITEM3_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC8'' ''0xC7'' ''PUZZLE_ITEM4_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xC9'' ''0xC8'' ''PUZZLE_ITEM4_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xCA'' ''0xC9'' ''PUZZLE_ITEM5_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xCB'' ''0xCA'' ''PUZZLE_ITEM5_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xCC'' ''0xCB'' ''PUZZLE_ITEM6_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xCD'' ''0xCC'' ''PUZZLE_ITEM6_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xCE'' ''0xCD'' ''PUZZLE_ITEM7_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xCF'' ''0xCE'' ''PUZZLE_ITEM7_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD0'' ''0xCF'' ''PUZZLE_ITEM8_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD1'' ''0xD0'' ''PUZZLE_ITEM8_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD2'' ''0xD1'' ''PICKUP_ITEM1_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD3'' ''0xD2'' ''PICKUP_ITEM1_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD4'' ''0xD3'' ''PICKUP_ITEM2_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD5'' ''0xD4'' ''PICKUP_ITEM2_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD6'' ''0xD5'' ''PICKUP_ITEM3_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD7'' ''0xD6'' ''PICKUP_ITEM3_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD8'' ''0xD7'' ''PICKUP_ITEM4_COMBO1''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  ''0xD9'' ''0xD8'' ''PICKUP_ITEM4_COMBO2''  |:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::||||||||||||:::|||||||||||| 
 +|  **XXX**  |  ''0xD9'' ''GiveItemAtStartup''  |  ''uint16_t itemNumber''  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 
 +|:::|  ''0xDA'' ''LoseItemAtStartup''  |  ''uint16_t itemNumber''  ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  
-0xAF  EXAMINE1 -=- 
-0xB0  EXAMINE2 -=- 
-0xB1  EXAMINE3 -=- 
- 
-0xB2  KEY_ITEM1_COMBO1 -=- 
-0xB3  KEY_ITEM1_COMBO2 -=- 
-0xB4  KEY_ITEM2_COMBO1 -=- 
-0xB5  KEY_ITEM2_COMBO2 -=- 
-0xB6  KEY_ITEM3_COMBO1 -=- 
-0xB7  KEY_ITEM3_COMBO2 -=- 
-0xB8  KEY_ITEM4_COMBO1 -=- 
-0xB9  KEY_ITEM4_COMBO2 -=- 
-0xBA  KEY_ITEM5_COMBO1 -=- 
-0xBB  KEY_ITEM5_COMBO2 -=- 
-0xBC  KEY_ITEM6_COMBO1 -=- 
-0xBD  KEY_ITEM6_COMBO2 -=- 
-0xBE  KEY_ITEM7_COMBO1 -=- 
-0xBF  KEY_ITEM7_COMBO2 -=- 
-0xC0  KEY_ITEM8_COMBO1 -=- 
-0xC1  KEY_ITEM8_COMBO2 -=- 
- 
-0xC2  PUZZLE_ITEM1_COMBO1 -=- 
-0xC3  PUZZLE_ITEM1_COMBO2  -=- 
-0xC4  PUZZLE_ITEM2_COMBO1  -=- 
-0xC5  PUZZLE_ITEM2_COMBO2  -=- 
-0xC6  PUZZLE_ITEM3_COMBO1  -=- 
-0xC7  PUZZLE_ITEM3_COMBO2  -=- 
-0xC8  PUZZLE_ITEM4_COMBO1  -=- 
-0xC9  PUZZLE_ITEM4_COMBO2  -=- 
-0xCA  PUZZLE_ITEM5_COMBO1  -=- 
-0xCB  PUZZLE_ITEM5_COMBO2  -=- 
-0xCC  PUZZLE_ITEM6_COMBO1  -=- 
-0xCD  PUZZLE_ITEM6_COMBO2 -=- 
-0xCE  PUZZLE_ITEM7_COMBO1 -=- 
-0xCF  PUZZLE_ITEM7_COMBO2 -=- 
-0xD0  PUZZLE_ITEM8_COMBO1 -=- 
-0xD1  PUZZLE_ITEM8_COMBO2 -=- 
- 
-0xD2  PICKUP_ITEM1_COMBO1 -=- 
-0xD3  PICKUP_ITEM1_COMBO2 -=- 
-0xD4  PICKUP_ITEM2_COMBO1 -=- 
-0xD5  PICKUP_ITEM2_COMBO2 -=- 
-0xD6  PICKUP_ITEM3_COMBO1 -=- 
-0xD7  PICKUP_ITEM3_COMBO2 -=- 
-0xD8  PICKUP_ITEM4_COMBO1 -=- 
-0xD9  PICKUP_ITEM4_COMBO2 -=- 
- 
-0x83  level-data-end  no arguments - this opcode appears at the end of every level (incl. title) block 
-</code> 
 The ''%%uint16_t%%'' values ''%%levelOptions%%'' and ''%%titleOptions%%'' are actually //bit fields// containing several boolean options, and are laid out as follows (per-bit description): The ''%%uint16_t%%'' values ''%%levelOptions%%'' and ''%%titleOptions%%'' are actually //bit fields// containing several boolean options, and are laid out as follows (per-bit description):
  
Line 220: Line 226:
   * //Bit 1// (''%%0x0002%%'') — Weather   * //Bit 1// (''%%0x0002%%'') — Weather
   * //Bit 2// (''%%0x0004%%'') — Horizon   * //Bit 2// (''%%0x0004%%'') — Horizon
-  * //Bit 4// (''%%0x0010%%'') — Layer2 used (?) +  * //Bit 3// (''%%0x0008%%'') — Layer1 used 
-  * //Bit 3// (''%%0x0008%%'') — Horizon (has to be paired with 3)+  * //Bit 4// (''%%0x0010%%'') — Layer2 used
   * //Bit 5// (''%%0x0020%%'') — Starfield   * //Bit 5// (''%%0x0020%%'') — Starfield
   * //Bit 6// (''%%0x0040%%'') — Lightning   * //Bit 6// (''%%0x0040%%'') — Lightning
Line 228: Line 234:
   * //Bit 9// (''%%0x0200%%'') — ColAddHorizon   * //Bit 9// (''%%0x0200%%'') — ColAddHorizon
   * //Bit 10// (''%%0x0400%%'') — ResetHUB used   * //Bit 10// (''%%0x0400%%'') — ResetHUB used
-  * //Bit 11// (''%%0x0800%%'') — ColAddHorizon (has to be paired with 10)+  * //Bit 11// (''%%0x0800%%'') — LensFlare used
   * //Bit 12// (''%%0x1000%%'') — Timer   * //Bit 12// (''%%0x1000%%'') — Timer
   * //Bit 13// (''%%0x2000%%'') — Mirror used   * //Bit 13// (''%%0x2000%%'') — Mirror used
-  * //Bit 14// (''%%0x4000%%'') — RemoveAmulet+  * //Bit 14// (''%%0x4000%%'') — Remove Horus amulet from inventory
   * //Bit 15// (''%%0x8000%%'') — NoLevel   * //Bit 15// (''%%0x8000%%'') — NoLevel
  
trs/scripting_tr4_tr5.1486065405.txt.gz · Last modified: 2017/02/02 19:56 (external edit)
Back to top
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0