stab in the dark at documenting menews_jisan

This commit is contained in:
PikalaxALT
2019-10-22 10:44:00 -04:00
parent d51915bb0d
commit aabb95139d
10 changed files with 76 additions and 72 deletions
+1 -1
View File
@@ -364,7 +364,7 @@ sub_806CAC8: @ 806CAC8
beq _0806CB74 beq _0806CB74
movs r0, 0x5 movs r0, 0x5
bl IncrementGameStat bl IncrementGameStat
bl sub_8146CA4 bl MENewsJisanStepCounter
bl IncrementRenewableHiddenItemStepCounter bl IncrementRenewableHiddenItemStepCounter
bl sub_80CC918 bl sub_80CC918
bl sub_80CB054 bl sub_80CB054
+20 -20
View File
@@ -7,31 +7,31 @@ CeruleanCity_House4_EventScript_16ACEF:: @ 816ACEF
goto_if eq, EventScript_1A7AE0 goto_if eq, EventScript_1A7AE0
special sub_8112364 special sub_8112364
lock lock
specialvar VAR_0x8004, sub_8146CE8 specialvar VAR_0x8004, Special_GetMENewsJisanItemAndState
copyvar VAR_0x8008, VAR_RESULT copyvar VAR_0x8008, VAR_RESULT
compare_var_to_value VAR_0x8004, 0 compare_var_to_value VAR_0x8004, 0
goto_if eq, EventScript_16AD59 goto_if eq, EventScript_CeruleanCity_House4_NoNews
compare_var_to_value VAR_0x8004, 1 compare_var_to_value VAR_0x8004, 1
goto_if eq, EventScript_16AD63 goto_if eq, EventScript_CeruleanCity_House4_News1
compare_var_to_value VAR_0x8004, 2 compare_var_to_value VAR_0x8004, 2
goto_if eq, EventScript_16AD89 goto_if eq, EventScript_CeruleanCity_House4_News2
compare_var_to_value VAR_0x8004, 3 compare_var_to_value VAR_0x8004, 3
goto_if eq, EventScript_16ADAF goto_if eq, EventScript_CeruleanCity_House4_NewsNotSpread
compare_var_to_value VAR_0x8004, 4 compare_var_to_value VAR_0x8004, 4
goto_if eq, EventScript_16ADC3 goto_if eq, EventScript_CeruleanCity_House4_NewsSpread1
compare_var_to_value VAR_0x8004, 5 compare_var_to_value VAR_0x8004, 5
goto_if eq, EventScript_16ADE9 goto_if eq, EventScript_CeruleanCity_House4_NewsSpread2
compare_var_to_value VAR_0x8004, 6 compare_var_to_value VAR_0x8004, 6
goto_if eq, EventScript_16AE0F goto_if eq, EventScript_CeruleanCity_House4_NewsDone
end end
EventScript_16AD59:: @ 816AD59 EventScript_CeruleanCity_House4_NoNews:: @ 816AD59
msgbox gUnknown_8192AF0 msgbox gUnknown_8192AF0
release release
end end
EventScript_16AD63:: @ 816AD63 EventScript_CeruleanCity_House4_News1:: @ 816AD63
call EventScript_16AE23 call EventScript_CeruleanCity_House4_MovementReactionToNews
msgbox gUnknown_8192B43 msgbox gUnknown_8192B43
giveitem VAR_0x8008 giveitem VAR_0x8008
compare_var_to_value VAR_RESULT, 0 compare_var_to_value VAR_RESULT, 0
@@ -39,8 +39,8 @@ EventScript_16AD63:: @ 816AD63
release release
end end
EventScript_16AD89:: @ 816AD89 EventScript_CeruleanCity_House4_News2:: @ 816AD89
call EventScript_16AE23 call EventScript_CeruleanCity_House4_MovementReactionToNews
msgbox gUnknown_8192C07 msgbox gUnknown_8192C07
giveitem VAR_0x8008, 4 giveitem VAR_0x8008, 4
compare_var_to_value VAR_RESULT, 0 compare_var_to_value VAR_RESULT, 0
@@ -48,15 +48,15 @@ EventScript_16AD89:: @ 816AD89
release release
end end
EventScript_16ADAF:: @ 816ADAF EventScript_CeruleanCity_House4_NewsNotSpread:: @ 816ADAF
applymovement 1, Movement_1A75E1 applymovement 1, Movement_1A75E1
waitmovement 0 waitmovement 0
msgbox gUnknown_8192CD5 msgbox gUnknown_8192CD5
release release
end end
EventScript_16ADC3:: @ 816ADC3 EventScript_CeruleanCity_House4_NewsSpread1:: @ 816ADC3
call EventScript_16AE23 call EventScript_CeruleanCity_House4_MovementReactionToNews
msgbox gUnknown_8192D4B msgbox gUnknown_8192D4B
giveitem VAR_0x8008 giveitem VAR_0x8008
compare_var_to_value VAR_RESULT, 0 compare_var_to_value VAR_RESULT, 0
@@ -64,8 +64,8 @@ EventScript_16ADC3:: @ 816ADC3
release release
end end
EventScript_16ADE9:: @ 816ADE9 EventScript_CeruleanCity_House4_NewsSpread2:: @ 816ADE9
call EventScript_16AE23 call EventScript_CeruleanCity_House4_MovementReactionToNews
msgbox gUnknown_8192DE3 msgbox gUnknown_8192DE3
giveitem VAR_0x8008, 4 giveitem VAR_0x8008, 4
compare_var_to_value VAR_RESULT, 0 compare_var_to_value VAR_RESULT, 0
@@ -73,14 +73,14 @@ EventScript_16ADE9:: @ 816ADE9
release release
end end
EventScript_16AE0F:: @ 816AE0F EventScript_CeruleanCity_House4_NewsDone:: @ 816AE0F
applymovement 1, Movement_1A75E1 applymovement 1, Movement_1A75E1
waitmovement 0 waitmovement 0
msgbox gUnknown_8192EC5 msgbox gUnknown_8192EC5
release release
end end
EventScript_16AE23:: @ 816AE23 EventScript_CeruleanCity_House4_MovementReactionToNews:: @ 816AE23
playse SE_PIN playse SE_PIN
applymovement 1, Movement_1A75DB applymovement 1, Movement_1A75DB
waitmovement 0 waitmovement 0
+1 -1
View File
@@ -402,7 +402,7 @@ gSpecials:: @ 815FD60
def_special Special_BattleCardAction def_special Special_BattleCardAction
def_special sub_8110AB4 def_special sub_8110AB4
def_special sub_8112364 def_special sub_8112364
def_special sub_8146CE8 def_special Special_GetMENewsJisanItemAndState
def_special get_unknown_box_id def_special get_unknown_box_id
def_special sub_809D504 def_special sub_809D504
def_special sub_809D620 def_special sub_809D620
+1 -1
View File
@@ -79,7 +79,7 @@
// Bits 12-15 are the same for the player's party. // Bits 12-15 are the same for the player's party.
// Used by Quest Log. // Used by Quest Log.
#define VAR_QUEST_LOG_MON_COUNTS 0x4027 #define VAR_QUEST_LOG_MON_COUNTS 0x4027
#define VAR_0x4028 0x4028 #define VAR_MENEWS_JISAN_STEP_COUNTER 0x4028
#define VAR_0x4029 0x4029 #define VAR_0x4029 0x4029
#define VAR_HAPPINESS_STEP_COUNTER 0x402A #define VAR_HAPPINESS_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B #define VAR_POISON_STEP_COUNTER 0x402B
+3 -3
View File
@@ -493,12 +493,12 @@ struct RecordMixingDayCareMail
bool16 holdsItem[DAYCARE_MON_COUNT]; bool16 holdsItem[DAYCARE_MON_COUNT];
}; };
struct MysteryEventStruct struct MENewsJisanStruct
{ {
u8 unk_0_0:2; u8 unk_0_0:2;
u8 unk_0_2:3; u8 unk_0_2:3;
u8 unk_0_5:3; u8 unk_0_5:3;
u8 unk_1; u8 berry;
}; };
struct QuestLogNPCData struct QuestLogNPCData
@@ -674,7 +674,7 @@ struct MEventBuffers
/*0x1c0 0x32e0*/ struct MEventBuffer_32E0 buffer_1c0; /*0x1c0 0x32e0*/ struct MEventBuffer_32E0 buffer_1c0;
/*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310; /*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310;
/*0x338 0x3458*/ u16 unk_338[4]; /*0x338 0x3458*/ u16 unk_338[4];
/*0x340 0x3460*/ struct MysteryEventStruct unk_340; /*0x340 0x3460*/ struct MENewsJisanStruct unk_340;
/*0x344 0x3464*/ u32 unk_344[2][5]; /*0x344 0x3464*/ u32 unk_344[2][5];
}; // 0x36C 0x348C }; // 0x36C 0x348C
+6 -3
View File
@@ -3,8 +3,11 @@
#include "global.h" #include "global.h"
void GenerateRandomNews(u32 a0); #define MENEWS_JISAN_NO_NEWS 0
void sub_8146C88(void); #define MENEWS_JISAN_
void sub_8146CA4(void);
void MENewsJisan_SetRandomReward(u32 a0);
void MENewsJisanReset(void);
void MENewsJisanStepCounter(void);
#endif //GUARD_MENEWS_JISAN_H #endif //GUARD_MENEWS_JISAN_H
+1 -1
View File
@@ -36,7 +36,7 @@ struct MEvent_Str_2
struct MEventBuffer_3120_Sub * GetSavedWonderNews(void); struct MEventBuffer_3120_Sub * GetSavedWonderNews(void);
struct MEventBuffer_32E0_Sub * GetSavedWonderCard(void); struct MEventBuffer_32E0_Sub * GetSavedWonderCard(void);
struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void); struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void);
struct MysteryEventStruct * sub_8143D94(void); struct MENewsJisanStruct * GetMENewsJisanStructPtr(void);
bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src); bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src);
bool32 ValidateReceivedWonderNews(void); bool32 ValidateReceivedWonderNews(void);
bool32 ValidateReceivedWonderCard(void); bool32 ValidateReceivedWonderCard(void);
+37 -36
View File
@@ -3,16 +3,17 @@
#include "random.h" #include "random.h"
#include "event_data.h" #include "event_data.h"
#include "menews_jisan.h" #include "menews_jisan.h"
#include "constants/items.h"
static u32 sub_8146D74(struct MysteryEventStruct *); static u32 GetMENewsJisanRewardItem(struct MENewsJisanStruct *);
static void sub_8146DD8(struct MysteryEventStruct *); static void MENewsJisanIncrementCounterUnk0_5(struct MENewsJisanStruct *);
static u32 sub_8146E0C(struct MysteryEventStruct *); static u32 GetMENewsJisanState(struct MENewsJisanStruct *);
static void sub_8146DA0(struct MysteryEventStruct *); static void MENewsJisanIncrementCounterUnk0_2(struct MENewsJisanStruct *);
static void sub_8146D94(struct MysteryEventStruct *); static void MENewsJisanResetCounterUnk0_2(struct MENewsJisanStruct *);
void GenerateRandomNews(u32 a0) void MENewsJisan_SetRandomReward(u32 a0)
{ {
struct MysteryEventStruct *r5 = sub_8143D94(); struct MENewsJisanStruct *r5 = GetMENewsJisanStructPtr();
r5->unk_0_0 = a0; r5->unk_0_0 = a0;
switch (a0) switch (a0)
@@ -21,68 +22,68 @@ void GenerateRandomNews(u32 a0)
break; break;
case 1: case 1:
case 2: case 2:
r5->unk_1 = (Random() % 15) + 16; r5->berry = (Random() % 15) + ITEM_TO_BERRY(ITEM_RAZZ_BERRY);
break; break;
case 3: case 3:
r5->unk_1 = (Random() % 15) + 1; r5->berry = (Random() % 15) + ITEM_TO_BERRY(ITEM_CHERI_BERRY);
break; break;
} }
} }
void sub_8146C88(void) void MENewsJisanReset(void)
{ {
struct MysteryEventStruct *r5 = sub_8143D94(); struct MENewsJisanStruct *r5 = GetMENewsJisanStructPtr();
r5->unk_0_0 = 0; r5->unk_0_0 = 0;
r5->unk_0_2 = 0; r5->unk_0_2 = 0;
r5->unk_0_5 = 0; r5->unk_0_5 = 0;
r5->unk_1 = 0; r5->berry = 0;
VarSet(VAR_0x4028, 0); VarSet(VAR_MENEWS_JISAN_STEP_COUNTER, 0);
} }
void sub_8146CA4(void) void MENewsJisanStepCounter(void)
{ {
u16 *r4 = GetVarPointer(VAR_0x4028); u16 *r4 = GetVarPointer(VAR_MENEWS_JISAN_STEP_COUNTER);
struct MysteryEventStruct *r2 = sub_8143D94(); struct MENewsJisanStruct *r2 = GetMENewsJisanStructPtr();
struct MysteryEventStruct r0 = *r2; struct MENewsJisanStruct r0 = *r2;
if ((u8)r0.unk_0_5 > 4 && ++(*r4) > 0x1f3) if ((u8)r0.unk_0_5 > 4 && ++(*r4) >= 500)
{ {
r2->unk_0_5 = 0; r2->unk_0_5 = 0;
*r4 = 0; *r4 = 0;
} }
} }
u16 sub_8146CE8(void) u16 Special_GetMENewsJisanItemAndState(void)
{ {
u16 *r6 = &gSpecialVar_Result; u16 *r6 = &gSpecialVar_Result;
struct MysteryEventStruct *r4 = sub_8143D94(); struct MENewsJisanStruct *r4 = GetMENewsJisanStructPtr();
u16 r5; u16 r5;
if (!IsMysteryGiftEnabled() || !ValidateReceivedWonderNews()) if (!IsMysteryGiftEnabled() || !ValidateReceivedWonderNews())
return 0; return 0;
r5 = sub_8146E0C(r4); r5 = GetMENewsJisanState(r4);
switch (r5) switch (r5)
{ {
case 0: case 0:
break; break;
case 1: case 1:
*r6 = sub_8146D74(r4); *r6 = GetMENewsJisanRewardItem(r4);
break; break;
case 2: case 2:
*r6 = sub_8146D74(r4); *r6 = GetMENewsJisanRewardItem(r4);
break; break;
case 3: case 3:
break; break;
case 4: case 4:
*r6 = sub_8146D74(r4); *r6 = GetMENewsJisanRewardItem(r4);
sub_8146DA0(r4); MENewsJisanIncrementCounterUnk0_2(r4);
break; break;
case 5: case 5:
*r6 = sub_8146D74(r4); *r6 = GetMENewsJisanRewardItem(r4);
sub_8146D94(r4); MENewsJisanResetCounterUnk0_2(r4);
break; break;
case 6: case 6:
break; break;
@@ -91,39 +92,39 @@ u16 sub_8146CE8(void)
return r5; return r5;
} }
static u32 sub_8146D74(struct MysteryEventStruct *a0) static u32 GetMENewsJisanRewardItem(struct MENewsJisanStruct *a0)
{ {
u32 r4; u32 r4;
a0->unk_0_0 = 0; a0->unk_0_0 = 0;
r4 = a0->unk_1 + 0x84; r4 = a0->berry + FIRST_BERRY_INDEX - 1;
a0->unk_1 = 0; a0->berry = 0;
sub_8146DD8(a0); MENewsJisanIncrementCounterUnk0_5(a0);
return r4; return r4;
} }
static void sub_8146D94(struct MysteryEventStruct *a0) static void MENewsJisanResetCounterUnk0_2(struct MENewsJisanStruct *a0)
{ {
a0->unk_0_2 = 0; a0->unk_0_2 = 0;
} }
static void sub_8146DA0(struct MysteryEventStruct *a0) static void MENewsJisanIncrementCounterUnk0_2(struct MENewsJisanStruct *a0)
{ {
a0->unk_0_2++; a0->unk_0_2++;
if ((u8)a0->unk_0_2 > 4) if ((u8)a0->unk_0_2 > 4)
a0->unk_0_2 = 4; a0->unk_0_2 = 4;
} }
static void sub_8146DD8(struct MysteryEventStruct *a0) static void MENewsJisanIncrementCounterUnk0_5(struct MENewsJisanStruct *a0)
{ {
a0->unk_0_5++; a0->unk_0_5++;
if ((u8)a0->unk_0_5 > 5) if ((u8)a0->unk_0_5 > 5)
a0->unk_0_5 = 5; a0->unk_0_5 = 5;
} }
static u32 sub_8146E0C(struct MysteryEventStruct *a0) static u32 GetMENewsJisanState(struct MENewsJisanStruct *a0)
{ {
struct MysteryEventStruct r0; struct MENewsJisanStruct r0;
if ((u8)a0->unk_0_5 == 5) if ((u8)a0->unk_0_5 == 5)
return 6; return 6;
+3 -3
View File
@@ -505,7 +505,7 @@ struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void)
return &gSaveBlock1Ptr->unk_3120.buffer_310.data; return &gSaveBlock1Ptr->unk_3120.buffer_310.data;
} }
struct MysteryEventStruct * sub_8143D94(void) struct MENewsJisanStruct * GetMENewsJisanStructPtr(void)
{ {
return &gSaveBlock1Ptr->unk_3120.unk_340; return &gSaveBlock1Ptr->unk_3120.unk_340;
} }
@@ -562,8 +562,8 @@ void sub_8143E9C(void)
void sub_8143ED0(void) void sub_8143ED0(void)
{ {
CpuFill32(0, sub_8143D94(), sizeof(struct MysteryEventStruct)); CpuFill32(0, GetMENewsJisanStructPtr(), sizeof(struct MENewsJisanStruct));
sub_8146C88(); MENewsJisanReset();
} }
bool32 sub_8143EF4(const u8 * src) bool32 sub_8143EF4(const u8 * src)
+3 -3
View File
@@ -1412,11 +1412,11 @@ void task00_mystery_gift(u8 taskId)
{ {
if (data->source == 1) if (data->source == 1)
{ {
GenerateRandomNews(1); MENewsJisan_SetRandomReward(1);
} }
else else
{ {
GenerateRandomNews(2); MENewsJisan_SetRandomReward(2);
} }
} }
if (sp0 == 0) if (sp0 == 0)
@@ -1661,7 +1661,7 @@ void task00_mystery_gift(u8 taskId)
{ {
if (data->source == 1 && data->prevPromptWindowId == 3) if (data->source == 1 && data->prevPromptWindowId == 3)
{ {
GenerateRandomNews(3); MENewsJisan_SetRandomReward(3);
data->state = 17; data->state = 17;
} }
else else