Difference between revisions of "LCS/VCS SCM"

From GTAMods Wiki
Jump to navigation Jump to search
(Documented unknown thingys according to Mobile symbols.)
m (Finalised article information (awating VCS Mobile release).)
Line 1: Line 1:
 
   32-bit int                  Main script size - 8
 
   32-bit int                  Main script size - 8
 
   32-bit int                  Largest mission script size
 
   32-bit int                  Largest mission script size
  (02 00 06)h + 32-bit int      Jump to second segment - 8
+
  (02 00 06)h + 32-bit offset    '''GOTO''' next header chunk - 8
  byte                          Target game ('l' - Liberty for LCS, 'm' - Miami for VCS)
+
  byte                          Target game ('l' - Liberty for LCS{{ref|*}}, 'm' - Miami for VCS, unused at runtime)
   (Globals space)             Space for global variable storage
+
   (Global variable space)     Space for global variable storage (first global offset is 8)
  (02 00 06)h + 32-bit int      Jump to third segment - 8
+
  (02 00 06)h + 32-bit offset    '''GOTO''' next header chunk - 8
  byte                          Align (always 0)
+
  byte                          Alignment (always 0, ignored)
 
   32-bit int                  Number of save variables
 
   32-bit int                  Number of save variables
 
   (Saved variable indices)    2-byte variable index * number of save variables
 
   (Saved variable indices)    2-byte variable index * number of save variables
   32-bit int                  Number of used objects
+
   32-bit int                  Number of used objects (at least 1)
 
   (Used object array)          24-byte object name * number of used objects (first object name is empty and therefore unused)
 
   (Used object array)          24-byte object name * number of used objects (first object name is empty and therefore unused)
  (02 00 06)h + 32-bit int      Jump to fourth segment - 8
+
  (02 00 06)h + 32-bit offset    '''GOTO''' main script space - 8 (third header chunk is compiled only in script multifile)
  byte                          Align (always 0)
+
  byte                          Alignment (always 0, ignored)
 
   16-bit int                  Number of true globals
 
   16-bit int                  Number of true globals
 
   16-bit int                  Most globals
 
   16-bit int                  Most globals
Line 19: Line 19:
 
   (Multi script array)        (32-bit offset - 8) * number of mission scripts
 
   (Multi script array)        (32-bit offset - 8) * number of mission scripts
 
  (Main script space)            Space of main script (equal to size defined earlier)
 
  (Main script space)            Space of main script (equal to size defined earlier)
  (Mission scripts space)        Space of mission scripts (stored at offsets defined earlier)
+
  (Mission scripts space)        Space of mission scripts (each one is stored at file offsets defined earlier)
  
==See also==
+
{{note|*}} Fun fact: the script multifile of LCS Mobile has been "erroneously" compiled in ''Miami'' mode.
* [[SCM language]]
 
  
 
[[Category:Mission Script]] [[Category:File Formats]]
 
[[Category:Mission Script]] [[Category:File Formats]]

Revision as of 11:02, 23 January 2017

  32-bit int                   Main script size - 8
  32-bit int                   Largest mission script size
(02 00 06)h + 32-bit offset    GOTO next header chunk - 8
byte                           Target game ('l' - Liberty for LCS[*], 'm' - Miami for VCS, unused at runtime)
  (Global variable space)      Space for global variable storage (first global offset is 8)
(02 00 06)h + 32-bit offset    GOTO next header chunk - 8
byte                           Alignment (always 0, ignored)
  32-bit int                   Number of save variables
  (Saved variable indices)     2-byte variable index * number of save variables
  32-bit int                   Number of used objects (at least 1)
  (Used object array)          24-byte object name * number of used objects (first object name is empty and therefore unused)
(02 00 06)h + 32-bit offset    GOTO main script space - 8 (third header chunk is compiled only in script multifile)
byte                           Alignment (always 0, ignored)
  16-bit int                   Number of true globals
  16-bit int                   Most globals
  32-bit int                   Largest mission script size
  16-bit int                   Number of mission scripts
  16-bit int                   Number of exclusive mission scripts
  (Multi script array)         (32-bit offset - 8) * number of mission scripts
(Main script space)            Space of main script (equal to size defined earlier)
(Mission scripts space)        Space of mission scripts (each one is stored at file offsets defined earlier)

^ Fun fact: the script multifile of LCS Mobile has been "erroneously" compiled in Miami mode.