mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
more
This commit is contained in:
parent
05944c7f69
commit
f08180fc01
|
|
@ -3,75 +3,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_020552A4
|
||||
sub_020552A4: ; 0x020552A4
|
||||
push {r3-r7, lr}
|
||||
sub sp, #0x8
|
||||
mov r1, #0x0
|
||||
str r1, [sp, #0x4]
|
||||
str r1, [sp, #0x0]
|
||||
add r1, sp, #0x0
|
||||
add r2, sp, #0x4
|
||||
mov r3, #0x1
|
||||
add r5, r0, #0x0
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x0
|
||||
beq _020552DE
|
||||
add r4, sp, #0x0
|
||||
add r6, sp, #0x4
|
||||
mov r7, #0x1
|
||||
_020552C4:
|
||||
ldr r0, [sp, #0x0]
|
||||
bl MapObject_GetMovement
|
||||
cmp r0, #0x1
|
||||
beq _020552DE
|
||||
add r0, r5, #0x0
|
||||
add r1, r4, #0x0
|
||||
add r2, r6, #0x0
|
||||
add r3, r7, #0x0
|
||||
bl MapObjectManager_GetNextObjectWithFlagFromIndex
|
||||
cmp r0, #0x0
|
||||
bne _020552C4
|
||||
_020552DE:
|
||||
ldr r0, [sp, #0x0]
|
||||
add sp, #0x8
|
||||
pop {r3-r7, pc}
|
||||
|
||||
thumb_func_start PlayerAvatar_CreateMapObject
|
||||
PlayerAvatar_CreateMapObject: ; 0x020552E4
|
||||
push {r4, lr}
|
||||
bl sub_020552A4
|
||||
add r4, r0, #0x0
|
||||
bne _020552F2
|
||||
bl GF_AssertFail
|
||||
_020552F2:
|
||||
add r0, r4, #0x0
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start PlayerAvatar_GetFacingDirection
|
||||
PlayerAvatar_GetFacingDirection: ; 0x020552F8
|
||||
push {r3, lr}
|
||||
bl PlayerAvatar_GetMapObject
|
||||
bl MapObject_GetFacingDirection
|
||||
pop {r3, pc}
|
||||
|
||||
thumb_func_start sub_02055304
|
||||
sub_02055304: ; 0x02055304
|
||||
push {r4, lr}
|
||||
add r4, r1, #0x0
|
||||
bl PlayerAvatar_GetMapObject
|
||||
add r1, r4, #0x0
|
||||
bl MapObject_SetFacingDirection
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_02055314
|
||||
sub_02055314: ; 0x02055314
|
||||
push {r3, lr}
|
||||
bl PlayerAvatar_GetMapObject
|
||||
bl MapObject_GetNextFacingDirection
|
||||
pop {r3, pc}
|
||||
|
||||
thumb_func_start PlayerAvatar_GetXCoord
|
||||
PlayerAvatar_GetXCoord: ; 0x02055320
|
||||
push {r3, lr}
|
||||
|
|
|
|||
|
|
@ -283,7 +283,7 @@ sub_02048AE4: ; 0x02048AE4
|
|||
ldr r1, [r3, #0x8]
|
||||
ldr r2, [r3, #0xc]
|
||||
ldr r3, [r3, #0x10]
|
||||
bl PlayerAvatar_CreateWithParamsExtended
|
||||
bl PlayerAvatar_CreateWithParams
|
||||
str r0, [r5, #0x38]
|
||||
add r0, r5, #0x0
|
||||
bl sub_02034AC8
|
||||
|
|
@ -326,7 +326,7 @@ sub_02048B50: ; 0x02048B50
|
|||
add r2, r0, #0x0
|
||||
ldr r0, [r5, #0x34]
|
||||
add r1, r4, #0x0
|
||||
bl PlayerAvatar_CreateWithParams
|
||||
bl PlayerAvatar_CreateWithActiveMapObject
|
||||
str r0, [r5, #0x38]
|
||||
ldr r0, [r5, #0x34]
|
||||
bl sub_02058768
|
||||
|
|
|
|||
|
|
@ -767,7 +767,7 @@ _0204B8F6:
|
|||
bne _0204B910
|
||||
ldr r0, [r5, #0x38]
|
||||
mov r1, #0x0
|
||||
bl sub_02055304
|
||||
bl PlayerAvatar_SetFacingDirection
|
||||
mov r0, #0x4
|
||||
str r0, [r4, #0x0]
|
||||
b _0204B98E
|
||||
|
|
@ -789,7 +789,7 @@ _0204B922:
|
|||
ble _0204B98E
|
||||
ldr r0, [r5, #0x38]
|
||||
ldr r1, [r4, #0x4]
|
||||
bl sub_02055304
|
||||
bl PlayerAvatar_SetFacingDirection
|
||||
mov r0, #0x4
|
||||
str r0, [r4, #0x0]
|
||||
b _0204B98E
|
||||
|
|
@ -814,14 +814,14 @@ _0204B93A:
|
|||
_0204B964:
|
||||
ldr r0, [r5, #0x38]
|
||||
ldr r1, [r4, #0x4]
|
||||
bl sub_02055304
|
||||
bl PlayerAvatar_SetFacingDirection
|
||||
mov r0, #0x4
|
||||
str r0, [r4, #0x0]
|
||||
b _0204B98E
|
||||
_0204B972:
|
||||
ldr r0, [r5, #0x38]
|
||||
ldr r1, [r4, #0x4]
|
||||
bl sub_02055304
|
||||
bl PlayerAvatar_SetFacingDirection
|
||||
ldr r0, [r5, #0x38]
|
||||
bl PlayerAvatar_GetMapObject
|
||||
bl MapObject_PauseMovement
|
||||
|
|
|
|||
|
|
@ -1126,7 +1126,7 @@ _0204D37C:
|
|||
ldrh r2, [r2, #0x0]
|
||||
ldrsb r3, [r7, r3]
|
||||
ldr r0, [r0, #0x34]
|
||||
bl PlayerAvatar_CreateWithParamsExtended
|
||||
bl PlayerAvatar_CreateWithParams
|
||||
add r7, r0, #0x0
|
||||
bne _0204D3B2
|
||||
bl GF_AssertFail
|
||||
|
|
@ -2424,7 +2424,7 @@ _0204DD5E:
|
|||
ldr r0, [r0, #0x0]
|
||||
add r0, r0, r7
|
||||
ldr r0, [r0, #0x8]
|
||||
bl sub_02055304
|
||||
bl PlayerAvatar_SetFacingDirection
|
||||
add r0, r4, #0x0
|
||||
mov r1, #0x80
|
||||
bl MapObject_SetFlagsBits
|
||||
|
|
@ -5707,7 +5707,7 @@ sub_0204F6DC: ; 0x0204F6DC
|
|||
ldr r0, [r0, #0x0]
|
||||
ldr r0, [r0, #0x54]
|
||||
ldr r0, [r0, #0x38]
|
||||
bl sub_02055304
|
||||
bl PlayerAvatar_SetFacingDirection
|
||||
bl sub_02031190
|
||||
ldr r1, _0204F708 ; =UNK_021C5A68
|
||||
lsl r0, r0, #0x3
|
||||
|
|
@ -5734,7 +5734,7 @@ sub_0204F70C: ; 0x0204F70C
|
|||
ldr r2, [r3, #0x0]
|
||||
add r0, r2, r0
|
||||
ldr r0, [r0, #0x8]
|
||||
bl sub_02055304
|
||||
bl PlayerAvatar_SetFacingDirection
|
||||
pop {r4, pc}
|
||||
.balign 4
|
||||
_0204F728: .word UNK_021C5A68
|
||||
|
|
|
|||
|
|
@ -1920,7 +1920,7 @@ sub_02056740: ; 0x02056740
|
|||
bl sub_02056494
|
||||
str r0, [sp, #0x0]
|
||||
add r0, r5, #0x0
|
||||
bl sub_02055314
|
||||
bl PlayerAvatar_GetNextFacingDirection
|
||||
add r6, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r1, r7, #0x0
|
||||
|
|
@ -2347,7 +2347,7 @@ sub_02056AB8: ; 0x02056AB8
|
|||
bl sub_02056494
|
||||
str r0, [sp, #0x0]
|
||||
add r0, r5, #0x0
|
||||
bl sub_02055314
|
||||
bl PlayerAvatar_GetNextFacingDirection
|
||||
add r6, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r1, r7, #0x0
|
||||
|
|
@ -3079,7 +3079,7 @@ sub_02057060: ; 0x02057060
|
|||
pop {r3-r7, pc}
|
||||
_02057086:
|
||||
add r0, r6, #0x0
|
||||
bl sub_02055314
|
||||
bl PlayerAvatar_GetNextFacingDirection
|
||||
add r7, r0, #0x0
|
||||
add r0, r6, #0x0
|
||||
bl sub_02055430
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ sub_0205E5B4: ; 0x0205E5B4
|
|||
add r5, r0, #0x0
|
||||
add r4, r1, #0x0
|
||||
bl MapObject_GetManager
|
||||
bl sub_020552A4
|
||||
bl MapObjectManager_GetFirstActiveObjectWithMovement1
|
||||
cmp r0, #0x0
|
||||
bne _0205E5CC
|
||||
mov r0, #0x0
|
||||
|
|
|
|||
|
|
@ -3892,15 +3892,15 @@
|
|||
.extern Save_PlayerHasAllRegisInParty
|
||||
.extern sub_02054F50
|
||||
.extern sub_0205502C
|
||||
.extern PlayerAvatar_CreateWithParamsExtended
|
||||
.extern PlayerAvatar_CreateWithParams
|
||||
.extern PlayerAvatar_CreateWithActiveMapObject
|
||||
.extern sub_02055108
|
||||
.extern PlayerAvatar_FreeToHeap
|
||||
.extern PlayerAvatar_DeleteFromMap
|
||||
.extern sub_020552A4
|
||||
.extern MapObjectManager_GetFirstActiveObjectWithMovement1
|
||||
.extern PlayerAvatar_GetFacingDirection
|
||||
.extern sub_02055304
|
||||
.extern sub_02055314
|
||||
.extern PlayerAvatar_SetFacingDirection
|
||||
.extern PlayerAvatar_GetNextFacingDirection
|
||||
.extern PlayerAvatar_GetXCoord
|
||||
.extern PlayerAvatar_GetZCoord
|
||||
.extern sub_02055338
|
||||
|
|
|
|||
|
|
@ -1157,7 +1157,7 @@ ov05_021E6904: ; 0x021E6904
|
|||
pop {r4, pc}
|
||||
_021E6916:
|
||||
add r0, r4, #0
|
||||
bl sub_02055314
|
||||
bl PlayerAvatar_GetNextFacingDirection
|
||||
add r1, r0, #0
|
||||
add r0, r4, #0
|
||||
bl ov05_021E727C
|
||||
|
|
|
|||
|
|
@ -37,12 +37,12 @@ _021E7532:
|
|||
str r0, [r1, #0x10]
|
||||
_021E7536:
|
||||
ldr r0, [r1]
|
||||
ldr r3, _021E7540 ; =sub_02055304
|
||||
ldr r3, _021E7540 ; =PlayerAvatar_SetFacingDirection
|
||||
ldr r0, [r0, #0x38]
|
||||
ldr r1, [r1, #0x10]
|
||||
bx r3
|
||||
.balign 4, 0
|
||||
_021E7540: .word sub_02055304
|
||||
_021E7540: .word PlayerAvatar_SetFacingDirection
|
||||
|
||||
thumb_func_start ov05_021E7544
|
||||
ov05_021E7544: ; 0x021E7544
|
||||
|
|
@ -264,7 +264,7 @@ _021E771C:
|
|||
ldr r0, [r5]
|
||||
mov r1, #1
|
||||
ldr r0, [r0, #0x38]
|
||||
bl sub_02055304
|
||||
bl PlayerAvatar_SetFacingDirection
|
||||
ldr r0, [r5, #4]
|
||||
mov r1, #1
|
||||
str r1, [r0]
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "nitro/types.h"
|
||||
|
||||
#include "field_system.h"
|
||||
#include "player_avatar.h"
|
||||
#include "task.h"
|
||||
|
||||
typedef struct UnkStruct021E7358 {
|
||||
|
|
@ -11,12 +12,12 @@ typedef struct UnkStruct021E7358 {
|
|||
u32 Unk04;
|
||||
u32 Unk08;
|
||||
FieldSystem *fieldSystem;
|
||||
u32 Unk10;
|
||||
PlayerAvatar *avatar;
|
||||
|
||||
} UnkStruct021E7358;
|
||||
|
||||
BOOL ov05_021E72FC(FieldSystem *fieldSystem, u32 param1);
|
||||
void ov05_021E7358(FieldSystem *fieldSystem, u32 param1, u32 param2);
|
||||
BOOL ov05_021E72FC(FieldSystem *fieldSystem, PlayerAvatar *avatar);
|
||||
void ov05_021E7358(FieldSystem *fieldSystem, PlayerAvatar *avatar, u32 param2);
|
||||
u32 ov05_021E7388(u32 param0);
|
||||
BOOL ov05_021E73B4(TaskManager *taskManager);
|
||||
UnkStruct021E7358 *ov05_021E74D4(u32 param0);
|
||||
|
|
|
|||
|
|
@ -8,19 +8,18 @@
|
|||
#include "map_object.h"
|
||||
#include "unk_020051F4.h"
|
||||
|
||||
extern LocalMapObject *PlayerAvatar_GetMapObject(u32 param0);
|
||||
extern LocalMapObject *PlayerAvatar_GetMapObject(PlayerAvatar *avatar);
|
||||
extern BOOL sub_02054B30(u8 param0);
|
||||
extern BOOL sub_02054B3C(u8 param0);
|
||||
extern BOOL sub_02054B48(u8 param0);
|
||||
extern BOOL sub_02054B54(u8 param0);
|
||||
extern BOOL sub_02057254(u32 param0);
|
||||
extern BOOL sub_02057254(PlayerAvatar *avatar);
|
||||
extern u32 sub_0205AFDC(u32 param0, u32 param1);
|
||||
extern void sub_02057260(u32 param0, u32 param1);
|
||||
extern void sub_02055304(u32 param0, u32 param1);
|
||||
extern BOOL sub_02056B74(u32 param0, LocalMapObject *object, u32 param2);
|
||||
extern void sub_02057260(PlayerAvatar *avatar, u32 param1);
|
||||
extern BOOL sub_02056B74(PlayerAvatar *avatar, LocalMapObject *object, u32 param2);
|
||||
|
||||
BOOL ov05_021E72FC(FieldSystem *fieldSystem, u32 param1) {
|
||||
u8 res = (u8)sub_02058720(PlayerAvatar_GetMapObject(param1));
|
||||
BOOL ov05_021E72FC(FieldSystem *fieldSystem, PlayerAvatar *avatar) {
|
||||
u8 res = (u8)sub_02058720(PlayerAvatar_GetMapObject(avatar));
|
||||
u32 r2;
|
||||
if (sub_02054B30(res) == TRUE) {
|
||||
r2 = 3;
|
||||
|
|
@ -37,14 +36,14 @@ BOOL ov05_021E72FC(FieldSystem *fieldSystem, u32 param1) {
|
|||
}
|
||||
return FALSE;
|
||||
label:
|
||||
ov05_021E7358(fieldSystem, param1, r2);
|
||||
ov05_021E7358(fieldSystem, avatar, r2);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void ov05_021E7358(FieldSystem *fieldSystem, u32 param1, u32 param2) {
|
||||
void ov05_021E7358(FieldSystem *fieldSystem, PlayerAvatar *avatar, u32 param2) {
|
||||
UnkStruct021E7358 *res = ov05_021E74D4(24);
|
||||
res->fieldSystem = fieldSystem;
|
||||
res->Unk10 = param1;
|
||||
res->avatar = avatar;
|
||||
res->Unk00 = param2;
|
||||
PlaySE(SEQ_SE_DP_F209);
|
||||
FieldSystem_CreateTask(fieldSystem, ov05_021E73B4, res);
|
||||
|
|
@ -66,7 +65,7 @@ u32 ov05_021E7388(u32 param0) {
|
|||
|
||||
BOOL ov05_021E73B4(TaskManager *taskManager) {
|
||||
UnkStruct021E7358 *strct = TaskManager_GetEnvironment(taskManager);
|
||||
LocalMapObject *playerObject = PlayerAvatar_GetMapObject(strct->Unk10);
|
||||
LocalMapObject *playerObject = PlayerAvatar_GetMapObject(strct->avatar);
|
||||
u8 res2 = (u8)sub_02058720(playerObject);
|
||||
switch (strct->Unk08) {
|
||||
case 0:
|
||||
|
|
@ -74,18 +73,18 @@ BOOL ov05_021E73B4(TaskManager *taskManager) {
|
|||
strct->Unk08++;
|
||||
break;
|
||||
case 1:
|
||||
if (!sub_02057254(strct->Unk10)) {
|
||||
if (!sub_02057254(strct->avatar)) {
|
||||
break;
|
||||
}
|
||||
sub_02057260(strct->Unk10, sub_0205AFDC(strct->Unk00, 12));
|
||||
sub_02055304(strct->Unk10, strct->Unk00);
|
||||
sub_02057260(strct->avatar, sub_0205AFDC(strct->Unk00, 12));
|
||||
PlayerAvatar_SetFacingDirection(strct->avatar, strct->Unk00);
|
||||
strct->Unk08++;
|
||||
strct->Unk04 = 7;
|
||||
break;
|
||||
case 2:
|
||||
if (strct->Unk04 == 2 || strct->Unk04 == 4 || strct->Unk04 == 6) {
|
||||
strct->Unk00 = ov05_021E7388(strct->Unk00);
|
||||
sub_02055304(strct->Unk10, strct->Unk00);
|
||||
PlayerAvatar_SetFacingDirection(strct->avatar, strct->Unk00);
|
||||
}
|
||||
if (--(strct->Unk04)) {
|
||||
break;
|
||||
|
|
@ -101,13 +100,13 @@ BOOL ov05_021E73B4(TaskManager *taskManager) {
|
|||
} else {
|
||||
strct->Unk00 = ov05_021E7388(strct->Unk00);
|
||||
}
|
||||
if (sub_02056B74(strct->Unk10, playerObject, strct->Unk00) == FALSE) {
|
||||
if (sub_02056B74(strct->avatar, playerObject, strct->Unk00) == FALSE) {
|
||||
strct->Unk08 = 1;
|
||||
break;
|
||||
}
|
||||
MapObject_ClearFlagsBits(playerObject, MAPOBJECTFLAG_UNK7);
|
||||
MapObject_ClearFlagsBits(playerObject, MAPOBJECTFLAG_UNK8);
|
||||
sub_02055304(strct->Unk10, strct->Unk00);
|
||||
PlayerAvatar_SetFacingDirection(strct->avatar, strct->Unk00);
|
||||
ov05_021E74F8(strct);
|
||||
sub_020054F0(1624, 0);
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -13403,7 +13403,7 @@ ov18_0223FD8C: ; 0x0223FD8C
|
|||
ldr r0, [r0, #4]
|
||||
ldr r0, [r0, #0x40]
|
||||
ldr r0, [r0, #0x38]
|
||||
bl sub_02055304
|
||||
bl PlayerAvatar_SetFacingDirection
|
||||
bl sub_02031190
|
||||
ldr r1, _0223FDE0 ; =0x022513A0
|
||||
lsl r0, r0, #3
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include "map_header.h"
|
||||
#include "map_object.h"
|
||||
#include "overlay_06.h"
|
||||
#include "player_avatar.h"
|
||||
#include "player_data.h"
|
||||
#include "save_local_field_data.h"
|
||||
#include "start_menu.h"
|
||||
|
|
@ -65,7 +66,6 @@ extern u16 PlayerAvatar_GetZCoord(PlayerAvatar *playerAvatar);
|
|||
extern u8 GetMetatileBehavior(FieldSystem *fieldSystem, s32 x, s32 z);
|
||||
extern void PlayerAvatar_GetCoordsInFront(PlayerAvatar *playerAvatar, s32 *x, s32 *z);
|
||||
extern BOOL Field_PlayerCanSurfOnTile(PlayerAvatar *fieldPlayerAvatar, u32 standingTile, u32 facingTile);
|
||||
extern u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *playerAvatar);
|
||||
extern BOOL MetatileBehavior_IsRockClimbInDirection(u32 facingTile, u32 facingDirection);
|
||||
extern BOOL MetatileBehavior_IsWaterfall(u8 facingTile);
|
||||
extern LocalFieldData *Save_LocalFieldData_Get(SaveData *save);
|
||||
|
|
@ -157,7 +157,7 @@ void FieldMove_InitCheckData(FieldSystem *fieldSystem, FieldMoveCheckData *check
|
|||
}
|
||||
}
|
||||
|
||||
s32 x = PlayerAvatar_GetXCoord(fieldSystem->playerAvatar);
|
||||
u32 x = PlayerAvatar_GetXCoord(fieldSystem->playerAvatar);
|
||||
s32 z = PlayerAvatar_GetZCoord(fieldSystem->playerAvatar);
|
||||
u32 standingTile = GetMetatileBehavior(fieldSystem, x, z);
|
||||
|
||||
|
|
|
|||
|
|
@ -6,19 +6,18 @@
|
|||
|
||||
static PlayerAvatar *PlayerAvatar_Create(void);
|
||||
static void PlayerAvatar_Setup(PlayerAvatar *avatar, u32 state, u32 gender, PlayerSaveData *playerSaveData);
|
||||
static void PlayerAvatar_CreateMapObjectWithParams(PlayerAvatar *avatar, MapObjectManager *manager, u32 sprite, u32 direction, s32 x, s32 z);
|
||||
static void PlayerAvatar_CreateMapObjectWithParams(PlayerAvatar *avatar, MapObjectManager *manager, u32 sprite, u32 direction, u32 x, s32 z);
|
||||
static LocalMapObject *PlayerAvatar_GetActiveMapObjectWithMovement1(MapObjectManager *manager);
|
||||
|
||||
extern u32 PlayerAvatar_GetSpriteByStateAndGender(u32 state, u32 gender);
|
||||
extern u32 PlayerSaveData_GetState(PlayerSaveData *playerSaveData);
|
||||
extern LocalMapObject *PlayerAvatar_CreateMapObject(MapObjectManager *manager);
|
||||
extern void PlayerAvatar_SetMapObject(PlayerAvatar *avatar, LocalMapObject *mapObject);
|
||||
extern LocalMapObject *PlayerAvatar_GetMapObject(PlayerAvatar *avatar);
|
||||
extern void ov05_021EDBC8(PlayerAvatar *avatar);
|
||||
extern u32 PlayerAvatar_GetState(PlayerAvatar *avatar);
|
||||
extern s32 PlayerAvatar_GetXCoord(PlayerAvatar *avatar);
|
||||
extern u32 PlayerAvatar_GetXCoord(PlayerAvatar *avatar);
|
||||
extern s32 PlayerAvatar_GetZCoord(PlayerAvatar *avatar);
|
||||
extern u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *avatar);
|
||||
extern u32 ov06_0224ABAC(LocalMapObject *mapObject, s32 x, s32 z, u32 direction, u32 param4);
|
||||
extern u32 ov06_0224ABAC(LocalMapObject *mapObject, u32 x, s32 z, u32 direction, u32 param4);
|
||||
extern void sub_02055450(PlayerAvatar *avatar, u32 param1);
|
||||
extern void PlayerAvatar_SetPlayerSaveData(PlayerAvatar *avatar, PlayerSaveData *saveData);
|
||||
extern void sub_0205536C(PlayerAvatar *avatar, u32 param1);
|
||||
|
|
@ -33,7 +32,7 @@ extern void sub_02055460(PlayerAvatar *avatar, u32 param1);
|
|||
extern void sub_020556C8(PlayerAvatar *avatar, u32 param1);
|
||||
extern void sub_0205574C(PlayerAvatar *avatar, u32 param1);
|
||||
|
||||
PlayerAvatar *PlayerAvatar_CreateWithParamsExtended(MapObjectManager *manager, s32 x, s32 z, u32 direction, u32 state, u32 gender, PlayerSaveData *playerSaveData) {
|
||||
PlayerAvatar *PlayerAvatar_CreateWithParams(MapObjectManager *manager, u32 x, s32 z, u32 direction, u32 state, u32 gender, PlayerSaveData *playerSaveData) {
|
||||
PlayerAvatar *avatar = PlayerAvatar_Create();
|
||||
PlayerAvatar_Setup(avatar, state, gender, playerSaveData);
|
||||
u32 sprite = PlayerAvatar_GetSpriteByStateAndGender(state, gender);
|
||||
|
|
@ -41,11 +40,11 @@ PlayerAvatar *PlayerAvatar_CreateWithParamsExtended(MapObjectManager *manager, s
|
|||
return avatar;
|
||||
}
|
||||
|
||||
PlayerAvatar *PlayerAvatar_CreateWithParams(MapObjectManager *manager, PlayerSaveData *playerSaveData, u32 gender) {
|
||||
PlayerAvatar *PlayerAvatar_CreateWithActiveMapObject(MapObjectManager *manager, PlayerSaveData *playerSaveData, u32 gender) {
|
||||
PlayerAvatar *avatar = PlayerAvatar_Create();
|
||||
u32 state = PlayerSaveData_GetState(playerSaveData);
|
||||
PlayerAvatar_Setup(avatar, state, gender, playerSaveData);
|
||||
LocalMapObject *mapObject = PlayerAvatar_CreateMapObject(manager);
|
||||
LocalMapObject *mapObject = PlayerAvatar_GetActiveMapObjectWithMovement1(manager);
|
||||
MapObject_SetSpriteID(mapObject, PlayerAvatar_GetSpriteByStateAndGender(state, gender));
|
||||
MapObject_SetFlagsBits(mapObject, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK13 | MAPOBJECTFLAG_KEEP));
|
||||
MapObject_ClearFlagsBits(mapObject, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK8 | MAPOBJECTFLAG_UNK7));
|
||||
|
|
@ -60,7 +59,7 @@ void sub_02055108(PlayerAvatar *avatar) {
|
|||
MapObject_GetManager(mapObject);
|
||||
ov05_021EDBC8(avatar);
|
||||
if (PlayerAvatar_GetState(avatar) == PLAYER_STATE_SURFING) {
|
||||
s32 x = PlayerAvatar_GetXCoord(avatar);
|
||||
u32 x = PlayerAvatar_GetXCoord(avatar);
|
||||
s32 z = PlayerAvatar_GetZCoord(avatar);
|
||||
u32 direction = PlayerAvatar_GetFacingDirection(avatar);
|
||||
sub_02055450(avatar, ov06_0224ABAC(mapObject, x, z, direction, 1));
|
||||
|
|
@ -98,7 +97,7 @@ static void PlayerAvatar_Setup(PlayerAvatar *avatar, u32 state, u32 gender, Play
|
|||
sub_0205574C(avatar, 1);
|
||||
}
|
||||
|
||||
static void PlayerAvatar_CreateMapObjectWithParams(PlayerAvatar *avatar, MapObjectManager *manager, u32 sprite, u32 direction, s32 x, s32 z) {
|
||||
static void PlayerAvatar_CreateMapObjectWithParams(PlayerAvatar *avatar, MapObjectManager *manager, u32 sprite, u32 direction, u32 x, s32 z) {
|
||||
LocalMapObject *mapObject = MapObject_Create(manager, x, z, direction, sprite, 1, 1);
|
||||
GF_ASSERT(mapObject != NULL);
|
||||
MapObject_SetID(mapObject, 255);
|
||||
|
|
@ -115,3 +114,32 @@ static void PlayerAvatar_CreateMapObjectWithParams(PlayerAvatar *avatar, MapObje
|
|||
MapObject_SetFlag29(mapObject, TRUE);
|
||||
PlayerAvatar_SetMapObject(avatar, mapObject);
|
||||
}
|
||||
|
||||
LocalMapObject *MapObjectManager_GetFirstActiveObjectWithMovement1(MapObjectManager *manager) {
|
||||
s32 index = 0;
|
||||
LocalMapObject *mapObject = NULL;
|
||||
while (MapObjectManager_GetNextObjectWithFlagFromIndex(manager, &mapObject, &index, MAPOBJECTFLAG_ACTIVE)) {
|
||||
if (MapObject_GetMovement(mapObject) == 1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return mapObject;
|
||||
}
|
||||
|
||||
static LocalMapObject *PlayerAvatar_GetActiveMapObjectWithMovement1(MapObjectManager *manager) {
|
||||
LocalMapObject *mapObject = MapObjectManager_GetFirstActiveObjectWithMovement1(manager);
|
||||
GF_ASSERT(mapObject != NULL);
|
||||
return mapObject;
|
||||
}
|
||||
|
||||
u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *avatar) {
|
||||
return MapObject_GetFacingDirection(PlayerAvatar_GetMapObject(avatar));
|
||||
}
|
||||
|
||||
void PlayerAvatar_SetFacingDirection(PlayerAvatar *avatar, u32 direction) {
|
||||
MapObject_SetFacingDirection(PlayerAvatar_GetMapObject(avatar), direction);
|
||||
}
|
||||
|
||||
u32 PlayerAvatar_GetNextFacingDirection(PlayerAvatar *avatar) {
|
||||
return MapObject_GetNextFacingDirection(PlayerAvatar_GetMapObject(avatar));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
#include "msgdata.h"
|
||||
#include "options.h"
|
||||
#include "party.h"
|
||||
#include "player_avatar.h"
|
||||
#include "player_data.h"
|
||||
#include "pokedex.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
|
|
@ -67,7 +68,6 @@ extern MessageFormat *ov06_02244210(SaveData *sav, u16 poke, u16 sex, u8 flag, u
|
|||
extern void ov05_021E2CBC(ScriptContext *ctx, MessageFormat *messageFormat, u8 param2, u32 param3);
|
||||
extern void ov05_021E2BB8(void *param0, ScriptContext *ctx);
|
||||
extern BOOL sub_02030F40(void);
|
||||
extern void sub_02055304(PlayerAvatar *playerAvatar, u32 param1);
|
||||
extern void sub_02039460(FieldSystem *arg);
|
||||
extern void ov05_021E8128(u32 param0, u8 type, u16 map);
|
||||
extern void ov05_021E8130(u32 param0, u32 param1);
|
||||
|
|
@ -99,7 +99,6 @@ extern const ObjectEvent *sub_02034B6C(FieldSystem *fieldSystem);
|
|||
extern u32 sub_02059D1C(LocalMapObject *target);
|
||||
extern VecFx32 *MapObject_GetPositionVector(LocalMapObject *target);
|
||||
extern void ov05_021EF5E0(VecFx32 *target, u32 param1);
|
||||
extern u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *playerAvatar);
|
||||
extern u32 sub_02059E74(u32 direction);
|
||||
extern void ov05_021F1EC0(LocalMapObject *event, u32 param1);
|
||||
extern u16 PlayerAvatar_GetXCoord(PlayerAvatar *playerAvatar);
|
||||
|
|
@ -1027,13 +1026,13 @@ static BOOL sub_0203A4E0(ScriptContext *ctx) {
|
|||
if (gSystem.newKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
|
||||
return TRUE;
|
||||
} else if (gSystem.newKeys & PAD_KEY_UP) {
|
||||
sub_02055304(ctx->fieldSystem->playerAvatar, 0);
|
||||
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 0);
|
||||
} else if (gSystem.newKeys & PAD_KEY_DOWN) {
|
||||
sub_02055304(ctx->fieldSystem->playerAvatar, 1);
|
||||
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 1);
|
||||
} else if (gSystem.newKeys & PAD_KEY_LEFT) {
|
||||
sub_02055304(ctx->fieldSystem->playerAvatar, 2);
|
||||
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 2);
|
||||
} else if (gSystem.newKeys & PAD_KEY_RIGHT) {
|
||||
sub_02055304(ctx->fieldSystem->playerAvatar, 3);
|
||||
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 3);
|
||||
} else if (gSystem.newKeys & PAD_BUTTON_X) {
|
||||
sub_02039460(ctx->fieldSystem);
|
||||
} else {
|
||||
|
|
@ -1258,7 +1257,7 @@ static BOOL sub_0203A94C(ScriptContext *ctx) {
|
|||
|
||||
if (tmp != 0xFFFF) {
|
||||
sub_0201BD7C(*printerNumber);
|
||||
sub_02055304(ctx->fieldSystem->playerAvatar, tmp);
|
||||
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, tmp);
|
||||
*varPtr = 0;
|
||||
return TRUE;
|
||||
} else {
|
||||
|
|
@ -1296,7 +1295,7 @@ static BOOL sub_0203AA0C(ScriptContext *ctx) {
|
|||
}
|
||||
|
||||
if (tmp != 0xFFFF) {
|
||||
sub_02055304(ctx->fieldSystem->playerAvatar, tmp);
|
||||
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, tmp);
|
||||
*unk = 0;
|
||||
return TRUE;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -13,10 +13,14 @@ struct PlayerAvatar {
|
|||
u8 padding0[0x3C];
|
||||
}; // TODO: populate once we know more
|
||||
|
||||
PlayerAvatar *PlayerAvatar_CreateWithParamsExtended(MapObjectManager *mapObjectManager, s32 x, s32 z, u32 direction, u32 state, u32 gender, PlayerSaveData *playerSaveData);
|
||||
PlayerAvatar *PlayerAvatar_CreateWithParams(MapObjectManager *mapObjectManager, PlayerSaveData *playerSaveData, u32 gender);
|
||||
PlayerAvatar *PlayerAvatar_CreateWithParams(MapObjectManager *mapObjectManager, u32 x, s32 z, u32 direction, u32 state, u32 gender, PlayerSaveData *playerSaveData);
|
||||
PlayerAvatar *PlayerAvatar_CreateWithActiveMapObject(MapObjectManager *mapObjectManager, PlayerSaveData *playerSaveData, u32 gender);
|
||||
void sub_02055108(PlayerAvatar *avatar);
|
||||
void PlayerAvatar_FreeToHeap(PlayerAvatar *avatar);
|
||||
void PlayerAvatar_DeleteFromMap(PlayerAvatar *avatar);
|
||||
LocalMapObject *MapObjectManager_GetFirstActiveObjectWithMovement1(MapObjectManager *manager);
|
||||
u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *avatar);
|
||||
void PlayerAvatar_SetFacingDirection(PlayerAvatar *avatar, u32 direction);
|
||||
u32 PlayerAvatar_GetNextFacingDirection(PlayerAvatar *avatar);
|
||||
|
||||
#endif // POKEDIAMOND_PLAYER_AVATAR_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user