MAPINFO
Jump to navigation
Jump to search
Memory Models
Could be the MAPINFO memory model:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (SCNC) |
| 0x04 | 0x0? | ? | Variable size (contains pointers) |
| 0x0? | 0x04 | string | Identifier (USE ) //space at the end |
| 0x0? | 0x0? | ? | Variable size (contains pointers) |
Found at qword_7FF717119290 (v1.03) in the code segment (CS). It is accessed when reading the TRCK segment.
struct s1 {
signed char[8] pad8;
signed char f8; //bool set to 1 at end
signed char[7] pad16;
struct s0* f16;
struct s2* f24; //ASEQ
struct s2* f32; //ACAM
struct s2* f40; //AMOV
struct s2* f48; //ASTR
struct s2* f56; //ALIP
uint64_t f64;
uint64_t f72;
signed char[8] pad88;
int32_t f88;
int32_t f92;
int32_t f96;
int32_t f100;
signed char[12] pad116;
struct s2* f116;
signed char[4] pad128;
struct s2* f128;
signed char[42376] pad42512;
int32_t f42512;
int16_t f42516;
};
struct s0 {
signed char[4] pad4;
int32_t f4;
int32_t f8;
};
struct s2 {
int32_t f0;
int32_t f4;
signed char[1] pad9;
signed char f9;
signed char[2] pad12;
int32_t f12;
};
ATTR (Attribute)
Ignored.
SNDP (Sound Program)
LGHT (Light)
Parent Node:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (LGHT) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | string | Unknown (Sub node name) |
| 0x0C | 0x04 | uint | Size relativ to 0x08 |
Child Node:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (LGHT) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | float | Unknown |
| 0x0C | 0x02 | ushort | Entry count |
| 0x0E | 0x02 | short | Flag for something (cmp 3) |
| 0x10 | 0x04 | ? | Unknown |
| 0x14 | 0x04 | ? | Unknown |
Child Node Entry (32 bytes):
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x02 | short | Unused? |
| 0x02 | 0x01 | byte | Unknown (same value as 0x00 but used) |
| 0x04 | 0x01 | byte | Unknown |
| 0x06 | 0x01 | byte | Unused? |
| 0x08 | 0x14 | half floats | Unknown |
| 0x1E | 0x02 | short | Unknown |
ECAM
Event Cam. Used when interacting with object (switching camera). Has something to do with HPMa/HPMb.
COLS (Collisions)
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (COLS) |
| 0x04 | 0x04 | uint | Size in bytes |
Followed by 4 byte string identifier. Example: 0000
COLI
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (COLI) |
| 0x04 | 0x04 | uint | Size in bytes |
HGHT
EVNT
UNDU
SOND
PROP
WALK
FLDD (Collision Field)
Used often when moving around.
PROP
Header:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (PROP) |
| 0x04 | 0x04 | uint | Content offset |
| 0x08 | 0x04 | uint | Footer offset |
Footer:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | uint | Positions offset |
| 0x04 | 0x0? | ? | Unknown offsets |
DOOR
SCEX
SCN3
SCN4
REGD
Empty.
WTHR (Weather)
Used by WEXE ((HLTaskFunc)ExecuteWeather)
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (WTHR) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | uint | Unknown |
| 0x0C | 0x04 | uint | Entry count? |
| 0x10 | 0x04 | uint | Entry count? |
| 0x14 | 0x04 | uint | Reserved or Empty |
EVFD
Empty.
LSCN
Empty.
MAPR
MAPT
SCRL
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (SCRL) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | uint | Either fully F or 0 |
Only present 2 times in sm2, but in sm1 it's common.
CHRD (Character Data)
The CHRD segment contains models character properties that will be loaded for the mapinfo.