a bit more decomp

This commit is contained in:
red031000 2024-10-13 16:08:23 +02:00
parent 20a3f41521
commit 2e358fc106
No known key found for this signature in database
GPG Key ID: D27E50C050AE0CE1
13 changed files with 219 additions and 265 deletions

View File

@ -11,209 +11,11 @@
.extern MapObjectManager_GetFlagsBitsMask
.extern MapObjectManager_GetObjects
.extern MapObjectManager_GetFieldSystem
.extern MapObject_SetMovement
.extern MapObject_GetEventFlag
.text
thumb_func_start MapObject_SetSpriteID
MapObject_SetSpriteID: ; 0x02058454
str r1, [r0, #0x10]
bx lr
thumb_func_start MapObject_GetSpriteID
MapObject_GetSpriteID: ; 0x02058458
ldr r0, [r0, #0x10]
bx lr
thumb_func_start sub_0205845C
sub_0205845C: ; 0x0205845C
push {r3-r5, lr}
add r5, r0, #0x0
bl MapObject_GetSpriteID
add r4, r0, #0x0
bl sub_0205C334
cmp r0, #0x1
bne _02058476
add r0, r5, #0x0
bl sub_0205C340
add r4, r0, #0x0
_02058476:
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
thumb_func_start MapObject_SetMovement
MapObject_SetMovement: ; 0x0205847C
str r1, [r0, #0x14]
bx lr
thumb_func_start MapObject_GetMovement
MapObject_GetMovement: ; 0x02058480
ldr r0, [r0, #0x14]
bx lr
thumb_func_start MapObject_SetType
MapObject_SetType: ; 0x02058484
str r1, [r0, #0x18]
bx lr
thumb_func_start MapObject_GetType
MapObject_GetType: ; 0x02058488
ldr r0, [r0, #0x18]
bx lr
thumb_func_start MapObject_SetFlagID
MapObject_SetFlagID: ; 0x0205848C
str r1, [r0, #0x1c]
bx lr
thumb_func_start MapObject_GetFlagID
MapObject_GetFlagID: ; 0x02058490
ldr r0, [r0, #0x1c]
bx lr
thumb_func_start MapObject_SetScriptID
MapObject_SetScriptID: ; 0x02058494
str r1, [r0, #0x20]
bx lr
thumb_func_start MapObject_GetScriptID
MapObject_GetScriptID: ; 0x02058498
ldr r0, [r0, #0x20]
bx lr
thumb_func_start MapObject_SetInitialFacingDirection
MapObject_SetInitialFacingDirection: ; 0x0205849C
str r1, [r0, #0x24]
bx lr
thumb_func_start MapObject_GetInitialFacingDirection
MapObject_GetInitialFacingDirection: ; 0x020584A0
ldr r0, [r0, #0x24]
bx lr
thumb_func_start MapObject_SetFacingDirectionDirect
MapObject_SetFacingDirectionDirect: ; 0x020584A4
ldr r2, [r0, #0x28]
str r2, [r0, #0x30]
str r1, [r0, #0x28]
bx lr
thumb_func_start sub_020584AC
sub_020584AC: ; 0x020584AC
push {r3-r5, lr}
add r4, r1, #0x0
mov r1, #0x80
add r5, r0, #0x0
bl MapObject_GetFlagsBitsMask
cmp r0, #0x0
bne _020584C2
ldr r0, [r5, #0x28]
str r0, [r5, #0x30]
str r4, [r5, #0x28]
_020584C2:
pop {r3-r5, pc}
thumb_func_start MapObject_GetFacingDirection
MapObject_GetFacingDirection: ; 0x020584C4
ldr r0, [r0, #0x28]
bx lr
thumb_func_start sub_020584C8
sub_020584C8: ; 0x020584C8
ldr r0, [r0, #0x30]
bx lr
thumb_func_start MapObject_SetNextFacingDirection
MapObject_SetNextFacingDirection: ; 0x020584CC
ldr r2, [r0, #0x2c]
str r2, [r0, #0x34]
str r1, [r0, #0x2c]
bx lr
thumb_func_start MapObject_GetNextFacingDirection
MapObject_GetNextFacingDirection: ; 0x020584D4
ldr r0, [r0, #0x2c]
bx lr
thumb_func_start sub_020584D8
sub_020584D8: ; 0x020584D8
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
bl sub_020584AC
add r0, r5, #0x0
add r1, r4, #0x0
bl MapObject_SetNextFacingDirection
pop {r3-r5, pc}
thumb_func_start MapObject_SetParam
MapObject_SetParam: ; 0x020584EC
push {r3, lr}
cmp r2, #0x0
beq _020584FC
cmp r2, #0x1
beq _02058500
cmp r2, #0x2
beq _02058504
b _02058508
_020584FC:
str r1, [r0, #0x38]
pop {r3, pc}
_02058500:
str r1, [r0, #0x3c]
pop {r3, pc}
_02058504:
str r1, [r0, #0x40]
pop {r3, pc}
_02058508:
bl GF_AssertFail
pop {r3, pc}
.balign 4
thumb_func_start MapObject_GetParam
MapObject_GetParam: ; 0x02058510
push {r3, lr}
cmp r1, #0x0
beq _02058520
cmp r1, #0x1
beq _02058524
cmp r1, #0x2
beq _02058528
b _0205852C
_02058520:
ldr r0, [r0, #0x38]
pop {r3, pc}
_02058524:
ldr r0, [r0, #0x3c]
pop {r3, pc}
_02058528:
ldr r0, [r0, #0x40]
pop {r3, pc}
_0205852C:
bl GF_AssertFail
mov r0, #0x0
pop {r3, pc}
thumb_func_start MapObject_SetXRange
MapObject_SetXRange: ; 0x02058534
str r1, [r0, #0x44]
bx lr
thumb_func_start MapObject_GetXRange
MapObject_GetXRange: ; 0x02058538
ldr r0, [r0, #0x44]
bx lr
thumb_func_start MapObject_SetYRange
MapObject_SetYRange: ; 0x0205853C
str r1, [r0, #0x48]
bx lr
thumb_func_start MapObject_GetYRange
MapObject_GetYRange: ; 0x02058540
ldr r0, [r0, #0x48]
bx lr
thumb_func_start sub_02058544
sub_02058544: ; 0x02058544
add r0, #0xa0
@ -602,7 +404,7 @@ sub_02058750: ; 0x02058750
bl GF_AssertFail
_02058760:
add r0, r4, #0x0
bl MapObject_GetFlagID
bl MapObject_GetEventFlag
pop {r4, pc}
thumb_func_start sub_02058768

View File

@ -218,7 +218,7 @@ _02055228:
bl MapObject_SetType
add r0, r5, #0x0
mov r1, #0x0
bl MapObject_SetFlagID
bl MapObject_SetEventFlag
add r0, r5, #0x0
mov r1, #0x0
bl MapObject_SetScriptID
@ -319,7 +319,7 @@ sub_02055304: ; 0x02055304
add r4, r1, #0x0
bl PlayerAvatar_GetMapObject
add r1, r4, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
pop {r4, pc}
thumb_func_start sub_02055314

View File

@ -472,7 +472,7 @@ sub_02055B8C: ; 0x02055B8C
bl PlayerAvatar_GetMapObject
add r4, r0, #0x0
add r1, r5, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
add r0, r4, #0x0
mov r1, #0x0
bl sub_02058544

View File

@ -144,7 +144,7 @@ sub_02059FB8: ; 0x02059FB8
cmp r1, r2
beq _02059FE0
add r0, r5, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
b _0205A010
_02059FE0:
ldrh r0, [r4, #0x0]
@ -167,7 +167,7 @@ _02059FE0:
bl sub_0205AAD4
add r1, r0, #0x0
add r0, r5, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
_0205A010:
add r0, r5, #0x0
bl sub_02059C60
@ -303,7 +303,7 @@ _0205A0FE:
add r6, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
bl sub_020584D8
bl MapObject_SetOrQueueFacing
ldr r0, [r4, #0x4]
cmp r0, #0x1
bne _0205A12A
@ -561,7 +561,7 @@ sub_0205A2EC: ; 0x0205A2EC
_0205A300:
ldr r1, [r4, #0x0]
add r0, r5, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@ -799,7 +799,7 @@ _0205A4A6:
lsl r1, r4, #0x2
ldr r1, [r5, r1]
add r0, r7, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
mov r0, #0x0
strb r0, [r6, #0x2]
mov r0, #0x1
@ -956,7 +956,7 @@ _0205A5C2:
lsl r1, r4, #0x2
ldr r1, [r5, r1]
add r0, r7, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
add r0, r7, #0x0
bl MapObject_GetFacingDirection
add r4, r0, #0x0
@ -1039,7 +1039,7 @@ _0205A65A:
bne _0205A674
add r0, r5, #0x0
add r1, r6, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
_0205A674:
mov r0, #0x1
strh r0, [r4, #0x0]
@ -1083,7 +1083,7 @@ sub_0205A67C: ; 0x0205A67C
bne _0205A6D6
add r0, r5, #0x0
add r1, r6, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
_0205A6D6:
mov r0, #0x0
strh r0, [r4, #0x2]
@ -1520,7 +1520,7 @@ _0205A9C0:
bne _0205A9EA
add r0, r5, #0x0
add r1, r6, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
_0205A9EA:
add r0, r5, #0x0
add r1, r6, #0x0
@ -1544,7 +1544,7 @@ _0205A9EA:
bne _0205AA20
add r0, r5, #0x0
add r1, r6, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
_0205AA20:
add r0, r5, #0x0
add r1, r6, #0x0
@ -1995,7 +1995,7 @@ _0205AD6E:
strb r0, [r5, #0x2]
add r0, r7, #0x0
add r1, r4, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
add r0, r7, #0x0
mov r1, #0x80
bl MapObject_SetFlagsBits

View File

@ -474,7 +474,7 @@ sub_0205B0C8: ; 0x0205B0C8
sub_0205B0D4: ; 0x0205B0D4
push {r4, lr}
add r4, r0, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
add r0, r4, #0x0
mov r1, #0x0
bl sub_02058544
@ -537,7 +537,7 @@ sub_0205B124: ; 0x0205B124
bl sub_02059C0C
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_020584D8
bl MapObject_SetOrQueueFacing
add r1, sp, #0x8
ldrh r1, [r1, #0x10]
add r0, r5, #0x0
@ -950,7 +950,7 @@ sub_0205B408: ; 0x0205B408
strh r1, [r0, #0x2]
add r0, r5, #0x0
add r1, r7, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_02058544
@ -1221,7 +1221,7 @@ _0205B5EA:
bl MapObject_SetFlagsBits
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_020584D8
bl MapObject_SetOrQueueFacing
add r1, sp, #0x8
ldrh r1, [r1, #0x10]
add r0, r5, #0x0
@ -2061,7 +2061,7 @@ sub_0205BBF4: ; 0x0205BBF4
bl sub_02059C0C
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_020584D8
bl MapObject_SetOrQueueFacing
add r0, r5, #0x0
add r1, r6, #0x0
bl sub_02058544
@ -2308,7 +2308,7 @@ sub_0205BDB8: ; 0x0205BDB8
blt _0205BDE0
add r0, r4, #0x0
mov r1, #0x1
bl sub_020584AC
bl MapObject_SetFacingDirection
add r0, r4, #0x0
mov r1, #0x0
bl sub_02058544

View File

@ -367,7 +367,7 @@ _0205C148:
mov r1, #0x4
ldrsb r1, [r4, r1]
add r0, r5, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
ldrb r0, [r4, #0x1]
add r0, r0, #0x1
strb r0, [r4, #0x1]
@ -613,7 +613,7 @@ _0205C314:
mov r1, #0x4
ldrsb r1, [r4, r1]
add r0, r7, #0x0
bl sub_020584AC
bl MapObject_SetFacingDirection
ldrb r0, [r4, #0x1]
add r0, r0, #0x1
strb r0, [r4, #0x1]

View File

@ -4030,17 +4030,17 @@
.extern MapObject_GetMovement
.extern MapObject_SetType
.extern MapObject_GetType
.extern MapObject_SetFlagID
.extern MapObject_SetEventFlag
.extern MapObject_SetScriptID
.extern MapObject_GetScriptID
.extern MapObject_GetInitialFacingDirection
.extern MapObject_SetFacingDirectionDirect
.extern sub_020584AC
.extern MapObject_SetFacingDirection
.extern MapObject_GetFacingDirection
.extern sub_020584C8
.extern MapObject_GetPreviousFacingDirection
.extern MapObject_SetNextFacingDirection
.extern MapObject_GetNextFacingDirection
.extern sub_020584D8
.extern MapObject_SetOrQueueFacing
.extern MapObject_SetParam
.extern MapObject_GetParam
.extern MapObject_SetXRange

View File

@ -261,7 +261,7 @@ ov05_021F1E64: ; 0x021F1E64
ov05_021F1EC0: ; 0x021F1EC0
push {r4, lr}
add r4, r0, #0
bl sub_020584AC
bl MapObject_SetFacingDirection
add r0, r4, #0
bl MapObject_CheckFlag14
cmp r0, #1

View File

@ -33905,7 +33905,7 @@ ov06_02249E9C: ; 0x02249E9C
bl MapObject_GetFacingDirection
str r0, [sp, #0x14]
add r0, r5, #0
bl sub_020584C8
bl MapObject_GetPreviousFacingDirection
str r0, [sp, #0x18]
add r0, r5, #0
mov r1, #2

View File

@ -40407,7 +40407,7 @@ _0224D2AE:
ldr r0, [r0, #0x34]
bl MapObjectManager_GetFirstActiveObjectByID
ldr r1, [sp]
bl sub_020584AC
bl MapObject_SetFacingDirection
_0224D2CE:
add r4, r4, #1
add r5, #0x20

View File

@ -53,6 +53,9 @@ static u32 MapObject_GetFlags(LocalMapObject *object);
static void MapObject_SetFlags2(LocalMapObject *object, u32 flags);
static u32 MapObject_GetFlags2(LocalMapObject *object);
static void MapObject_SetMapID(LocalMapObject *object, u32 mapId);
/*static*/ void MapObject_SetMovement(LocalMapObject *object, u32 movement);
/*static*/ u32 MapObject_GetEventFlag(LocalMapObject *object);
static void MapObject_SetInitialFacingDirection(LocalMapObject *object, u32 initialFacing);
extern BOOL MapObject_IsInUse(LocalMapObject *object);
extern void ov05_021F2AF4(MapObjectManager *manager, void *param0);
@ -76,7 +79,6 @@ extern void ObjectEvent_SetHeight(ObjectEvent *objectEvent, u32 height);
extern u32 ObjectEvent_GetFlagID(ObjectEvent *objectEvent);
extern ObjectEvent *ObjectEvent_GetById(u32 id, u32 objectEventCount, ObjectEvent *events);
extern u8 FieldSystem_FlagCheck(FieldSystem *fieldSystem, u16 flag);
extern void MapObject_SetSpriteID(LocalMapObject *object, u32 sprite);
extern BOOL sub_02058934(LocalMapObject *object);
extern MapObjectManager *MapObject_GetManager(LocalMapObject *object);
extern BOOL sub_020587E0(MapObjectManager *manager);
@ -84,7 +86,6 @@ extern void sub_020586B4(LocalMapObject *object);
extern void sub_02058660(LocalMapObject *object);
extern void sub_02058564(LocalMapObject *object);
extern MapObjectManager *sub_02058580(LocalMapObject *object);
extern u32 MapObject_GetFlagID(LocalMapObject *object);
extern FieldSystem *MapObject_GetFieldSystem(LocalMapObject *object);
extern void FieldSystem_FlagSet(FieldSystem *fieldSystem, u16 flag);
extern void sub_02058ED8(LocalMapObject *object);
@ -100,16 +101,6 @@ extern void sub_020586C8(LocalMapObject *object);
extern BOOL MapObject_CheckFlag14(LocalMapObject *object);
extern void sub_020586DC(LocalMapObject *object);
extern void sub_02057AEC(MapObjectManager *manager, LocalMapObject *object);
extern u32 MapObject_GetSpriteID(LocalMapObject *object);
extern u32 MapObject_GetMovement(LocalMapObject *object);
extern u32 MapObject_GetType(LocalMapObject *object);
extern u32 MapObject_GetScriptID(LocalMapObject *object);
extern u32 MapObject_GetInitialFacingDirection(LocalMapObject *object);
extern u32 MapObject_GetFacingDirection(LocalMapObject *object);
extern u32 MapObject_GetNextFacingDirection(LocalMapObject *object);
extern u32 MapObject_GetParam(LocalMapObject *object, u32 param);
extern u32 MapObject_GetXRange(LocalMapObject *object);
extern u32 MapObject_GetYRange(LocalMapObject *object);
extern u32 MapObject_GetInitialX(LocalMapObject *object);
extern u32 MapObject_GetInitialHeight(LocalMapObject *object);
extern u32 MapObject_GetInitialY(LocalMapObject *object);
@ -122,16 +113,6 @@ extern u32 MapObject_CheckFlag29(LocalMapObject *object);
extern u8 *sub_020585B0(LocalMapObject *object);
extern u8 *sub_020585D8(LocalMapObject *object);
extern BOOL sub_02059EC8(FieldSystem *fieldSystem, VecFx32 *vector, BOOL flag);
extern void MapObject_SetMovement(LocalMapObject *object, u32 movement);
extern void MapObject_SetType(LocalMapObject *object, u32 type);
extern void MapObject_SetFlagID(LocalMapObject *object, u32 flagId);
extern void MapObject_SetScriptID(LocalMapObject *object, u32 script);
extern void MapObject_SetInitialFacingDirection(LocalMapObject *object, u32 initialDirection);
extern void MapObject_SetFacingDirectionDirect(LocalMapObject *object, u32 direction);
extern void MapObject_SetNextFacingDirection(LocalMapObject *object, u32 nextDirection);
extern void MapObject_SetParam(LocalMapObject *object, u32 value, u32 param);
extern void MapObject_SetXRange(LocalMapObject *object, u32 xRange);
extern void MapObject_SetYRange(LocalMapObject *object, u32 yRange);
extern void MapObject_SetInitialX(LocalMapObject *object, u32 initialX);
extern void MapObject_SetInitialHeight(LocalMapObject *object, u32 initialHeight);
extern void MapObject_SetInitialY(LocalMapObject *object, u32 initialY);
@ -188,9 +169,10 @@ extern void ov05_021F2E0C(LocalMapObject *object, BOOL set);
extern void sub_0205868C(LocalMapObject *object);
extern void MapObject_SetFlag14(LocalMapObject *object);
extern void *sub_02058744(LocalMapObject *object);
extern u32 sub_0205845C(LocalMapObject *object);
extern void sub_02058EF8(LocalMapObject *object);
extern void ov05_021F1D8C(LocalMapObject *object);
extern BOOL sub_0205C334(void);
extern u32 sub_0205C340(LocalMapObject *object);
MapObjectManager *MapObjectManager_Init(FieldSystem *fieldSystem, u32 objectCount, u32 priority) {
MapObjectManager *ret = MapObjectManager_New(objectCount);
@ -339,9 +321,9 @@ void MapObject_Remove(LocalMapObject *object) {
}
void MapObject_Delete(LocalMapObject *object) {
u32 flagId = MapObject_GetFlagID(object);
u32 eventFlag = MapObject_GetEventFlag(object);
FieldSystem *fieldSystem = MapObject_GetFieldSystem(object);
FieldSystem_FlagSet(fieldSystem, flagId);
FieldSystem_FlagSet(fieldSystem, eventFlag);
MapObject_Remove(object);
}
@ -456,7 +438,7 @@ static void SavedMapObject_InitFromLocalMapObject(FieldSystem *fieldSystem, Loca
savedObject->spriteId = MapObject_GetSpriteID(localObject);
savedObject->movement = MapObject_GetMovement(localObject);
savedObject->type = MapObject_GetType(localObject);
savedObject->flagId = MapObject_GetFlagID(localObject);
savedObject->eventFlag = MapObject_GetEventFlag(localObject);
savedObject->script = MapObject_GetScriptID(localObject);
savedObject->initialFacing = MapObject_GetInitialFacingDirection(localObject);
savedObject->currentFacing = MapObject_GetFacingDirection(localObject);
@ -495,7 +477,7 @@ static void LocalMapObject_InitFromSavedMapObject(LocalMapObject *localObject, S
MapObject_SetSpriteID(localObject, savedObject->spriteId);
MapObject_SetMovement(localObject, savedObject->movement);
MapObject_SetType(localObject, savedObject->type);
MapObject_SetFlagID(localObject, savedObject->flagId);
MapObject_SetEventFlag(localObject, savedObject->eventFlag);
MapObject_SetScriptID(localObject, savedObject->script);
MapObject_SetInitialFacingDirection(localObject, savedObject->initialFacing);
MapObject_SetFacingDirectionDirect(localObject, savedObject->currentFacing);
@ -636,7 +618,7 @@ static void MapObject_InitFromObjectEvent(LocalMapObject *object, ObjectEvent *o
MapObject_SetSpriteID(object, FieldSystem_ResolveObjectSpriteID(fieldSystem, ObjectEvent_GetSpriteID(objectEvent)));
MapObject_SetMovement(object, ObjectEvent_GetMovement(objectEvent));
MapObject_SetType(object, ObjectEvent_GetType(objectEvent));
MapObject_SetFlagID(object, ObjectEvent_GetFlagID(objectEvent));
MapObject_SetEventFlag(object, ObjectEvent_GetFlagID(objectEvent));
MapObject_SetScriptID(object, ObjectEvent_GetScriptID(objectEvent));
MapObject_SetInitialFacingDirection(object, ObjectEvent_GetInitialFacingDirection(objectEvent));
MapObject_SetParam(object, ObjectEvent_GetParam(objectEvent, 0), 0);
@ -860,7 +842,7 @@ static void sub_02058214(LocalMapObject *object, ObjectEvent *objectEvent, u32 m
MapObject_SetFlag25(object, FALSE);
MapObject_SetMapID(object, mapNo);
MapObject_SetScriptID(object, ObjectEvent_GetScriptID(objectEvent));
MapObject_SetFlagID(object, ObjectEvent_GetFlagID(objectEvent));
MapObject_SetEventFlag(object, ObjectEvent_GetFlagID(objectEvent));
}
static void sub_02058258(LocalMapObject *object, u32 mapNo, ObjectEvent *objectEvent) {
@ -868,7 +850,7 @@ static void sub_02058258(LocalMapObject *object, u32 mapNo, ObjectEvent *objectE
MapObject_SetFlag25(object, TRUE);
MapObject_SetScriptID(object, ObjectEvent_GetScriptID(objectEvent));
MapObject_SetFlagID(object, ObjectEvent_GetFlagID_AssertScriptIDIsUnset(objectEvent));
MapObject_SetEventFlag(object, ObjectEvent_GetFlagID_AssertScriptIDIsUnset(objectEvent));
MapObject_SetMapID(object, mapNo);
}
@ -1066,3 +1048,140 @@ static void MapObject_SetMapID(LocalMapObject *object, u32 mapId) {
u32 MapObject_GetMapID(LocalMapObject *object) {
return object->mapId;
}
void MapObject_SetSpriteID(LocalMapObject *object, u32 spriteId) {
object->spriteId = spriteId;
}
u32 MapObject_GetSpriteID(LocalMapObject *object) {
return object->spriteId;
}
u32 sub_0205845C(LocalMapObject *object) {
u32 spriteId = MapObject_GetSpriteID(object);
if (sub_0205C334() == TRUE) {
return sub_0205C340(object);
}
return spriteId;
}
/*static*/ void MapObject_SetMovement(LocalMapObject *object, u32 movement) {
object->movement = movement;
}
u32 MapObject_GetMovement(LocalMapObject *object) {
return object->movement;
}
void MapObject_SetType(LocalMapObject *object, u32 type) {
object->type = type;
}
u32 MapObject_GetType(LocalMapObject *object) {
return object->type;
}
void MapObject_SetEventFlag(LocalMapObject *object, u32 eventFlag) {
object->eventFlag = eventFlag;
}
/*static*/ u32 MapObject_GetEventFlag(LocalMapObject *object) {
return object->eventFlag;
}
void MapObject_SetScriptID(LocalMapObject *object, u32 scriptId) {
object->scriptId = scriptId;
}
u32 MapObject_GetScriptID(LocalMapObject *object) {
return object->scriptId;
}
static void MapObject_SetInitialFacingDirection(LocalMapObject *object, u32 initialFacing) {
object->initialFacing = initialFacing;
}
u32 MapObject_GetInitialFacingDirection(LocalMapObject *object) {
return object->initialFacing;
}
void MapObject_SetFacingDirectionDirect(LocalMapObject *object, u32 direction) {
object->previousFacing = object->currentFacing;
object->currentFacing = direction;
}
void MapObject_SetFacingDirection(LocalMapObject *object, u32 direction) {
if (MapObject_GetFlagsBitsMask(object, MAPOBJECTFLAG_UNK7) == 0) {
object->previousFacing = object->currentFacing;
object->currentFacing = direction;
}
}
u32 MapObject_GetFacingDirection(LocalMapObject *object) {
return object->currentFacing;
}
u32 MapObject_GetPreviousFacingDirection(LocalMapObject *object) {
return object->previousFacing;
}
void MapObject_SetNextFacingDirection(LocalMapObject *object, u32 direction) {
object->nextFacingBackup = object->nextFacing;
object->nextFacing = direction;
}
u32 MapObject_GetNextFacingDirection(LocalMapObject *object) {
return object->nextFacing;
}
void MapObject_SetOrQueueFacing(LocalMapObject *object, u32 direction) {
MapObject_SetFacingDirection(object, direction);
MapObject_SetNextFacingDirection(object, direction);
}
void MapObject_SetParam(LocalMapObject *object, s32 value, u32 param) {
switch (param) {
case 0:
object->param[0] = value;
return;
case 1:
object->param[1] = value;
return;
case 2:
object->param[2] = value;
return;
default:
GF_ASSERT(FALSE);
return;
}
}
s32 MapObject_GetParam(LocalMapObject *object, u32 param) {
switch (param) {
case 0:
return object->param[0];
case 1:
return object->param[1];
case 2:
return object->param[2];
default:
GF_ASSERT(FALSE);
return 0;
}
}
void MapObject_SetXRange(LocalMapObject *object, s32 xRange) {
object->xRange = xRange;
}
s32 MapObject_GetXRange(LocalMapObject *object) {
return object->xRange;
}
void MapObject_SetYRange(LocalMapObject *object, s32 yRange) {
object->yRange = yRange;
}
s32 MapObject_GetYRange(LocalMapObject *object) {
return object->yRange;
}

View File

@ -66,11 +66,9 @@ extern void ov05_021E2C58(ScriptContext *ctx, u16 typ, u16 id, u16 word1, s16 wo
extern MessageFormat *ov06_02244210(SaveData *sav, u16 poke, u16 sex, u8 flag, u8 *unk);
extern void ov05_021E2CBC(ScriptContext *ctx, MessageFormat *messageFormat, u8 param2, u32 param3);
extern void ov05_021E2BB8(void *param0, ScriptContext *ctx);
extern u32 MapObject_GetType(LocalMapObject *lastInteracted);
extern BOOL sub_02030F40(void);
extern void sub_02055304(PlayerAvatar *playerAvatar, u32 param1);
extern void sub_02039460(FieldSystem *arg);
extern u32 MapObject_GetParam(LocalMapObject *event, u32 param1);
extern void ov05_021E8128(u32 param0, u8 type, u16 map);
extern void ov05_021E8130(u32 param0, u32 param1);
extern void ov05_021E8158(FieldSystem *fieldSystem);
@ -118,7 +116,6 @@ extern u16 GetPlayerYCoord(PlayerAvatar *playerAvatar);
extern void sub_02058BB4(LocalMapObject *event, VecFx32 *param1);
extern void sub_02058994(LocalMapObject *event, u8 value);
extern void sub_02058E90(LocalMapObject *event, u16 movement);
extern u16 MapObject_GetMovement(LocalMapObject *event);
extern void sub_02058EB0(LocalMapObject *event, u32 param1);
extern u16 sub_02029E0C(SealCase *sealCase);
extern u16 SealCase_CountSealOccurrenceAnywhere(SealCase *sealCase, u16 sealId);

View File

@ -21,7 +21,7 @@ typedef struct SavedMapObject {
u16 mapId;
u16 spriteId;
u16 type;
u16 flagId;
u16 eventFlag;
u16 script;
s16 param[3];
s16 initialX;
@ -54,7 +54,20 @@ struct LocalMapObject {
u32 flags2;
u32 id;
u32 mapId;
u8 padding[0x118]; // todo verify size
u32 spriteId;
u32 movement;
u32 type;
u32 eventFlag;
u32 scriptId;
u32 initialFacing;
u32 currentFacing;
u32 nextFacing;
u32 previousFacing;
u32 nextFacingBackup;
s32 param[3];
s32 xRange;
s32 yRange;
u8 padding[0xDC]; // todo verify size
};
typedef struct ObjectEvent {
@ -170,5 +183,28 @@ BOOL MapObject_TestFlagsBits(LocalMapObject *object, MapObjectFlagBits bits);
void MapObject_SetID(LocalMapObject *object, u32 id);
u32 MapObject_GetID(LocalMapObject *object);
u32 MapObject_GetMapID(LocalMapObject *object);
void MapObject_SetSpriteID(LocalMapObject *object, u32 spriteId);
u32 MapObject_GetSpriteID(LocalMapObject *object);
u32 sub_0205845C(LocalMapObject *object);
u32 MapObject_GetMovement(LocalMapObject *object);
void MapObject_SetType(LocalMapObject *object, u32 type);
u32 MapObject_GetType(LocalMapObject *object);
void MapObject_SetEventFlag(LocalMapObject *object, u32 eventFlag);
void MapObject_SetScriptID(LocalMapObject *object, u32 scriptId);
u32 MapObject_GetScriptID(LocalMapObject *object);
u32 MapObject_GetInitialFacingDirection(LocalMapObject *object);
void MapObject_SetFacingDirectionDirect(LocalMapObject *object, u32 direction);
void MapObject_SetFacingDirection(LocalMapObject *object, u32 direction);
u32 MapObject_GetFacingDirection(LocalMapObject *object);
u32 MapObject_GetPreviousFacingDirection(LocalMapObject *object);
void MapObject_SetNextFacingDirection(LocalMapObject *object, u32 direction);
u32 MapObject_GetNextFacingDirection(LocalMapObject *object);
void MapObject_SetOrQueueFacing(LocalMapObject *object, u32 direction);
void MapObject_SetParam(LocalMapObject *object, s32 value, u32 param);
s32 MapObject_GetParam(LocalMapObject *object, u32 param);
void MapObject_SetXRange(LocalMapObject *object, s32 xRange);
s32 MapObject_GetXRange(LocalMapObject *object);
void MapObject_SetYRange(LocalMapObject *object, s32 yRange);
s32 MapObject_GetYRange(LocalMapObject *object);
#endif // POKEDIAMOND_MAP_OBJECT_H