Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Great Marsh lookout documentation #345

Merged
merged 9 commits into from
Jan 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
with:
style: 'file' # Use repository .clang-format file
tidy-checks: '-*' # Disable clang-tidy checks
version: '18'
version: '19'
files-changed-only: false # Github returns error code 406 if more than 300 files are changed in a PR
ignore: '.github|lib|subprojects|tools'
file-annotations: false
Expand Down
2 changes: 1 addition & 1 deletion asm/macros/scrcmd.inc
Original file line number Diff line number Diff line change
Expand Up @@ -2797,7 +2797,7 @@
.short 517
.endm

.macro ScrCmd_206
.macro StartGreatMarshLookout
.short 518
.endm

Expand Down
10 changes: 10 additions & 0 deletions include/great_marsh_lookout.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#ifndef POKEPLATINUM_GREAT_MARSH_LOOKOUT_H
#define POKEPLATINUM_GREAT_MARSH_LOOKOUT_H

#include "field/field_system_decl.h"

#define BINOCULARS_CYCLE_COUNT 5

void GreatMarshLookout_Init(FieldSystem *fieldSystem);

#endif // POKEPLATINUM_GREAT_MARSH_LOOKOUT_H
15 changes: 7 additions & 8 deletions include/inlines.h
Original file line number Diff line number Diff line change
Expand Up @@ -158,19 +158,18 @@ static inline u16 ScriptContext_GetVar(ScriptContext *ctx)
return FieldSystem_TryGetVar(ctx->fieldSystem, ScriptContext_ReadHalfWord(ctx));
}

