mirror of
https://github.com/pret/pokediamond.git
synced 2026-09-08 09:06:36 -05:00
more
This commit is contained in:
@@ -4,119 +4,11 @@
|
||||
.extern UNK_020F6364
|
||||
.extern sub_02057EE0
|
||||
.extern sub_02057F18
|
||||
.extern sub_0205815C
|
||||
.extern sub_0205818C
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
MapObjectManager_GetFirstObjectAndIndexWithFlag: ; 0x020580F4
|
||||
push {r3-r7, lr}
|
||||
add r5, r2, #0x0
|
||||
add r4, r0, #0x0
|
||||
str r1, [sp, #0x0]
|
||||
add r6, r3, #0x0
|
||||
bl MapObjectManager_GetObjectCount
|
||||
add r7, r0, #0x0
|
||||
ldr r0, [r5, #0x0]
|
||||
cmp r0, r7
|
||||
blt _0205810E
|
||||
mov r0, #0x0
|
||||
pop {r3-r7, pc}
|
||||
_0205810E:
|
||||
add r0, r4, #0x0
|
||||
bl MapObjectManager_GetConstObjects
|
||||
mov r1, #0x4a
|
||||
ldr r2, [r5, #0x0]
|
||||
lsl r1, r1, #0x2
|
||||
mul r1, r2
|
||||
add r4, r0, r1
|
||||
_0205811E:
|
||||
ldr r0, [r5, #0x0]
|
||||
add r1, r6, #0x0
|
||||
add r0, r0, #0x1
|
||||
str r0, [r5, #0x0]
|
||||
add r0, r4, #0x0
|
||||
bl MapObject_GetFlagsBits
|
||||
cmp r6, r0
|
||||
bne _02058138
|
||||
ldr r0, [sp, #0x0]
|
||||
str r4, [r0, #0x0]
|
||||
mov r0, #0x1
|
||||
pop {r3-r7, pc}
|
||||
_02058138:
|
||||
mov r0, #0x4a
|
||||
lsl r0, r0, #0x2
|
||||
add r4, r4, r0
|
||||
ldr r0, [r5, #0x0]
|
||||
cmp r0, r7
|
||||
blt _0205811E
|
||||
mov r0, #0x0
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start sub_02058148
|
||||
sub_02058148: ; 0x02058148
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
mov r1, #0x4
|
||||
bl MapObject_SetFlagsBits
|
||||
add r0, r4, #0x0
|
||||
bl sub_0205815C
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start sub_0205815C
|
||||
sub_0205815C: ; 0x0205815C
|
||||
ldr r3, _02058164 ; =MapObject_ClearFlagsBits
|
||||
ldr r1, _02058168 ; =0x05108000
|
||||
bx r3
|
||||
nop
|
||||
_02058164: .word MapObject_ClearFlagsBits
|
||||
_02058168: .word 0x05108000
|
||||
|
||||
thumb_func_start sub_0205816C
|
||||
sub_0205816C: ; 0x0205816C
|
||||
bx lr
|
||||
.balign 4
|
||||
|
||||
thumb_func_start FieldSystem_ResolveObjectSpriteID
|
||||
FieldSystem_ResolveObjectSpriteID: ; 0x02058170
|
||||
push {r3, lr}
|
||||
cmp r1, #0x65
|
||||
blt _02058186
|
||||
cmp r1, #0x75
|
||||
bgt _02058186
|
||||
sub r1, #0x65
|
||||
lsl r1, r1, #0x10
|
||||
lsr r1, r1, #0x10
|
||||
bl sub_02039504
|
||||
add r1, r0, #0x0
|
||||
_02058186:
|
||||
add r0, r1, #0x0
|
||||
pop {r3, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start sub_0205818C
|
||||
sub_0205818C: ; 0x0205818C
|
||||
push {r4, lr}
|
||||
mov r1, #0x1
|
||||
lsl r1, r1, #0xc
|
||||
add r4, r0, #0x0
|
||||
bl MapObject_GetFlagsBits
|
||||
cmp r0, #0x0
|
||||
beq _020581A2
|
||||
add r0, r4, #0x0
|
||||
bl sub_02059D1C
|
||||
_020581A2:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_020581A4
|
||||
sub_020581A4: ; 0x020581A4
|
||||
push {r4, lr}
|
||||
add r4, r0, #0x0
|
||||
bl sub_02057EE0
|
||||
add r0, r4, #0x0
|
||||
bl sub_02058EE8
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_020581B4
|
||||
sub_020581B4: ; 0x020581B4
|
||||
push {r4, lr}
|
||||
|
||||
@@ -1982,8 +1982,8 @@ _020394FE:
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start sub_02039504
|
||||
sub_02039504: ; 0x02039504
|
||||
thumb_func_start FieldSystem_VarGetObjectEventGraphicsId
|
||||
FieldSystem_VarGetObjectEventGraphicsId: ; 0x02039504
|
||||
push {r3-r5, lr}
|
||||
add r4, r1, #0x0
|
||||
add r5, r0, #0x0
|
||||
|
||||
@@ -210,7 +210,7 @@ sub_0204B490: ; 0x0204B490
|
||||
add r1, sp, #0x0
|
||||
add r2, sp, #0x4
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x1
|
||||
bne _0204B4F8
|
||||
mov r6, #0x0
|
||||
@@ -240,7 +240,7 @@ _0204B4E8:
|
||||
add r1, sp, #0x0
|
||||
add r2, sp, #0x4
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x1
|
||||
beq _0204B4B6
|
||||
_0204B4F8:
|
||||
|
||||
@@ -271,7 +271,7 @@ sub_020552A4: ; 0x020552A4
|
||||
add r2, sp, #0x4
|
||||
mov r3, #0x1
|
||||
add r5, r0, #0x0
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x0
|
||||
beq _020552DE
|
||||
add r4, sp, #0x0
|
||||
@@ -286,7 +286,7 @@ _020552C4:
|
||||
add r1, r4, #0x0
|
||||
add r2, r6, #0x0
|
||||
add r3, r7, #0x0
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x0
|
||||
bne _020552C4
|
||||
_020552DE:
|
||||
|
||||
@@ -175,7 +175,7 @@ sub_0205C6BC: ; 0x0205C6BC
|
||||
add r1, sp, #0x4
|
||||
add r2, sp, #0xc
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x0
|
||||
beq _0205C734
|
||||
_0205C6DE:
|
||||
@@ -216,7 +216,7 @@ _0205C724:
|
||||
add r1, sp, #0x4
|
||||
add r2, sp, #0xc
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x0
|
||||
bne _0205C6DE
|
||||
_0205C734:
|
||||
@@ -599,7 +599,7 @@ sub_0205C9F0: ; 0x0205C9F0
|
||||
add r1, sp, #0x0
|
||||
add r2, sp, #0x4
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x0
|
||||
beq _0205CA40
|
||||
add r7, sp, #0x0
|
||||
@@ -623,7 +623,7 @@ _0205CA30:
|
||||
add r1, r7, #0x0
|
||||
add r2, sp, #0x4
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x0
|
||||
bne _0205CA10
|
||||
_0205CA40:
|
||||
|
||||
@@ -441,7 +441,7 @@ _0205E810:
|
||||
add r1, sp, #0x4
|
||||
add r2, sp, #0x8
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x1
|
||||
bne _0205E84C
|
||||
_0205E81E:
|
||||
@@ -463,7 +463,7 @@ _0205E83C:
|
||||
add r1, sp, #0x4
|
||||
add r2, sp, #0x8
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x1
|
||||
beq _0205E81E
|
||||
_0205E84C:
|
||||
@@ -492,7 +492,7 @@ sub_0205E854: ; 0x0205E854
|
||||
add r1, sp, #0x4
|
||||
add r2, sp, #0x8
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x1
|
||||
bne _0205E8C6
|
||||
_0205E886:
|
||||
@@ -523,7 +523,7 @@ _0205E8B6:
|
||||
add r1, sp, #0x4
|
||||
add r2, sp, #0x8
|
||||
mov r3, #0x1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x1
|
||||
beq _0205E886
|
||||
_0205E8C6:
|
||||
|
||||
@@ -2680,7 +2680,7 @@
|
||||
.extern sub_02039460
|
||||
.extern GetVarPointer
|
||||
.extern FieldSystem_VarGet
|
||||
.extern sub_02039504
|
||||
.extern FieldSystem_VarGetObjectEventGraphicsId
|
||||
.extern FieldSystem_FlagCheck
|
||||
.extern FieldSystem_FlagSet
|
||||
.extern FlagClear
|
||||
@@ -4001,7 +4001,7 @@
|
||||
.extern MapObject_CreateFromMultipleObjectEvents
|
||||
.extern MapObjectManager_GetFirstActiveObjectByID
|
||||
.extern MapObjectManager_GetFirstActiveObjectWithMovement
|
||||
.extern MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
.extern MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
.extern sub_0205829C
|
||||
.extern sub_020582A8
|
||||
.extern sub_020582F8
|
||||
|
||||
@@ -1585,7 +1585,7 @@ ov05_021F2B10: ; 0x021F2B10
|
||||
add r2, sp, #4
|
||||
mov r3, #1
|
||||
add r7, r0, #0
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #1
|
||||
bne _021F2B6A
|
||||
_021F2B2E:
|
||||
@@ -1615,7 +1615,7 @@ _021F2B5A:
|
||||
add r1, sp, #0
|
||||
add r2, sp, #4
|
||||
mov r3, #1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #1
|
||||
beq _021F2B2E
|
||||
_021F2B6A:
|
||||
@@ -1636,7 +1636,7 @@ ov05_021F2B70: ; 0x021F2B70
|
||||
add r2, sp, #4
|
||||
mov r3, #1
|
||||
add r7, r0, #0
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #1
|
||||
bne _021F2BEE
|
||||
_021F2B8E:
|
||||
@@ -1682,7 +1682,7 @@ _021F2BDE:
|
||||
add r1, sp, #0
|
||||
add r2, sp, #4
|
||||
mov r3, #1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #1
|
||||
beq _021F2B8E
|
||||
_021F2BEE:
|
||||
@@ -1705,7 +1705,7 @@ ov05_021F2BF8: ; 0x021F2BF8
|
||||
add r2, sp, #4
|
||||
mov r3, #1
|
||||
add r7, r0, #0
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #1
|
||||
bne _021F2C74
|
||||
_021F2C16:
|
||||
@@ -1750,7 +1750,7 @@ _021F2C64:
|
||||
add r1, sp, #0
|
||||
add r2, sp, #4
|
||||
mov r3, #1
|
||||
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #1
|
||||
beq _021F2C16
|
||||
_021F2C74:
|
||||
|
||||
@@ -24,8 +24,12 @@ static void sub_02057E90(LocalMapObject *object, MapObjectManager *manager);
|
||||
static void MapObject_Clear(LocalMapObject *object);
|
||||
static u32 sub_02057F90(LocalMapObject *object, u32 flagId, u32 objectEventCount, ObjectEvent *objectEvents);
|
||||
static LocalMapObject *MapObjectManager_GetFirstObjectWithID(MapObjectManager *manager, u32 objectId, u32 flagId);
|
||||
|
||||
extern BOOL MapObjectManager_GetFirstObjectAndIndexWithFlag(MapObjectManager *manager, LocalMapObject **object, s32 *index, MapObjectFlagBits bits);
|
||||
static void sub_02058148(LocalMapObject *object);
|
||||
/*static*/ void sub_0205815C(LocalMapObject *object);
|
||||
static void MapObject_NoOp(LocalMapObject *object);
|
||||
static u32 FieldSystem_ResolveObjectSpriteID(FieldSystem *fieldSystem, s32 spriteId);
|
||||
/*static*/ void sub_0205818C(LocalMapObject *object);
|
||||
static void sub_020581A4(LocalMapObject *object);
|
||||
|
||||
extern void MapObjectManager_SetFieldSystemPtr(MapObjectManager *manager, FieldSystem *fieldSystem);
|
||||
extern void MapObjectManager_SetObjectCount(MapObjectManager *manager, u32 objectCount);
|
||||
@@ -46,7 +50,6 @@ extern void sub_02058258(LocalMapObject *object, u32 mapNo, ObjectEvent *objectE
|
||||
extern FieldSystem *MapObjectManager_GetFieldSystemPtr(MapObjectManager *manager);
|
||||
extern void sub_02057E90(LocalMapObject *object, MapObjectManager *manager);
|
||||
extern void sub_0205844C(LocalMapObject *object, u32 mapNo);
|
||||
extern void sub_020581A4(LocalMapObject *object);
|
||||
extern void sub_020581B4(LocalMapObject *object);
|
||||
extern void MapObject_SetFlagsBits(LocalMapObject *object, MapObjectFlagBits bits);
|
||||
extern MapObjectManager *MapObjectManager_GetMapObjectManager(MapObjectManager *manager);
|
||||
@@ -68,7 +71,6 @@ 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 void sub_02058148(LocalMapObject *object);
|
||||
extern void MapObject_ClearFlagsBits(LocalMapObject *object, MapObjectFlagBits bits);
|
||||
extern BOOL sub_02058934(LocalMapObject *object);
|
||||
extern MapObjectManager *MapObject_GetManager(LocalMapObject *object);
|
||||
@@ -92,7 +94,6 @@ extern void sub_020586AC(LocalMapObject *object, LocalMapObject_UnkCallback call
|
||||
extern void sub_020586C0(LocalMapObject *object, LocalMapObject_UnkCallback callback);
|
||||
extern void sub_020586D4(LocalMapObject *object, LocalMapObject_UnkCallback callback);
|
||||
extern void sub_020586C8(LocalMapObject *object);
|
||||
extern void sub_0205816C(LocalMapObject *object);
|
||||
extern BOOL MapObject_CheckFlag14(LocalMapObject *object);
|
||||
extern void sub_020586DC(LocalMapObject *object);
|
||||
extern void sub_02057AEC(MapObjectManager *manager, LocalMapObject *object);
|
||||
@@ -145,7 +146,6 @@ extern void MapObject_SetPositionVec(LocalMapObject *object, VecFx32 *coords);
|
||||
extern void MapObject_SetManager(LocalMapObject *object, MapObjectManager *manager);
|
||||
extern void MapObject_ClearHeldMovement(LocalMapObject *object);
|
||||
extern void sub_0205866C(LocalMapObject *object);
|
||||
extern void sub_0205815C(LocalMapObject *object);
|
||||
extern void MapObject_GetPositionVec(LocalMapObject *object, VecFx32 *position);
|
||||
extern void MapObject_SetPreviousX(LocalMapObject *object, u32 previousX);
|
||||
extern void MapObject_SetPreviousHeight(LocalMapObject *object, u32 previousHeight);
|
||||
@@ -157,7 +157,6 @@ extern void sub_0205832C(SysTask *task, LocalMapObject *object);
|
||||
extern u32 MapObjectManager_GetPriority(MapObjectManager *manager);
|
||||
extern void sub_02058554(LocalMapObject *object, SysTask *task);
|
||||
extern u16 ObjectEvent_GetSpriteID(ObjectEvent *objectEvent);
|
||||
extern u32 FieldSystem_ResolveObjectSpriteID(FieldSystem *fieldSystem, u16 spriteId);
|
||||
extern u16 ObjectEvent_GetMovement(ObjectEvent *objectEvent);
|
||||
extern u16 ObjectEvent_GetType(ObjectEvent *objectEvent);
|
||||
extern u16 ObjectEvent_GetScript(ObjectEvent *objectEvent);
|
||||
@@ -189,6 +188,9 @@ extern void sub_020586C0(LocalMapObject *object, LocalMapObject_UnkCallback call
|
||||
extern LocalMapObject_UnkCallback sub_02058D48(UnkLMOCallbackStruct2 *callbackStruct);
|
||||
extern void sub_020586D4(LocalMapObject *object, LocalMapObject_UnkCallback callback);
|
||||
extern const LocalMapObject *MapObjectManager_GetConstObjects(MapObjectManager *manager);
|
||||
extern u16 FieldSystem_VarGetObjectEventGraphicsId(FieldSystem *fieldSystem, u16 spriteId);
|
||||
extern u32 sub_02059D1C(LocalMapObject *object);
|
||||
extern void sub_02058EE8(LocalMapObject *object);
|
||||
|
||||
MapObjectManager *MapObjectManager_Init(FieldSystem *fieldSystem, u32 objectCount, u32 priority) {
|
||||
MapObjectManager *ret = MapObjectManager_New(objectCount);
|
||||
@@ -383,7 +385,7 @@ void sub_02057750(MapObjectManager *manager) {
|
||||
do {
|
||||
if (MapObject_GetFlagsBits(objects, MAPOBJECTFLAG_ACTIVE) != 0 && MapObject_GetFlagsBits(objects, MAPOBJECTFLAG_UNK14) != 0) {
|
||||
sub_020586C8(objects);
|
||||
sub_0205816C(objects);
|
||||
MapObject_NoOp(objects);
|
||||
}
|
||||
|
||||
i++;
|
||||
@@ -418,7 +420,7 @@ void FieldSystem_SyncMapObjectsToSaveEx(FieldSystem *fieldSystem, MapObjectManag
|
||||
s32 index = 0;
|
||||
LocalMapObject *object;
|
||||
|
||||
while (MapObjectManager_GetFirstObjectAndIndexWithFlag(manager, &object, &index, MAPOBJECTFLAG_ACTIVE)) { //MapObjectManager_GetNextActiveObject? this is an iterator however
|
||||
while (MapObjectManager_GetNextObjectWithFlagFromIndex(manager, &object, &index, MAPOBJECTFLAG_ACTIVE)) { //MapObjectManager_GetNextActiveObject? this is an iterator however
|
||||
SavedMapObject_InitFromLocalMapObject(fieldSystem, object, savedObjects);
|
||||
|
||||
count--;
|
||||
@@ -611,7 +613,7 @@ static LocalMapObject *sub_02057C98(MapObjectManager *manager, u32 id, u32 mapNo
|
||||
s32 index = 0;
|
||||
LocalMapObject *object;
|
||||
|
||||
while (MapObjectManager_GetFirstObjectAndIndexWithFlag(manager, &object, &index, MAPOBJECTFLAG_ACTIVE) == TRUE) {
|
||||
while (MapObjectManager_GetNextObjectWithFlagFromIndex(manager, &object, &index, MAPOBJECTFLAG_ACTIVE) == TRUE) {
|
||||
if (MapObject_CheckFlag25(object) == TRUE && MapObject_GetID(object) == id && sub_02058750(object) == mapNo) {
|
||||
return object;
|
||||
}
|
||||
@@ -738,7 +740,7 @@ static LocalMapObject *MapObjectManager_GetFirstObjectWithID(MapObjectManager *m
|
||||
s32 index = 0;
|
||||
LocalMapObject *object;
|
||||
|
||||
while (MapObjectManager_GetFirstObjectAndIndexWithFlag(manager, &object, &index, MAPOBJECTFLAG_ACTIVE) == TRUE) {
|
||||
while (MapObjectManager_GetNextObjectWithFlagFromIndex(manager, &object, &index, MAPOBJECTFLAG_ACTIVE) == TRUE) {
|
||||
if (MapObject_GetID(object) == objectId && sub_02058450(object) == flagId) {
|
||||
return object;
|
||||
}
|
||||
@@ -781,3 +783,59 @@ LocalMapObject *MapObjectManager_GetFirstActiveObjectWithMovement(MapObjectManag
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BOOL MapObjectManager_GetNextObjectWithFlagFromIndex(MapObjectManager *manager, LocalMapObject **objectDest, s32 *index, MapObjectFlagBits flag) {
|
||||
s32 count = MapObjectManager_GetObjectCount(manager);
|
||||
if (*index >= count) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
LocalMapObject *objects = (LocalMapObject *)MapObjectManager_GetConstObjects(manager);
|
||||
LocalMapObject *object = objects + *index;
|
||||
do {
|
||||
(*index)++;
|
||||
|
||||
if (flag == (MapObjectFlagBits)MapObject_GetFlagsBits(object, flag)) {
|
||||
*objectDest = object;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
object++;
|
||||
} while (*index < count);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void sub_02058148(LocalMapObject *object) {
|
||||
MapObject_SetFlagsBits(object, MAPOBJECTFLAG_UNK2);
|
||||
sub_0205815C(object);
|
||||
}
|
||||
|
||||
/*static*/ void sub_0205815C(LocalMapObject *object) {
|
||||
MapObject_ClearFlagsBits(object, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK26 | MAPOBJECTFLAG_UNK24 |
|
||||
MAPOBJECTFLAG_UNK20 | MAPOBJECTFLAG_UNK15));
|
||||
}
|
||||
|
||||
static void MapObject_NoOp(LocalMapObject *object) {
|
||||
// NoOp
|
||||
}
|
||||
|
||||
static u32 FieldSystem_ResolveObjectSpriteID(FieldSystem *fieldSystem, s32 spriteId) {
|
||||
//BUG: index out of range, should be < not <=
|
||||
//TODO: check these with sprite constants, these should be variable sprites but this starts at 101 not 100
|
||||
if (spriteId >= 101 && spriteId <= 117) {
|
||||
spriteId = FieldSystem_VarGetObjectEventGraphicsId(fieldSystem, (u16)(spriteId - 101));
|
||||
}
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
/*static*/ void sub_0205818C(LocalMapObject *object) {
|
||||
if (MapObject_GetFlagsBits(object, MAPOBJECTFLAG_UNK12) != 0) {
|
||||
sub_02059D1C(object);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_020581A4(LocalMapObject *object) {
|
||||
sub_02057EE0(object);
|
||||
sub_02058EE8(object);
|
||||
}
|
||||
|
||||
@@ -126,5 +126,6 @@ void MapObjectManager_RestoreFromSave(MapObjectManager *manager, SavedMapObject
|
||||
void MapObject_CreateFromMultipleObjectEvents(MapObjectManager *manager, u32 mapNo, u32 objectEventCount, ObjectEvent *objectEvents);
|
||||
LocalMapObject *MapObjectManager_GetFirstActiveObjectByID(MapObjectManager *manager, u32 id);
|
||||
LocalMapObject *MapObjectManager_GetFirstActiveObjectWithMovement(MapObjectManager *manager, u32 movement);
|
||||
BOOL MapObjectManager_GetNextObjectWithFlagFromIndex(MapObjectManager *manager, LocalMapObject **objectDest, s32 *index, MapObjectFlagBits flag);
|
||||
|
||||
#endif //POKEDIAMOND_MAP_OBJECT_H
|
||||
|
||||
Reference in New Issue
Block a user