Skip to content

Commit

Permalink
more
Browse files Browse the repository at this point in the history
  • Loading branch information
red031000 committed May 10, 2024
1 parent 2ce20fa commit dbe94bf
Show file tree
Hide file tree
Showing 12 changed files with 52 additions and 52 deletions.
2 changes: 1 addition & 1 deletion asm/field_take_photo.s
Original file line number Diff line number Diff line change
Expand Up @@ -1048,7 +1048,7 @@ _0206AF8E:
add r1, r4, #0
add r2, r6, #0
add r3, r7, #0
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #0
bne _0206AF8E
add sp, #8
Expand Down
2 changes: 1 addition & 1 deletion asm/include/field_take_photo.inc
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
.public sub_0205E38C
.public MapObject_Remove
.public sub_0205E420
.public MapObjectManager_GetFirstObjectAndIndexWithFlag
.public MapObjectManager_GetNextObjectWithFlagFromIndex
.public sub_0205F1A0
.public MapObject_SetFlagsBits
.public MapObject_ClearFlagsBits
Expand Down
2 changes: 1 addition & 1 deletion asm/include/overlay_01_021F944C.inc
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
.public sub_0205BA70
.public sub_0205E38C
.public sub_0205E420
.public MapObjectManager_GetFirstObjectAndIndexWithFlag
.public MapObjectManager_GetNextObjectWithFlagFromIndex
.public sub_0205F09C
.public MapObjectManager_GetObjectCount
.public MapObjectManager_GetPriority
Expand Down
2 changes: 1 addition & 1 deletion asm/include/unk_020632B0.inc
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
.public GetPlayerXCoord
.public GetPlayerYCoord
.public PlayerAvatar_GetMapObject
.public MapObjectManager_GetFirstObjectAndIndexWithFlag
.public MapObjectManager_GetNextObjectWithFlagFromIndex
.public MapObject_SetFlagsBits
.public MapObject_ClearFlagsBits
.public MapObject_SetSpriteID
Expand Down
2 changes: 1 addition & 1 deletion asm/include/unk_020658D4.inc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
.public PlayerAvatar_GetMapObject
.public FieldSystem_GetPlayerAvatar
.public sub_0205CB00
.public MapObjectManager_GetFirstObjectAndIndexWithFlag
.public MapObjectManager_GetNextObjectWithFlagFromIndex
.public MapObject_SetFlagsBits
.public MapObject_ClearFlagsBits
.public MapObject_GetFlagsBits
Expand Down
12 changes: 6 additions & 6 deletions asm/overlay_01_021F944C.s
Original file line number Diff line number Diff line change
Expand Up @@ -1605,7 +1605,7 @@ ov01_021F9FCC: ; 0x021F9FCC
add r2, sp, #4
mov r3, #1
add r6, r0, #0
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
bne _021FA016
add r7, sp, #0
Expand All @@ -1628,7 +1628,7 @@ _021FA006:
add r1, r7, #0
add r2, sp, #4
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
beq _021F9FEC
_021FA016:
Expand All @@ -1650,7 +1650,7 @@ ov01_021FA01C: ; 0x021FA01C
add r2, sp, #4
mov r3, #1
add r7, r0, #0
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
bne _021FA088
_021FA03A:
Expand Down Expand Up @@ -1688,7 +1688,7 @@ _021FA078:
add r1, sp, #0
add r2, sp, #4
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
beq _021FA03A
_021FA088:
Expand All @@ -1712,7 +1712,7 @@ ov01_021FA094: ; 0x021FA094
add r2, sp, #4
mov r3, #1
add r7, r0, #0
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
bne _021FA0FE
_021FA0B2:
Expand Down Expand Up @@ -1749,7 +1749,7 @@ _021FA0EE:
add r1, sp, #0
add r2, sp, #4
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
beq _021FA0B2
_021FA0FE:
Expand Down
8 changes: 4 additions & 4 deletions asm/unk_020632B0.s
Original file line number Diff line number Diff line change
Expand Up @@ -2063,7 +2063,7 @@ CheckSeenByNpcTrainers: ; 0x020641EC
add r1, sp, #4
add r2, sp, #0xc
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #0
beq _02064264
_0206420E:
Expand Down Expand Up @@ -2104,7 +2104,7 @@ _02064254:
add r1, sp, #4
add r2, sp, #0xc
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #0
bne _0206420E
_02064264:
Expand Down Expand Up @@ -2499,7 +2499,7 @@ sub_02064520: ; 0x02064520
add r1, sp, #0
add r2, sp, #4
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #0
beq _02064570
add r7, sp, #0
Expand All @@ -2523,7 +2523,7 @@ _02064560:
add r1, r7, #0
add r2, sp, #4
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #0
bne _02064540
_02064570:
Expand Down
8 changes: 4 additions & 4 deletions asm/unk_020658D4.s
Original file line number Diff line number Diff line change
Expand Up @@ -1081,7 +1081,7 @@ _0206610C:
add r1, sp, #4
add r2, sp, #8
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
bne _02066148
_0206611A:
Expand All @@ -1103,7 +1103,7 @@ _02066138:
add r1, sp, #4
add r2, sp, #8
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
beq _0206611A
_02066148:
Expand Down Expand Up @@ -1133,7 +1133,7 @@ sub_02066150: ; 0x02066150
add r1, sp, #4
add r2, sp, #8
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
bne _020661C2
_02066182:
Expand Down Expand Up @@ -1164,7 +1164,7 @@ _020661B2:
add r1, sp, #4
add r2, sp, #8
mov r3, #1
bl MapObjectManager_GetFirstObjectAndIndexWithFlag
bl MapObjectManager_GetNextObjectWithFlagFromIndex
cmp r0, #1
beq _02066182
_020661C2:
Expand Down
7 changes: 1 addition & 6 deletions include/map_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -181,12 +181,7 @@ void MapObjectManager_RestoreFromSave(MapObjectManager *mapObjectManager, SavedM
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_GetFirstObjectAndIndexWithFlag(MapObjectManager*, LocalMapObject**, int*, MapObjectFlagBits);
void sub_0205EF48(LocalMapObject* object);
void sub_0205EF5C(LocalMapObject* object);
void sub_0205EF6C(LocalMapObject* object);
u32 FieldSystem_ResolveObjectSpriteID(FieldSystem* fieldSystem, int a1);
void sub_0205EFA4(LocalMapObject* object);
BOOL MapObjectManager_GetNextObjectWithFlagFromIndex(MapObjectManager *manager, LocalMapObject **objectDest, s32 *index, MapObjectFlagBits flag);
void sub_0205EFB4(LocalMapObject* object);
BOOL MapObject_ScriptIdIsFFFF(LocalMapObject* object);
void sub_0205F014(LocalMapObject* object, ObjectEvent* template, u32 map_no);
Expand Down
4 changes: 2 additions & 2 deletions src/field/scrcmd_pokemon_misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -645,7 +645,7 @@ BOOL ScrCmd_699(ScriptContext *ctx) {

height = vec.y;

while (MapObjectManager_GetFirstObjectAndIndexWithFlag(mapObjectManager, &curObj, &unkVar, MAPOBJECTFLAG_ACTIVE) == TRUE) {
while (MapObjectManager_GetNextObjectWithFlagFromIndex(mapObjectManager, &curObj, &unkVar, MAPOBJECTFLAG_ACTIVE) == TRUE) {
if (curObj == playerObj) continue;
MapObject_SetFlagsBits(curObj, MAPOBJECTFLAG_UNK13);
if (MapObject_TestFlagsBits(curObj, MAPOBJECTFLAG_UNK12) == TRUE) {
Expand Down Expand Up @@ -675,7 +675,7 @@ BOOL ScrCmd_700(ScriptContext *ctx) {

playerObj = PlayerAvatar_GetMapObject(fieldSystem->playerAvatar);

while (MapObjectManager_GetFirstObjectAndIndexWithFlag(mapObjectManager, &curObj, &index, MAPOBJECTFLAG_ACTIVE) == TRUE) {
while (MapObjectManager_GetNextObjectWithFlagFromIndex(mapObjectManager, &curObj, &index, MAPOBJECTFLAG_ACTIVE) == TRUE) {
if (curObj == playerObj) continue;
MapObject_ClearFlagsBits(curObj, MAPOBJECTFLAG_UNK13);
}
Expand Down
2 changes: 1 addition & 1 deletion src/field_player_avatar.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ void CreatePlayerAvatarMapObject(PlayerAvatar* avatar, MapObjectManager* man, u3
LocalMapObject* sub_0205C600(MapObjectManager* man) {
int y = 0;
LocalMapObject* mapObj = 0;
while (MapObjectManager_GetFirstObjectAndIndexWithFlag(man, &mapObj, &y, MAPOBJECTFLAG_ACTIVE)) {
while (MapObjectManager_GetNextObjectWithFlagFromIndex(man, &mapObj, &y, MAPOBJECTFLAG_ACTIVE)) {
if (MapObject_GetMovement(mapObj) == TRUE) {
break;
}
Expand Down
53 changes: 29 additions & 24 deletions src/map_object.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ static void sub_0205ED18(LocalMapObject *object);
static void MapObject_Clear(LocalMapObject *object);
static u32 sub_0205ED90(LocalMapObject *object, u32 flagId, u32 objectEventCount, ObjectEvent *objectEvents);
static LocalMapObject *MapObjectManager_GetFirstObjectWithID(MapObjectManager *manager, u32 objectId, u32 flagId);
static void sub_0205EF48(LocalMapObject *object);
static void sub_0205EF5C(LocalMapObject *object);
static void MapObject_NoOp(LocalMapObject *object);
static u32 FieldSystem_ResolveObjectSpriteID(FieldSystem *fieldSystem, s32 spriteId);
static void sub_0205EFA4(LocalMapObject *object);

static void sub_0205EF8C(LocalMapObject *object);

Expand Down Expand Up @@ -235,7 +240,7 @@ void sub_0205E4C8(MapObjectManager *manager) {
do {
if (MapObject_GetFlagsBits(objects, MAPOBJECTFLAG_ACTIVE) != 0 && MapObject_GetFlagsBits(objects, MAPOBJECTFLAG_UNK14) != 0) {
sub_0205F4AC(objects);
sub_0205EF6C(objects);
MapObject_NoOp(objects);
}

i++;
Expand Down Expand Up @@ -298,7 +303,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--;
Expand Down Expand Up @@ -494,7 +499,7 @@ static LocalMapObject *sub_0205EA98(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_0205F544(object) == mapNo) {
return object;
}
Expand Down Expand Up @@ -621,7 +626,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_0205F254(object) == flagId) {
return object;
}
Expand Down Expand Up @@ -665,19 +670,19 @@ LocalMapObject *MapObjectManager_GetFirstActiveObjectWithMovement(MapObjectManag
return NULL;
}

BOOL MapObjectManager_GetFirstObjectAndIndexWithFlag(MapObjectManager* manager, LocalMapObject** object_dest, int* index, MapObjectFlagBits bits) {
int count = MapObjectManager_GetObjectCount(manager);
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;
LocalMapObject *objects = (LocalMapObject *)MapObjectManager_GetConstObjects(manager);
LocalMapObject *object = objects + *index;
do {
(*index)++;

if (bits == (MapObjectFlagBits)MapObject_GetFlagsBits(object, bits)) {
*object_dest = object;
if (flag == (MapObjectFlagBits)MapObject_GetFlagsBits(object, flag)) {
*objectDest = object;
return TRUE;
}

Expand All @@ -687,36 +692,36 @@ BOOL MapObjectManager_GetFirstObjectAndIndexWithFlag(MapObjectManager* manager,
return FALSE;
}

void sub_0205EF48(LocalMapObject* object) {
static void sub_0205EF48(LocalMapObject *object) {
MapObject_SetFlagsBits(object, MAPOBJECTFLAG_UNK2);
sub_0205EF5C(object);
}

void sub_0205EF5C(LocalMapObject* object) {
MapObject_ClearFlagsBits(object, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK26 |
MAPOBJECTFLAG_UNK24 |
MAPOBJECTFLAG_UNK20 |
MAPOBJECTFLAG_UNK15));
static void sub_0205EF5C(LocalMapObject *object) {
MapObject_ClearFlagsBits(object, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK26 | MAPOBJECTFLAG_UNK24 |
MAPOBJECTFLAG_UNK20 | MAPOBJECTFLAG_UNK15));
}

void sub_0205EF6C(LocalMapObject* object) {
// No-op
static void MapObject_NoOp(LocalMapObject *object) {
// NoOp
}

u32 FieldSystem_ResolveObjectSpriteID(FieldSystem* fieldSystem, int a1) {
if (a1 >= 101 && a1 <= 117) {
a1 = FieldSystem_VarGetObjectEventGraphicsId(fieldSystem, (u16)(a1 - 101));
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 a1;
return spriteId;
}

static void sub_0205EF8C(LocalMapObject* object) {
static void sub_0205EF8C(LocalMapObject *object) {
if (MapObject_GetFlagsBits(object, MAPOBJECTFLAG_UNK12) != 0) {
sub_02061070(object);
}
}

void sub_0205EFA4(LocalMapObject* object) {
static void sub_0205EFA4(LocalMapObject *object) {
sub_0205ECE0(object);
sub_0205FD20(object);
}
Expand Down

0 comments on commit dbe94bf

Please sign in to comment.