Field Map Template

This commit is contained in:
Adrienn Tindall
2024-05-17 15:39:50 -04:00
parent ba35728f4d
commit 9c6eca2f70
7 changed files with 160 additions and 163 deletions

View File

@@ -3,6 +3,6 @@
#include "overlay_manager.h"
extern const OverlayManagerTemplate Unk_ov5_021F89B0;
extern const OverlayManagerTemplate gFieldMapTemplate;
#endif // POKEPLATINUM_CONST_OV5_021F89B0_H

View File

@@ -14,6 +14,6 @@ void ov5_021F1188(UnkStruct_ov5_021DF47C * param0, u32 param1);
void ov5_021F11C0(UnkStruct_ov5_021DF47C * param0, u32 param1, u32 param2);
UnkStruct_02073B50 * ov5_021F11FC(UnkStruct_ov5_021DF47C * param0, u32 param1);
UnkStruct_ov101_021D5D90 * ov5_021F121C(const MapObject * param0, const VecFx32 * param1);
void ov5_021F1328(UnkStruct_ov5_021DF47C * param0);
void FieldEffect_InitRenderObject(UnkStruct_ov5_021DF47C * param0);
#endif // POKEPLATINUM_OV5_021F10E8_H

View File

@@ -12,7 +12,7 @@
PlayerAvatar * PlayerAvatar_Init(const MapObjectManager * param0, int param1, int param2, int param3, int param4, int param5, int param6, PlayerData * param7);
PlayerAvatar * sub_0205E820(const MapObjectManager * param0, PlayerData * param1, int param2);
void sub_0205E884(PlayerAvatar * param0, int param1);
void PlayerAvatar_InitDraw(PlayerAvatar * param0, int param1);
void Player_Delete(PlayerAvatar * param0);
void Player_DeleteAll(PlayerAvatar * param0);
MapObject * sub_0205EA24(const MapObjectManager * param0);

View File

