Misc
FM
There’s an object that seems to represent higher-level file operations.
| FM | FileManage |
|---|---|
| Location | 8095fcbc |
| Pointer | 80578260 (static) | aka r13 (=8057c6a0) - 0x4440 |
| Size | 0x840 |
Methods:
80013af0 | ?? (usually run after a file operation)
80014610 | copy
800146d0 | delete
80014770 | save
800153d0 | ??
80014610: void FM::copy() {
cf.fileCopy(this[0x835], this[0x834]);
cf->selectedFileNo = this[0x834];
this->FUN_80013af0();
cf._u0[0] = 1;
}
800146d0: void FM::delete() {
cf.fileClearA(); // 0 → FA
cf.fileSaveSelected-2(); // FA → FS
this->FUN_80013af0();
cf._u0[0] = 1;
}
80014770: void FM::save() {
if (this[0x82c] == 0 && cf.errorFlag != 1 && cf->_u0[4] != 0) {
if (cf->_u0[1] == 1) {
cf.fileA[0x53ad] = 0;
cf.fileSaveSelected();
this->FUN_80013af0();
cf._u0[0] = 1;
} else {
cf.fileSaveSelected();
cf._u0[0] = 1;
this->FUN_80012d00();
this[0x838] = 1;
}
}
}
Link
An object representing Link.
| Link | |
|---|---|
| Location | (variable) |
| Pointer | 805789ec, 80578a18 (static, seem identical) |
| Size | ? |
| offset | size | description |
|---|---|---|
| ba | [2] | θ (facing angle) |
| c0 | [4] | x (position) |
| c4 | [4] | y (position) |
| c8 | [4] | z (position) |
| 13e | [2] | vθ (movement angle) |
Misc
Another object:
| ?? | ?? |
|---|---|
| Location | 809553ac |
| Pointer | 80578338 (static) | aka r13 (=8057c6a0) - 0x4368 |
| Size | ≤0xb0 |
| Methods | 80052e10, 80052e60, etc. |
80004204–F: 12B of free space for cheat-code flags
Heap starts at 809511e4?
Commits: some higher-level wrapping fn calls:
802e1900 v [higher level]
800c0820 loading zone post-load routine?
- 800bfcb0 story flags
- 800bfdd0 inv flags
- 800c0060 heartbeat
800bfba0