inline u16 inline_020564D0(const u16 param0)
// Functionally equivalent to LCRNG_Next() % param
inline u16 LCRNG_RandMod(const u16 param)
{
GF_ASSERT(param0 != 0);
GF_ASSERT(param != 0);

if (param0 <= 1) {
if (param <= 1) {
return 0;
} else {
u16 v0;
u16 v1;
v0 = (0xffff / param0) + 1;
v1 = LCRNG_Next() / v0;
u16 v0 = (0xffff / param) + 1;
u16 v1 = LCRNG_Next() / v0;

GF_ASSERT(v1 < param0);
GF_ASSERT(v1 < param);
return v1;
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#ifndef POKEPLATINUM_OV6_022477B8_H
#define POKEPLATINUM_OV6_022477B8_H
#ifndef POKEPLATINUM_DUAL_SLOT_ENCOUNTERS_H
#define POKEPLATINUM_DUAL_SLOT_ENCOUNTERS_H

#include "overlay006/wild_encounters.h"

void WildEncounters_ReplaceDualSlotEncounters(const WildEncounters *encounterData, const BOOL param1, int *param2, int *param3);

#endif // POKEPLATINUM_OV6_022477B8_H
#endif // POKEPLATINUM_DUAL_SLOT_ENCOUNTERS_H
28 changes: 28 additions & 0 deletions include/overlay006/great_marsh_binoculars.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#ifndef POKEPLATINUM_GREAT_MARSH_BINOCULARS_H
#define POKEPLATINUM_GREAT_MARSH_BINOCULARS_H

#include "field/field_system_decl.h"

#include "great_marsh_lookout.h"
#include "location.h"

typedef struct BinocularCoords {
u16 x;
u16 z;
} BinocularCoords;

// Data used to control the map view displayed while using the Great Marsh lookout binoculars.
typedef struct GreatMarshBinoculars {
BinocularCoords coordsList[BINOCULARS_CYCLE_COUNT + 1];
Location viewLocation;
FieldSystem *fieldSystem;
int lookoutMapId;
} GreatMarshBinoculars;

int GreatMarshBinoculars_GetMonSpecies(FieldSystem *fieldSystem);
GreatMarshBinoculars *GreatMarshBinoculars_InitData(const int heapId, FieldSystem *fieldSystem);
void GreatMarshBinoculars_FreeData(GreatMarshBinoculars *data);
void GreatMarshBinoculars_SetNextLocationWithCoords(const u8 cycleNum, GreatMarshBinoculars *binocularsData);
Location *GreatMarshBinoculars_GetLocation(GreatMarshBinoculars *binocData);

#endif // POKEPLATINUM_GREAT_MARSH_BINOCULARS_H
6 changes: 6 additions & 0 deletions include/overlay006/great_marsh_daily_encounters.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#ifndef POKEPLATINUM_MARSH_DAILY_ENCOUNTERS_H
#define POKEPLATINUM_MARSH_DAILY_ENCOUNTERS_H

void ReplaceGreatMarshDailyEncounters(const int dailyMon, const BOOL nationalDexObtained, const int mapId, int *encounterSlot1, int *encounterSlot2);
TheSylphIsIn marked this conversation as resolved.
Show resolved Hide resolved

#endif // POKEPLATINUM_MARSH_DAILY_ENCOUNTERS_H
35 changes: 26 additions & 9 deletions include/overlay006/ov6_022426AC.h
Original file line number Diff line number Diff line change
@@ -1,14 +1,31 @@
#ifndef POKEPLATINUM_OV6_022426AC_H
#define POKEPLATINUM_OV6_022426AC_H

#include "overlay006/struct_ov6_022426B8_decl.h"

UnkStruct_ov6_022426B8 *ov6_022426AC(const int param0);
void ov6_022426B8(UnkStruct_ov6_022426B8 *param0);
void ov6_022426C0(UnkStruct_ov6_022426B8 *param0, const int param1);
void ov6_022427F4(UnkStruct_ov6_022426B8 *param0);
void ov6_02242814(UnkStruct_ov6_022426B8 *param0);
BOOL ov6_02242820(UnkStruct_ov6_022426B8 *param0);
void ov6_02242828(UnkStruct_ov6_022426B8 *param0);
#include "struct_defs/archived_sprite.h"
#include "struct_defs/struct_0200C738.h"

#include "cell_actor.h"
#include "sprite_resource.h"

typedef struct GreatMarshLookout_SpriteResources {
SpriteResourceCollection *unk_00[4];
SpriteResource *unk_10[4];
void *unk_20;
void *unk_24;
ArchivedSprite unk_28;
CellActorCollection *unk_38;
UnkStruct_0200C738 unk_3C;
CellActor *unk_1C8;
BOOL unk_1CC;
BOOL unk_1D0;
} GreatMarshLookout_SpriteResources;

GreatMarshLookout_SpriteResources *GreatMarshLookout_AllocSpriteResources(const int heapId);
void GreatMarshLookout_FreeSpriteResources(GreatMarshLookout_SpriteResources *resources);
void GreatMarshLookout_CreateLookoutMonSprite(GreatMarshLookout_SpriteResources *resources, const int species);
void ov6_022427F4(GreatMarshLookout_SpriteResources *param0);
void ov6_02242814(GreatMarshLookout_SpriteResources *param0);
BOOL ov6_02242820(GreatMarshLookout_SpriteResources *param0);
void ov6_02242828(GreatMarshLookout_SpriteResources *param0);

#endif // POKEPLATINUM_OV6_022426AC_H
15 changes: 0 additions & 15 deletions include/overlay006/ov6_02242984.h

This file was deleted.

6 changes: 0 additions & 6 deletions include/overlay006/ov6_02242F74.h

This file was deleted.

6 changes: 0 additions & 6 deletions include/overlay006/struct_ov6_022426B8_decl.h

This file was deleted.

6 changes: 0 additions & 6 deletions include/overlay006/struct_ov6_02242A8C_decl.h

This file was deleted.

10 changes: 5 additions & 5 deletions include/roaming_pokemon.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
#define ROAMING_SLOT_ARTICUNO (5)
#define ROAMING_SLOT_MAX (6)

void sub_0206C33C(UnkStruct_0202D7B0 *param0, const u8 param1);
void sub_0206C354(UnkStruct_0202D7B0 *param0);
void sub_0206C37C(UnkStruct_0202D7B0 *param0);
void sub_0206C33C(SpecialEncounter *param0, const u8 param1);
void sub_0206C354(SpecialEncounter *param0);
void sub_0206C37C(SpecialEncounter *param0);
int sub_0206C3C8(const u8 param0);
BOOL sub_0206C3E0(UnkStruct_0202D7B0 *param0);
void sub_0206C404(UnkStruct_0202D7B0 *param0, const int param1);
BOOL sub_0206C3E0(SpecialEncounter *param0);
void sub_0206C404(SpecialEncounter *param0, const int param1);
void RoamingPokemon_ActivateSlot(SaveData *saveData, const u8 speciesID);

#endif // POKEPLATINUM_ROAMING_POKEMON_H
14 changes: 7 additions & 7 deletions include/struct_defs/struct_0202D7B0.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@
#include "struct_defs/struct_020698E4.h"
#include "struct_defs/struct_0206C638.h"

typedef struct {
int unk_00;
int unk_04;
UnkStruct_0202D7B0_sub1 unk_08;
typedef struct SpecialEncounter {
int marshDaily;
int swarmDaily;
SpecialEncounter_sub1 unk_08;
UnkStruct_0202D844 unk_10;
UnkStruct_020698E4 unk_BC;
UnkStruct_0202D7B0_sub2 unk_C8;
UnkStruct_0206C638 unk_D0[6];
SpecialEncounter_sub2 unk_C8;
Roamer unk_D0[6];
u8 unk_148[6];
u8 unk_14E;
u8 unk_14F;
u8 unk_150;
u8 unk_151;
} UnkStruct_0202D7B0;
} SpecialEncounter;

#endif // POKEPLATINUM_STRUCT_0202D7B0_H
2 changes: 1 addition & 1 deletion include/struct_defs/struct_0202D7B0_sub1.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ typedef struct {
BOOL unk_00;
u16 unk_04;
u16 unk_06;
} UnkStruct_0202D7B0_sub1;
} SpecialEncounter_sub1;

#endif // POKEPLATINUM_STRUCT_0202D7B0_SUB1_H
2 changes: 1 addition & 1 deletion include/struct_defs/struct_0202D7B0_sub2.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
typedef struct {
int unk_00;
int unk_04;
} UnkStruct_0202D7B0_sub2;
} SpecialEncounter_sub2;

#endif // POKEPLATINUM_STRUCT_0202D7B0_SUB2_H
2 changes: 1 addition & 1 deletion include/struct_defs/struct_0206C638.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ typedef struct {
u8 unk_10;
u8 unk_11;
u8 unk_12;
} UnkStruct_0206C638;
} Roamer;