@@ -116,16 +116,16 @@ static void ov5_021D1790(FieldSystem * param0);
static void ov5_021D17EC(FieldSystem * param0);
static void ov5_021D1878(FieldSystem * param0);
static void ov5_021D1968(FieldSystem * param0);
static int ov5_021D0DA4(OverlayManager * param0, int * param1);
static int ov5_021D0F68(OverlayManager * param0, int * param1);
static int ov5_021D0FB4(OverlayManager * param0, int * param1);
static BOOL ov5_021D11CC(FieldSystem * param0);
static int FieldMap_Init(OverlayManager * param0, int * param1);
static int FieldMap_Main(OverlayManager * param0, int * param1);
static int FieldMap_Exit(OverlayManager * param0, int * param1);
static BOOL FieldMap_ChangeZone(FieldSystem * param0);
static void ov5_021D134C(FieldSystem * param0, u8 param1);
static BOOL ov5_021D119C(FieldSystem * param0);
static void ov5_021D0D80(void * param0);
static void ov5_021D13B4(FieldSystem * param0);
static int ov5_021D1178(FieldSystem * param0);
static BOOL ov5_021D1A78(FieldSystem * param0);
static BOOL FieldMap_InDistortionWorld(FieldSystem * param0);
static UnkStruct_ov5_021D1A68 * ov5_021D1A14(int param0, int param1);
static const int * ov5_021D1A68(const UnkStruct_ov5_021D1A68 * param0);
static const int ov5_021D1A6C(const UnkStruct_ov5_021D1A68 * param0);
@@ -151,13 +151,12 @@ static void ov5_021D0D80 (void * param0)
inline_ov5_021D0D80(v0);
}
static int ov5_021D0DA4 (OverlayManager * param0, int * param1)
static int FieldMap_Init (OverlayManager * param0, int * param1)
{
u16 v0;
FieldSystem * v1;
FieldSystem * fieldSystem;
int v2 = 0;
v1 = OverlayManager_Args(param0);
fieldSystem = OverlayManager_Args(param0);
switch (*param1) {
case 0:
@@ -169,13 +168,13 @@ static int ov5_021D0DA4 (OverlayManager * param0, int * param1)
sub_0200F32C(0);
sub_0200F32C(1);
ov5_021D173C(v1);
sub_020531A0(v1);
ov5_021D173C(fieldSystem);
sub_020531A0(fieldSystem);
if (v1->unk_74->unk_00_20) {
if (fieldSystem->unk_74->unk_00_20) {
Overlay_LoadByID(FS_OVERLAY_ID(overlay6), 2);
switch (ov5_021D1178(v1)) {
switch (ov5_021D1178(fieldSystem)) {
case 0:
Overlay_LoadByID(FS_OVERLAY_ID(overlay8), 2);
break;
@@ -188,12 +187,12 @@ static int ov5_021D0DA4 (OverlayManager * param0, int * param1)
}
}
Heap_Create(3, 4, v1->unk_74->unk_04);
GF_ASSERT(v1->unk_04 == NULL);
Heap_Create(3, 4, fieldSystem->unk_74->unk_04);
GF_ASSERT(fieldSystem->unk_04 == NULL);
v1->unk_04 = Heap_AllocFromHeap(4, sizeof(FieldSystem_sub2));
MI_CpuClear8(v1->unk_04, sizeof(FieldSystem_sub2));
v1->unk_04->unk_04 = ov5_021D1A94(v1, 4, 8);
fieldSystem->unk_04 = Heap_AllocFromHeap(4, sizeof(FieldSystem_sub2));
MI_CpuClear8(fieldSystem->unk_04, sizeof(FieldSystem_sub2));
fieldSystem->unk_04->unk_04 = ov5_021D1A94(fieldSystem, 4, 8);
ov5_021D1414();
@@ -205,40 +204,40 @@ static int ov5_021D0DA4 (OverlayManager * param0, int * param1)
ov5_021D154C();
GXLayers_SwapDisplay();
v1->unk_08 = sub_02018340(4);
ov5_021D1444(v1->unk_08);
fieldSystem->unk_08 = sub_02018340(4);
ov5_021D1444(fieldSystem->unk_08);
sub_0205D8CC(0, 1);
sub_0203F5C0(v1, 4);
sub_0203F5C0(fieldSystem, 4);
break;
case 1:
ov5_021D1790(v1);
ov5_021EF7A0(v1->unk_30);
ov5_021D1790(fieldSystem);
ov5_021EF7A0(fieldSystem->unk_30);
v1->unk_A4 = ov5_021E15F4(4);
fieldSystem->unk_A4 = ov5_021E15F4(4);
ov5_021F0824(v1);
ov5_021D17EC(v1);
ov5_021D1878(v1);
ov5_021D1968(v1);
ov5_021F0824(fieldSystem);
ov5_021D17EC(fieldSystem);
ov5_021D1878(fieldSystem);
ov5_021D1968(fieldSystem);
if (v1->unk_04->unk_0C != NULL) {
u16 v3 = sub_0203A74C(sub_0203A790(v1->saveData));
ov5_021D5F24(v1->unk_04->unk_0C, v3);
if (fieldSystem->unk_04->unk_0C != NULL) {
u16 v3 = sub_0203A74C(sub_0203A790(fieldSystem->saveData));
ov5_021D5F24(fieldSystem->unk_04->unk_0C, v3);
}
sub_020556A0(v1, v1->unk_1C->unk_00);
sub_0203F5C0(v1, 3);
sub_020556A0(fieldSystem, fieldSystem->unk_1C->unk_00);
sub_0203F5C0(fieldSystem, 3);
v1->unk_04->unk_1C = ov5_021EF3A8(4);
ov5_021EF3DC(v1->unk_04->unk_1C);
v1->unk_04->unk_20 = ov5_021EF4BC(4, v1->unk_04->unk_1C);
fieldSystem->unk_04->unk_1C = ov5_021EF3A8(4);
ov5_021EF3DC(fieldSystem->unk_04->unk_1C);
fieldSystem->unk_04->unk_20 = ov5_021EF4BC(4, fieldSystem->unk_04->unk_1C);
break;
case 2:
ov5_021D5BD8(v1);
ov5_021D5BD8(fieldSystem);
break;
case 3:
if (ov5_021D5BF4(v1)) {
v1->unk_68 = 1;
if (ov5_021D5BF4(fieldSystem)) {
fieldSystem->unk_68 = 1;
v2 = 1;
}
break;
@@ -248,115 +247,115 @@ static int ov5_021D0DA4 (OverlayManager * param0, int * param1)
return v2;
}
static int ov5_021D0F68 (OverlayManager * param0, int * param1)
static int FieldMap_Main (OverlayManager * param0, int * param1)
{
FieldSystem * v0;
FieldSystem * fieldSystem;
v0 = OverlayManager_Args(param0);
fieldSystem = OverlayManager_Args(param0);
if (ov5_021D119C(v0)) {
sub_02055D94(v0);
ov5_021D13B4(v0);
ov5_021EA714(v0, 1, 1);
if (ov5_021D119C(fieldSystem)) {
sub_02055D94(fieldSystem);
ov5_021D13B4(fieldSystem);
ov5_021EA714(fieldSystem, 1, 1);
if (ov5_021D11CC(v0)) {
if (FieldMap_ChangeZone(fieldSystem)) {
(void)0;
}
}
ov5_021D134C(v0, v0->unk_C0);
ov5_021D134C(fieldSystem, fieldSystem->unk_C0);
if (v0->unk_68) {
if (fieldSystem->unk_68) {
return 0;
} else {
return 1;
}
}
static int ov5_021D0FB4 (OverlayManager * param0, int * param1)
static int FieldMap_Exit (OverlayManager * param0, int * param1)
{
FieldSystem * v0;
FieldSystem * fieldSystem;
v0 = OverlayManager_Args(param0);
ov5_021E8188(v0, v0->unk_28);
fieldSystem = OverlayManager_Args(param0);
ov5_021E8188(fieldSystem, fieldSystem->unk_28);
switch (*param1) {
case 0:
sub_02068368(v0);
ov5_021E9338(v0->unk_28);
sub_02068368(fieldSystem);
ov5_021E9338(fieldSystem->unk_28);
v0->unk_1C->unk_08 = Player_XPos(v0->playerAvatar);
v0->unk_1C->unk_0C = Player_ZPos(v0->playerAvatar);
v0->unk_1C->unk_10 = Player_Dir(v0->playerAvatar);
fieldSystem->unk_1C->unk_08 = Player_XPos(fieldSystem->playerAvatar);
fieldSystem->unk_1C->unk_0C = Player_ZPos(fieldSystem->playerAvatar);
fieldSystem->unk_1C->unk_10 = Player_Dir(fieldSystem->playerAvatar);
ov5_021EF300(v0->unk_A0);
ov5_021EF300(fieldSystem->unk_A0);
{
GF_ASSERT(v0->unk_50 != 0);
ov5_021E924C(v0->unk_28);
GF_ASSERT(fieldSystem->unk_50 != 0);
ov5_021E924C(fieldSystem->unk_28);
}
ov5_021D3CAC(v0->unk_50);
ov5_021D3D7C(v0->unk_50);
ov5_021D41B4(&v0->unk_54);
ov5_021D5E8C(v0->unk_04->unk_10);
ov5_021D5EAC(v0->unk_04->unk_10);
ov5_021D3CAC(fieldSystem->unk_50);
ov5_021D3D7C(fieldSystem->unk_50);
ov5_021D41B4(&fieldSystem->unk_54);
ov5_021D5E8C(fieldSystem->unk_04->unk_10);
ov5_021D5EAC(fieldSystem->unk_04->unk_10);
v0->unk_04->unk_10 = NULL;
fieldSystem->unk_04->unk_10 = NULL;
sub_02061BF0(v0->unk_38);
ov5_021ECC78(v0->unk_38);
sub_02061BF0(fieldSystem->unk_38);
ov5_021ECC78(fieldSystem->unk_38);
sub_02062C30(v0->unk_38);
ov5_021DF500(v0->unk_40);
sub_02062C30(fieldSystem->unk_38);
ov5_021DF500(fieldSystem->unk_40);
ov5_021D1A70(v0->unk_34);
v0->unk_34 = NULL;
ov5_021E1608(v0->unk_A4);
ov5_021D1A70(fieldSystem->unk_34);
fieldSystem->unk_34 = NULL;
ov5_021E1608(fieldSystem->unk_A4);
(*param1)++;
break;
case 1:
if (ov5_021E9300(v0->unk_28) == 1) {
ov5_021EFA10(&v0->unk_30);
ov5_021E92E4(v0->unk_28);
ov5_021EFB30(&v0->unk_A8);
ov5_021D5BA8(v0);
ov5_021D5278(&v0->unk_4C);
ov5_021E1B20(v0->unk_64);
ov5_021DD9C8(v0->unk_04->unk_08);
if (ov5_021E9300(fieldSystem->unk_28) == 1) {
ov5_021EFA10(&fieldSystem->unk_30);
ov5_021E92E4(fieldSystem->unk_28);
ov5_021EFB30(&fieldSystem->unk_A8);
ov5_021D5BA8(fieldSystem);
ov5_021D5278(&fieldSystem->unk_4C);
ov5_021E1B20(fieldSystem->unk_64);
ov5_021DD9C8(fieldSystem->unk_04->unk_08);
if (v0->unk_04->unk_0C != NULL) {
ov5_021D5EF8(v0->unk_04->unk_0C);
if (fieldSystem->unk_04->unk_0C != NULL) {
ov5_021D5EF8(fieldSystem->unk_04->unk_0C);
}
ov5_021EF4F8(v0->unk_04->unk_20);
ov5_021EF3BC(v0->unk_04->unk_1C);
sub_02055CBC(v0->unk_04->unk_18);
ov5_021D57D8(&v0->unk_48);
ov5_021D5894(&v0->unk_44);
ov5_021EF4F8(fieldSystem->unk_04->unk_20);
ov5_021EF3BC(fieldSystem->unk_04->unk_1C);
sub_02055CBC(fieldSystem->unk_04->unk_18);
ov5_021D57D8(&fieldSystem->unk_48);
ov5_021D5894(&fieldSystem->unk_44);
ov5_021D1570();
ov5_021D1524(v0->unk_08);
ov5_021D5C14(v0);
ov5_021D1524(fieldSystem->unk_08);
ov5_021D5C14(fieldSystem);
(*param1)++;
}
break;
case 2:
if (ov5_021D5C30(v0)) {
if (ov5_021D5C30(fieldSystem)) {
ov5_021D15E8();
sub_02020BD0();
sub_0201DC3C();
sub_0201CBA0();
ov5_021D1AE4(v0->unk_04->unk_04);
ov5_021D1AE4(fieldSystem->unk_04->unk_04);
SetMainCallback(NULL, NULL);
Heap_FreeToHeap(v0->unk_08);
Heap_FreeToHeap(v0->unk_04);
Heap_FreeToHeap(fieldSystem->unk_08);
Heap_FreeToHeap(fieldSystem->unk_04);
v0->unk_04 = NULL;
fieldSystem->unk_04 = NULL;
Heap_Destroy(4);
if (v0->unk_74->unk_00_20) {
if (fieldSystem->unk_74->unk_00_20) {
Overlay_UnloadByID(FS_OVERLAY_ID(overlay6));
Overlay_UnloadByID(FS_OVERLAY_ID(overlay8));
Overlay_UnloadByID(FS_OVERLAY_ID(overlay7));
@@ -371,10 +370,10 @@ static int ov5_021D0FB4 (OverlayManager * param0, int * param1)
return 0;
}
const OverlayManagerTemplate Unk_ov5_021F89B0 = {
ov5_021D0DA4,
ov5_021D0F68,
ov5_021D0FB4,
const OverlayManagerTemplate gFieldMapTemplate = {
FieldMap_Init,
FieldMap_Main,
FieldMap_Exit,
0xffffffff
};
@@ -394,65 +393,65 @@ static int ov5_021D1178 (FieldSystem * param0)
return 0;
}
static BOOL ov5_021D119C (FieldSystem * param0)
static BOOL ov5_021D119C (FieldSystem * fieldSystem)
{
int v0, v1;
v0 = Player_XPos(param0->playerAvatar);
v1 = Player_ZPos(param0->playerAvatar);
v0 = Player_XPos(fieldSystem->playerAvatar);
v1 = Player_ZPos(fieldSystem->playerAvatar);
if ((v0 != param0->unk_1C->unk_08) || (v1 != param0->unk_1C->unk_0C)) {
param0->unk_1C->unk_08 = v0;
param0->unk_1C->unk_0C = v1;
return 1;
if ((v0 != fieldSystem->unk_1C->unk_08) || (v1 != fieldSystem->unk_1C->unk_0C)) {
fieldSystem->unk_1C->unk_08 = v0;
fieldSystem->unk_1C->unk_0C = v1;
return TRUE;
} else {
return 0;
return FALSE;
}
}
static BOOL ov5_021D11CC (FieldSystem * param0)
static BOOL FieldMap_ChangeZone (FieldSystem * fieldSystem)
{
u32 v0;
u32 v1;
int v2, v3;
UnkStruct_0203A790 * v4;
if (ov5_021D1A78(param0) == 1) {
if (FieldMap_InDistortionWorld(fieldSystem) == 1) {
return 0;
}
v2 = (Player_XPos(param0->playerAvatar) - ov5_021EA6AC(param0->unk_28)) / 32;
v3 = (Player_ZPos(param0->playerAvatar) - ov5_021EA6B4(param0->unk_28)) / 32;
v0 = sub_02039E30(param0->unk_2C, v2, v3);
v1 = param0->unk_1C->unk_00;
v2 = (Player_XPos(fieldSystem->playerAvatar) - ov5_021EA6AC(fieldSystem->unk_28)) / 32;
v3 = (Player_ZPos(fieldSystem->playerAvatar) - ov5_021EA6B4(fieldSystem->unk_28)) / 32;
v0 = sub_02039E30(fieldSystem->unk_2C, v2, v3);
v1 = fieldSystem->unk_1C->unk_00;
if (v0 == v1) {
return 0;
}
v4 = sub_0203A790(param0->saveData);
v4 = sub_0203A790(fieldSystem->saveData);
{
param0->unk_1C->unk_00 = v0;
fieldSystem->unk_1C->unk_00 = v0;
sub_0203A3B0(param0, v0);
sub_020531C0(param0, 1);
sub_0203A3B0(fieldSystem, v0);
sub_020531C0(fieldSystem, 1);
}
{
int v5 = sub_0203A4B4(param0);
const UnkStruct_020619DC * v6 = sub_0203A4BC(param0);
int v5 = sub_0203A4B4(fieldSystem);
const UnkStruct_020619DC * v6 = sub_0203A4BC(fieldSystem);
sub_0206184C(param0->unk_38, v1, v0, v5, v6);
sub_0206184C(fieldSystem->unk_38, v1, v0, v5, v6);
}
{
RadarChain_Clear(param0->chain);
sub_02055554(param0, sub_02055428(param0, param0->unk_1C->unk_00), 1);
sub_0203A418(param0);
RadarChain_Clear(fieldSystem->chain);
sub_02055554(fieldSystem, sub_02055428(fieldSystem, fieldSystem->unk_1C->unk_00), 1);
sub_0203A418(fieldSystem);
if (param0->unk_04->unk_0C != NULL) {
if (fieldSystem->unk_04->unk_0C != NULL) {
ov5_021D5F7C(
param0->unk_04->unk_0C, sub_0203A74C(v4));
fieldSystem->unk_04->unk_0C, sub_0203A74C(v4));
}
}
@@ -469,11 +468,11 @@ static BOOL ov5_021D11CC (FieldSystem * param0)
v9--;
}
ov5_021DD9E8(param0->unk_04->unk_08, v8, v9);
ov5_021DD9E8(fieldSystem->unk_04->unk_08, v8, v9);
}
}
return 1;
return TRUE;
}
void ov5_021D12D0 (FieldSystem * param0, u32 param1)
@@ -528,7 +527,7 @@ static void ov5_021D134C (FieldSystem * param0, u8 param1)
if ((param1 & 2) != 0) {
ov5_021E8188(param0, param0->unk_28);
if (ov5_021D1A78(param0) == 1) {
if (FieldMap_InDistortionWorld(param0) == 1) {
ov9_0224CA5C(param0);
}
}
@@ -729,7 +728,7 @@ static void ov5_021D15F4 (FieldSystem * param0)
sub_020241B4();
if (param0->unk_20 == 1) {
if (ov5_021D1A78(param0) == 1) {
if (FieldMap_InDistortionWorld(param0) == 1) {
ov9_02249F9C(param0);
}
@@ -741,7 +740,7 @@ static void ov5_021D15F4 (FieldSystem * param0)
sub_0206979C(param0);
ov5_021E91FC(param0->unk_28, param0->unk_44);
if (ov5_021D1A78(param0) == 1) {
if (FieldMap_InDistortionWorld(param0) == 1) {
ov9_0224CA50(param0);
}
@@ -762,7 +761,7 @@ static void ov5_021D15F4 (FieldSystem * param0)
ov5_021DF4F8(param0->unk_40);
sub_02020C08();
if (ov5_021D1A78(param0) == 1) {
if (FieldMap_InDistortionWorld(param0) == 1) {
ov9_02250780(param0);
}
@@ -836,7 +835,7 @@ static void ov5_021D17EC (FieldSystem * param0)
{
param0->unk_28 = ov5_021E9084(param0->unk_2C, param0->unk_30, param0->unk_50, param0->unk_60);
if (ov5_021D1A78(param0) == 1) {
if (FieldMap_InDistortionWorld(param0) == 1) {
int v0 = 0, v1 = 0, v2 = 0;
ov9_02251094(param0->unk_1C->unk_00, &v0, &v1, &v2);
@@ -862,7 +861,7 @@ static void ov5_021D1878 (FieldSystem * param0)
{
int v0 = 80;
if (ov5_021D1A78(param0) == 1) {
if (FieldMap_InDistortionWorld(param0) == 1) {
v0 = 112;
}
@@ -881,7 +880,7 @@ static void ov5_021D1878 (FieldSystem * param0)
if (param0->unk_70 == 1) {
v1 = Unk_ov5_021FF7D0;
} else {
if (ov5_021D1A78(param0) == 1) {
if (FieldMap_InDistortionWorld(param0) == 1) {
v1 = Unk_ov5_021FF6B8;
} else {
v1 = Unk_ov5_021FF744;
@@ -901,13 +900,13 @@ static void ov5_021D1878 (FieldSystem * param0)
ov5_021ECC20(param0->unk_38, 32, ov5_021D1A6C(param0->unk_34) + 3, ov5_021D1A68(param0->unk_34), v2);
}
ov5_021F1328(param0->unk_40);
FieldEffect_InitRenderObject(param0->unk_40);
{
UnkStruct_02027860 * v3 = sub_02027860(FieldSystem_SaveData(param0));
int v4 = sub_02027F80(v3);
sub_0205E884(param0->playerAvatar, v4);
PlayerAvatar_InitDraw(param0->playerAvatar, v4);
}
sub_02061C48(param0->unk_38);
@@ -933,7 +932,7 @@ static void ov5_021D1968 (FieldSystem * param0)
param0->unk_4C = ov5_021D521C(param0->unk_44, ov5_021EFAD8(param0->unk_30));
if (ov5_021D1A78(param0) == 1) {
if (FieldMap_InDistortionWorld(param0) == 1) {
param0->unk_04->unk_0C = NULL;
} else {
param0->unk_04->unk_0C = ov5_021D5EB8(param0);
@@ -990,7 +989,7 @@ static void ov5_021D1A70 (UnkStruct_ov5_021D1A68 * param0)
Heap_FreeToHeap(param0);
}
static BOOL ov5_021D1A78 (FieldSystem * param0)
static BOOL FieldMap_InDistortionWorld (FieldSystem * param0)
{
UnkStruct_02027860 * v0 = sub_02027860(FieldSystem_SaveData(param0));
int v1 = sub_02027F80(v0);

View File

@@ -262,7 +262,7 @@ static const UnkStruct_ov101_021D86B0 Unk_ov5_0220021C = {
ov5_021F1310
};
void ov5_021F1328 (UnkStruct_ov5_021DF47C * param0)
void FieldEffect_InitRenderObject (UnkStruct_ov5_021DF47C * param0)
{
const UnkStruct_ov5_02200230 * v0 = Unk_ov5_02200230;
u32 v1 = NELEMS(Unk_ov5_02200230);

View File

@@ -73,41 +73,39 @@ PlayerAvatar * sub_0205E820 (const MapObjectManager * param0, PlayerData * param
{
int v0;
PlayerAvatar * playerAvatar;
MapObject * v2;
MapObject * mapObj;
playerAvatar = PlayerAvatar_Alloc();
v0 = sub_0205EC94(param1);
sub_0205E91C(playerAvatar, v0, param2, param1);
v2 = sub_0205EA64(param0);
mapObj = sub_0205EA64(param0);
sub_0206291C(v2, Player_Gender(v0, param2));
MapObject_SetStatusFlagOn(v2, ((1 << 10) | (1 << 13)));
MapObject_SetStatusFlagOff(v2, ((1 << 7) | (1 << 8)));
sub_02062F90(v2, 1);
PlayerAvatar_SetMapObject(playerAvatar, v2);
sub_0206291C(mapObj, Player_Gender(v0, param2));
MapObject_SetStatusFlagOn(mapObj, ((1 << 10) | (1 << 13)));
MapObject_SetStatusFlagOff(mapObj, ((1 << 7) | (1 << 8)));
sub_02062F90(mapObj, 1);
PlayerAvatar_SetMapObject(playerAvatar, mapObj);
return playerAvatar;
}
void sub_0205E884 (PlayerAvatar * playerAvatar, int groundId)
void PlayerAvatar_InitDraw (PlayerAvatar * playerAvatar, int groundId)
{
int v0, v1;
MapObject * v2;
const MapObjectManager * v3;
MapObject * mapObj;
v2 = Player_MapObject(playerAvatar);
GF_ASSERT(v2 != NULL);
v3 = sub_02062A40(v2);
mapObj = Player_MapObject(playerAvatar);
GF_ASSERT(mapObj != NULL);
sub_02062A40(mapObj);
ov5_021F6218(playerAvatar);
if (sub_0205EB74(playerAvatar) == 0x2) {
if (groundId != 9) {
int v4 = Player_XPos(playerAvatar);
int v5 = Player_ZPos(playerAvatar);
int v6 = Player_Dir(playerAvatar);
UnkStruct_ov101_021D5D90 * v7 = ov5_021F261C(v2, v4, v5, v6, 1);
int x = Player_XPos(playerAvatar);
int z = Player_ZPos(playerAvatar);
int dir = Player_Dir(playerAvatar);
UnkStruct_ov101_021D5D90 * v7 = ov5_021F261C(mapObj, x, z, dir, 1);
sub_0205EC00(playerAvatar, v7);
}

View File

@@ -119,7 +119,7 @@ void sub_0203CD00 (FieldSystem * param0)
param0->unk_68 = 0;
param0->unk_00->unk_08 = 0;
param0->unk_00->unk_00 = OverlayManager_New(&Unk_ov5_021F89B0, param0, 11);
param0->unk_00->unk_00 = OverlayManager_New(&gFieldMapTemplate, param0, 11);
}
void sub_0203CD44 (FieldSystem * param0)