Difference between revisions of "SA SCM"

From GTAMods Wiki
Jump to navigation Jump to search
m (stub template)
Line 1: Line 1:
 +
A scm file is a binary file with certain structure. The common information about what this file is for can be found [[Mission_Scripting_(Overview)|here]]. The scm file structure looks like the following:
 +
 
  (02 00 01)h + 32 bit int    Jump to second segment
 
  (02 00 01)h + 32 bit int    Jump to second segment
 
  byte                        Padding
 
  byte                        Padding
Line 23: Line 25:
 
  (02 00 01)h + 32 bit int    Jump to sixth segment
 
  (02 00 01)h + 32 bit int    Jump to sixth segment
 
  byte                        Segment id
 
  byte                        Segment id
   32 bit int                Unknown
+
   32 bit int                (Unused)
 
  (02 00 01)h + 32 bit int    Jump to seventh segment
 
  (02 00 01)h + 32 bit int    Jump to seventh segment
 
  byte                        Segment id
 
  byte                        Segment id
 
   32 bit int                Size of global var space
 
   32 bit int                Size of global var space
   32 bit int                Unknown
+
   32 bit int                (Unused)
 
  (MAIN code)                  MAIN section, equal to size defined earlier
 
  (MAIN code)                  MAIN section, equal to size defined earlier
 
  (mission code)              The mission data, missions stored at offsets defined earlier
 
  (mission code)              The mission data, missions stored at offsets defined earlier
Line 33: Line 35:
 
{{Script-stub}}
 
{{Script-stub}}
  
[[Category:Mission Script]]
+
[[Category:Mission Script]] [[Category:File Formats]]

Revision as of 15:34, 9 October 2007

A scm file is a binary file with certain structure. The common information about what this file is for can be found here. The scm file structure looks like the following:

(02 00 01)h + 32 bit int     Jump to second segment
byte                         Padding
  (Global vars)              Space for variable saving
(02 00 01)h + 32 bit int     Jump to third segment
byte                         Segment id
  32 bit int                 Number of models
  (model names)              24 byte model names * number of models(model 0 not used)
(02 00 01)h + 32 bit int     Jump to fourth segment
byte                         Segment id
  32 bit int                 MAIN size
  32 bit int                 Largest mission size
  32 bit int                 Number of missions
  32 bit int                 Highest number of locals used in mission/exernal
  (mission addresses)        32 bit addresses * number of missions
(02 00 01)h + 32 bit int     Jump to fifth segment
byte                         Segment id
  32 bit int                 Largest external size
  32 bit int                 Number of externals
  (external data):           28 byte external data * number of externals
    20 bytes                 Name of external
    32 bit int               Offset of external
    32 bit int               Size of external
(02 00 01)h + 32 bit int     Jump to sixth segment
byte                         Segment id
  32 bit int                 (Unused)
(02 00 01)h + 32 bit int     Jump to seventh segment
byte                         Segment id
  32 bit int                 Size of global var space
  32 bit int                 (Unused)
(MAIN code)                  MAIN section, equal to size defined earlier
(mission code)               The mission data, missions stored at offsets defined earlier