#endif // POKEPLATINUM_STRUCT_0206C638_H
46 changes: 25 additions & 21 deletions include/unk_0202D7A8.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,37 @@

#include "savedata.h"

// for SpecialEncounter_GetDailyMon
#define DAILY_MARSH 1
#define DAILY_SWARM 2

int SpecialEncounter_SaveSize(void);
void SpecialEncounter_Init(UnkStruct_0202D7B0 *param0);
void sub_0202D80C(UnkStruct_0202D7B0 *param0, const u32 param1);
u32 sub_0202D814(UnkStruct_0202D7B0 *param0, const u8 param1);
UnkStruct_020698E4 *sub_0202D830(UnkStruct_0202D7B0 *param0);
UnkStruct_0202D7B0 *sub_0202D834(SaveData *param0);
UnkStruct_0202D844 *sub_0202D840(UnkStruct_0202D7B0 *param0);
void SpecialEncounter_Init(SpecialEncounter *param0);
void SpecialEncounter_SetMixedRecordDailies(SpecialEncounter *speEnc, const u32 mixedRecord);
u32 SpecialEncounter_GetDailyMon(SpecialEncounter *param0, const u8 dailyType);
UnkStruct_020698E4 *sub_0202D830(SpecialEncounter *param0);
SpecialEncounter *SaveData_GetSpecialEncounters(SaveData *param0);
UnkStruct_0202D844 *sub_0202D840(SpecialEncounter *param0);
const int sub_0202D844(UnkStruct_0202D844 *param0);
void sub_0202D848(const u8 param0, UnkStruct_0202D844 *param1);
UnkStruct_0202D84C *sub_0202D84C(const u8 param0, UnkStruct_0202D844 *param1);
void sub_0202D854(SaveData *param0, const int param1);
void sub_0202D884(SaveData *param0);
u8 sub_0202D898(UnkStruct_0202D7B0 *param0);
void sub_0202D8A4(UnkStruct_0202D7B0 *param0, const int param1);
int sub_0202D8BC(UnkStruct_0202D7B0 *param0);
u8 sub_0202D8C4(UnkStruct_0202D7B0 *param0, const u8 param1);
void sub_0202D8DC(UnkStruct_0202D7B0 *param0, const u8 param1, const u8 param2);
u8 sub_0202D8F8(UnkStruct_0202D7B0 *param0, const u8 param1);
void sub_0202D914(UnkStruct_0206C638 **param0);
UnkStruct_0206C638 *sub_0202D924(UnkStruct_0202D7B0 *param0, const u8 param1);
u32 sub_0202D93C(const UnkStruct_0206C638 *param0, const u8 param1);
void sub_0202D980(UnkStruct_0206C638 *param0, const u8 param1, const u32 param2);
u8 *sub_0202D9C4(UnkStruct_0202D7B0 *param0);
u8 *sub_0202D9CC(UnkStruct_0202D7B0 *param0);
BOOL sub_0202D9D8(UnkStruct_0202D7B0 *param0);
void sub_0202D9EC(UnkStruct_0202D7B0 *param0, const u8 param1);
u8 sub_0202DA04(UnkStruct_0202D7B0 *param0);
u8 sub_0202D898(SpecialEncounter *param0);
void sub_0202D8A4(SpecialEncounter *param0, const int param1);
int sub_0202D8BC(SpecialEncounter *param0);
u8 sub_0202D8C4(SpecialEncounter *param0, const u8 param1);
void sub_0202D8DC(SpecialEncounter *param0, const u8 param1, const u8 param2);
u8 sub_0202D8F8(SpecialEncounter *param0, const u8 param1);
void sub_0202D914(Roamer **param0);
Roamer *sub_0202D924(SpecialEncounter *param0, const u8 param1);
u32 sub_0202D93C(const Roamer *param0, const u8 param1);
void sub_0202D980(Roamer *param0, const u8 param1, const u32 param2);
u8 *sub_0202D9C4(SpecialEncounter *param0);
u8 *sub_0202D9CC(SpecialEncounter *param0);
BOOL sub_0202D9D8(SpecialEncounter *param0);
void sub_0202D9EC(SpecialEncounter *param0, const u8 param1);
u8 sub_0202DA04(SpecialEncounter *param0);
void sub_0202DA10(SaveData *param0, u16 *param1, u16 *param2);
void sub_0202DA24(SaveData *param0, const u16 param1);

