mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-25 15:49:02 -05:00
further document mining minigame (#595)
This commit is contained in:
parent
a53e8aa3b7
commit
86f47b3f2c
|
|
@ -31,7 +31,7 @@ enum HeapId {
|
|||
HEAP_ID_26,
|
||||
HEAP_ID_27,
|
||||
HEAP_ID_28,
|
||||
HEAP_ID_29,
|
||||
HEAP_ID_MINING,
|
||||
HEAP_ID_DISTORTION_WORLD_WARP,
|
||||
HEAP_ID_31,
|
||||
HEAP_ID_FIELD_TASK,
|
||||
|
|
@ -143,6 +143,7 @@ enum HeapSize {
|
|||
|
||||
HEAP_SIZE_CHOOSE_STARTER_APP = 0x40000,
|
||||
HEAP_SIZE_LIBRARY_TV = 0x40000,
|
||||
HEAP_SIZE_MINING = 0x50000,
|
||||
HEAP_SIZE_DISTORTION_WORLD_WARP = 0x50000,
|
||||
HEAP_SIZE_GAME_START = 0x20000,
|
||||
HEAP_SIZE_MAIN_MENU = 0x40000,
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@
|
|||
|
||||
#include "strbuf.h"
|
||||
|
||||
#define MAX_BURIED_OBJECTS 8
|
||||
#define MAX_BURIED_ITEMS 4
|
||||
|
||||
#define INITIAL_WALL_INTEGRITY 196
|
||||
|
||||
#define MINING_GAME_WIDTH 13
|
||||
#define MINING_GAME_HEIGHT 10
|
||||
|
||||
void ov23_0223E1E4(void *param0, FieldSystem *fieldSystem);
|
||||
int ov23_0223E2E8(void);
|
||||
void ov23_0223E2F0(void);
|
||||
|
|
@ -22,7 +30,7 @@ void ov23_0223EB8C(int param0, int param1, void *param2, void *param3);
|
|||
void ov23_0223EBC0(int param0, int param1, void *param2, void *param3);
|
||||
void ov23_0223EBE4(int param0, int param1, void *param2, void *param3);
|
||||
int ov23_0223EBFC(void);
|
||||
void ov23_0223EC00(int param0, int param1, void *param2, void *param3);
|
||||
void Mining_TakeLinkInput(int param0, int param1, void *src, void *param3);
|
||||
int ov23_0223EC30(void);
|
||||
BOOL ov23_02241200(int param0, int param1);
|
||||
int ov23_0224121C(int param0);
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ void ov23_0224AC4C(void);
|
|||
BOOL ov23_0224ACC0(int param0);
|
||||
void ov23_0224ACE8(int param0, int param1, void *param2, void *param3);
|
||||
void ov23_0224ACF8(int param0, int param1, void *param2, void *param3);
|
||||
int ov23_0224AD04(int param0);
|
||||
int ov23_0224AD40(int param0);
|
||||
int Underground_GetLinkXPos(int netID);
|
||||
int Underground_GetLinkZPos(int netID);
|
||||
void ov23_0224AD7C(int param0, int param1);
|
||||
void ov23_0224AD98(int param0);
|
||||
void ov23_0224ADB0(int param0, int param1, int param2, int param3);
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ int ov23_0224F66C(int param0, void *param1);
|
|||
int ov23_0224F684(int param0, void *param1);
|
||||
int ov23_0224F69C(int param0, void *param1);
|
||||
int ov23_0224F6C8(int param0, void *param1);
|
||||
BOOL ov23_0224F6E0(int param0, int param1);
|
||||
BOOL ov23_0224F710(int param0);
|
||||
BOOL Underground_TryAddSphere(int sphereID, int sphereSize);
|
||||
BOOL Underground_TryAddTreasure(int treasureID);
|
||||
BOOL ov23_0224F730(int param0);
|
||||
BOOL ov23_0224F744(int param0);
|
||||
void ov23_0224F758(UnkFuncPtr_ov23_0224F758 param0, FieldSystem *fieldSystem);
|
||||
|
|
|
|||
|
|
@ -53,12 +53,12 @@ int UndergroundData_GetSphereCount(UndergroundData *undergroundData);
|
|||
int sub_02028C54(UndergroundData *param0, int param1);
|
||||
int sub_02028C60(UndergroundData *param0, int param1);
|
||||
int sub_02028C6C(UndergroundData *param0, int param1);
|
||||
BOOL sub_02028CB0(UndergroundData *param0, int param1, int param2);
|
||||
BOOL UndergroundData_TryAddSphere(UndergroundData *undergroundData, int sphereType, int sphereSize);
|
||||
void sub_02028CD8(UndergroundData *param0, int param1, int param2);
|
||||
int UndergroundData_GetTreasureCount(UndergroundData *undergroundData);
|
||||
int sub_02028D74(UndergroundData *param0, int param1);
|
||||
int sub_02028D80(UndergroundData *param0, int param1);
|
||||
BOOL sub_02028DB4(UndergroundData *param0, int param1);
|
||||
BOOL UndergroundData_TryAddTreasure(UndergroundData *undergroundData, int treasureID);
|
||||
void sub_02028DD8(UndergroundData *param0, int param1, int param2);
|
||||
int sub_02028E28(UndergroundData *param0);
|
||||
int sub_02028E44(UndergroundData *param0, int param1);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -270,7 +270,7 @@ void ov23_022419B4(int param0, int param1, void *param2, void *param3)
|
|||
if (v5) {
|
||||
sub_020594FC();
|
||||
|
||||
if (ov23_0224F6E0(v5->unk_06, v5->unk_04 + v5->unk_05)) {
|
||||
if (Underground_TryAddSphere(v5->unk_06, v5->unk_04 + v5->unk_05)) {
|
||||
Unk_ov23_02257744->unk_468[v1] = v5->unk_06;
|
||||
Sound_PlayEffect(SEQ_SE_DP_PIRORIRO2);
|
||||
v4 = 99;
|
||||
|
|
|
|||
|
|
@ -676,34 +676,34 @@ void ov23_0224ACF8(int param0, int param1, void *param2, void *param3)
|
|||
ov23_02243020(v0[0]);
|
||||
}
|
||||
|
||||
int ov23_0224AD04(int param0)
|
||||
int Underground_GetLinkXPos(int netID)
|
||||
{
|
||||
CommPlayerManager *v0 = CommPlayerMan_Get();
|
||||
|
||||
if (!v0) {
|
||||
return 0xffff;
|
||||
} else if (CommSys_CurNetId() == param0) {
|
||||
return v0->playerLocation[param0].x;
|
||||
} else if (CommSys_CurNetId() == netID) {
|
||||
return v0->playerLocation[netID].x;
|
||||
} else if (!sub_02058C40()) {
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
return v0->playerLocation[param0].x;
|
||||
return v0->playerLocation[netID].x;
|
||||
}
|
||||
|
||||
int ov23_0224AD40(int param0)
|
||||
int Underground_GetLinkZPos(int netID)
|
||||
{
|
||||
CommPlayerManager *v0 = CommPlayerMan_Get();
|
||||
|
||||
if (!v0) {
|
||||
return 0xffff;
|
||||
} else if (CommSys_CurNetId() == param0) {
|
||||
return v0->playerLocation[param0].z;
|
||||
} else if (CommSys_CurNetId() == netID) {
|
||||
return v0->playerLocation[netID].z;
|
||||
} else if (!sub_02058C40()) {
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
return v0->playerLocation[param0].z;
|
||||
return v0->playerLocation[netID].z;
|
||||
}
|
||||
|
||||
void ov23_0224AD7C(int param0, int param1)
|
||||
|
|
|
|||
|
|
@ -382,27 +382,27 @@ int ov23_0224F6C8(int param0, void *param1)
|
|||
return sub_02028D74(v1, param0);
|
||||
}
|
||||
|
||||
BOOL ov23_0224F6E0(int sphereID, int sphereSize)
|
||||
BOOL Underground_TryAddSphere(int sphereID, int sphereSize)
|
||||
{
|
||||
int v0 = sphereID;
|
||||
int sphereType = sphereID;
|
||||
|
||||
GF_ASSERT(sphereID < MINING_TREASURE_OVAL_STONE);
|
||||
|
||||
if (sphereID >= MINING_LARGE_PRISM_SPHERE) {
|
||||
v0 -= 5;
|
||||
sphereType -= (MINING_LARGE_PRISM_SPHERE - 1);
|
||||
}
|
||||
|
||||
if (sphereSize > 99) {
|
||||
sphereSize = 99;
|
||||
}
|
||||
|
||||
return sub_02028CB0(Unk_ov23_022577B8->unk_00, v0, sphereSize);
|
||||
return UndergroundData_TryAddSphere(Unk_ov23_022577B8->unk_00, sphereType, sphereSize);
|
||||
}
|
||||
|
||||
BOOL ov23_0224F710(int param0)
|
||||
BOOL Underground_TryAddTreasure(int treasureID)
|
||||
{
|
||||
GF_ASSERT(param0 < 60);
|
||||
return sub_02028DB4(Unk_ov23_022577B8->unk_00, param0);
|
||||
GF_ASSERT(treasureID < MINING_ROCK_1);
|
||||
return UndergroundData_TryAddTreasure(Unk_ov23_022577B8->unk_00, treasureID);
|
||||
}
|
||||
|
||||
BOOL ov23_0224F730(int param0)
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ static int ov23_02252404(UnkStruct_ov23_02250CD4 *param0, int param1, int param2
|
|||
} else if (param0->unk_2AC == 0) {
|
||||
v0 = sub_02028BC8(v1, param0->unk_274[param1]);
|
||||
} else if (param0->unk_2AC == 2) {
|
||||
v0 = sub_02028DB4(v1, param0->unk_274[param1]);
|
||||
v0 = UndergroundData_TryAddTreasure(v1, param0->unk_274[param1]);
|
||||
}
|
||||
|
||||
if (v0) {
|
||||
|
|
@ -476,7 +476,7 @@ static u32 ov23_02252C08(UnkStruct_ov23_02250CD4 *param0)
|
|||
{
|
||||
UndergroundData *v0 = SaveData_GetUndergroundData(FieldSystem_GetSaveData(param0->fieldSystem));
|
||||
|
||||
if (ov23_0224F6E0(param0->unk_279[0], param0->unk_27E[0])) {
|
||||
if (Underground_TryAddSphere(param0->unk_279[0], param0->unk_27E[0])) {
|
||||
if (param0->unk_2AC == 1) {
|
||||
sub_02028E50(v0, param0->unk_2A8);
|
||||
} else if (param0->unk_2AC == 0) {
|
||||
|
|
|
|||
|
|
@ -130,26 +130,26 @@ static int sub_020285D8(UndergroundData *param0)
|
|||
return -1;
|
||||
}
|
||||
|
||||
static int sub_020285F8(UndergroundData *param0)
|
||||
static int UndergroundData_FindEmptySphereSlot(UndergroundData *undergroundData)
|
||||
{
|
||||
int v0;
|
||||
int i;
|
||||
|
||||
for (v0 = 0; v0 < 40; v0++) {
|
||||
if (param0->spheres[v0] == 0) {
|
||||
return v0;
|
||||
for (i = 0; i < 40; i++) {
|
||||
if (undergroundData->spheres[i] == 0) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int sub_02028618(UndergroundData *param0)
|
||||
static int UndergroundData_FindEmptyTreasureSlot(UndergroundData *undergroundData)
|
||||
{
|
||||
int v0;
|
||||
int i;
|
||||
|
||||
for (v0 = 0; v0 < 40; v0++) {
|
||||
if (param0->treasure[v0] == 0) {
|
||||
return v0;
|
||||
for (i = 0; i < 40; i++) {
|
||||
if (undergroundData->treasure[i] == 0) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -598,20 +598,20 @@ int sub_02028C6C(UndergroundData *param0, int param1)
|
|||
return v2;
|
||||
}
|
||||
|
||||
BOOL sub_02028CB0(UndergroundData *undergroundData, int sphereID, int sphereSize)
|
||||
BOOL UndergroundData_TryAddSphere(UndergroundData *undergroundData, int sphereType, int sphereSize)
|
||||
{
|
||||
int v0;
|
||||
BOOL v1 = 0;
|
||||
int slot;
|
||||
BOOL added = FALSE;
|
||||
|
||||
v0 = sub_020285F8(undergroundData);
|
||||
slot = UndergroundData_FindEmptySphereSlot(undergroundData);
|
||||
|
||||
if (v0 != -1) {
|
||||
undergroundData->spheres[v0] = sphereID;
|
||||
undergroundData->sphereSizes[v0] = sphereSize;
|
||||
v1 = 1;
|
||||
if (slot != -1) {
|
||||
undergroundData->spheres[slot] = sphereType;
|
||||
undergroundData->sphereSizes[slot] = sphereSize;
|
||||
added = TRUE;
|
||||
}
|
||||
|
||||
return v1;
|
||||
return added;
|
||||
}
|
||||
|
||||
void sub_02028CD8(UndergroundData *param0, int param1, int param2)
|
||||
|
|
@ -672,19 +672,19 @@ int sub_02028D80(UndergroundData *param0, int param1)
|
|||
return v2;
|
||||
}
|
||||
|
||||
BOOL sub_02028DB4(UndergroundData *param0, int param1)
|
||||
BOOL UndergroundData_TryAddTreasure(UndergroundData *undergroundData, int treasureID)
|
||||
{
|
||||
int v0;
|
||||
BOOL v1 = 0;
|
||||
int slot;
|
||||
BOOL added = FALSE;
|
||||
|
||||
v0 = sub_02028618(param0);
|
||||
slot = UndergroundData_FindEmptyTreasureSlot(undergroundData);
|
||||
|
||||
if (v0 != -1) {
|
||||
param0->treasure[v0] = param1;
|
||||
v1 = 1;
|
||||
if (slot != -1) {
|
||||
undergroundData->treasure[slot] = treasureID;
|
||||
added = TRUE;
|
||||
}
|
||||
|
||||
return v1;
|
||||
return added;
|
||||
}
|
||||
|
||||
void sub_02028DD8(UndergroundData *param0, int param1, int param2)
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ BOOL ScrCmd_08F(ScriptContext *param0)
|
|||
u16 *v5 = ScriptContext_GetVarPointer(param0);
|
||||
|
||||
v2 = SaveData_GetUndergroundData(saveData);
|
||||
*v5 = sub_02028CB0(v2, v3, v4);
|
||||
*v5 = UndergroundData_TryAddSphere(v2, v3, v4);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ static const CommCmdTable Unk_020F68A4[] = {
|
|||
{ ov23_0223EB8C, CommPacketSizeOf_NetId, NULL },
|
||||
{ ov23_0223EBC0, CommPacketSizeOf_NetId, NULL },
|
||||
{ ov23_0223EBE4, ov23_0223EBFC, NULL },
|
||||
{ ov23_0223EC00, ov23_0223EC30, NULL },
|
||||
{ Mining_TakeLinkInput, ov23_0223EC30, NULL },
|
||||
{ ov23_02243390, ov23_022433B8, NULL },
|
||||
{ ov23_022413A0, sub_0203294C, NULL },
|
||||
{ ov23_0224142C, ov23_022414D0, NULL },
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user