Expand Down
8 changes: 0 additions & 8 deletions include/unk_0206C0E8.h

This file was deleted.

8 changes: 4 additions & 4 deletions platinum.us/main.lsf
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ Static main
Object main.nef.p/src_unk_0206AFE0.c.o
Object main.nef.p/src_unk_0206B70C.c.o
Object main.nef.p/src_unk_0206B9D8.c.o
Object main.nef.p/src_unk_0206C0E8.c.o
Object main.nef.p/src_great_marsh_lookout.c.o
Object main.nef.p/src_unk_0206C2D0.c.o
Object main.nef.p/src_roaming_pokemon.c.o
Object main.nef.p/src_unk_0206C660.c.o
Expand Down Expand Up @@ -566,9 +566,9 @@ Overlay overlay6
Object main.nef.p/src_overlay006_ov6_0223E140.c.o
Object main.nef.p/src_overlay006_ov6_02240C9C.c.o
Object main.nef.p/src_overlay006_ov6_022426AC.c.o
Object main.nef.p/src_overlay006_ov6_02242984.c.o
Object main.nef.p/src_overlay006_great_marsh_binoculars.c.o
Object main.nef.p/src_overlay006_ov6_02242AF0.c.o
Object main.nef.p/src_overlay006_ov6_02242F74.c.o
Object main.nef.p/src_overlay006_great_marsh_daily_encounters.c.o
Object main.nef.p/src_overlay006_ov6_02243004.c.o
Object main.nef.p/src_overlay006_ov6_022430C4.c.o
Object main.nef.p/src_overlay006_ov6_02243218.c.o
Expand All @@ -586,7 +586,7 @@ Overlay overlay6
Object main.nef.p/src_overlay006_ov6_02247100.c.o
Object main.nef.p/src_overlay006_ov6_022475B0.c.o
Object main.nef.p/src_overlay006_ov6_02247660.c.o
Object main.nef.p/src_overlay006_ov6_022477B8.c.o
Object main.nef.p/src_overlay006_dual_slot_encounters.c.o
Object main.nef.p/src_overlay006_ov6_02247830.c.o
Object main.nef.p/src_overlay006_ov6_02247A0C.c.o
Object main.nef.p/src_overlay006_ov6_02247D30.c.o
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ _003E:
PlayFanfare SEQ_SE_DP_REGI
WaitFanfare SEQ_SE_DP_REGI
ScrCmd_073
ScrCmd_206
StartGreatMarshLookout
ReleaseAll
End

Expand Down
4 changes: 2 additions & 2 deletions src/catching_show.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ static int NumMonsCaptured(CatchingShow *catchingShow)

static void ResetStepCount(CatchingShow *catchingShow)
{
catchingShow->steps = inline_020564D0(10) + 5;
catchingShow->steps = LCRNG_RandMod(10) + 5;
}

static BOOL IsStepCountZero(CatchingShow *catchingShow)
Expand Down Expand Up @@ -226,7 +226,7 @@ static BOOL TryStartEncounter(FieldSystem *fieldSystem, CatchingShow *catchingSh
return FALSE;
}

encounterChance = inline_020564D0(totalRarity + WEIGHT_NO_ENCOUNTER);
encounterChance = LCRNG_RandMod(totalRarity + WEIGHT_NO_ENCOUNTER);

if (encounterChance < WEIGHT_NO_ENCOUNTER) {
return FALSE;
Expand Down
Loading
Loading