Skip to content

Commit d2e2bb0

Browse files
committed
MAP1_S03: func_800DBEC8
1 parent c891886 commit d2e2bb0

3 files changed

Lines changed: 68 additions & 10 deletions

File tree

include/event_flags.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,11 @@ typedef enum _EventFlag
108108
EventFlag_107 = 107,
109109
EventFlag_M1S03_PickupLibraryReserveKey = 108,
110110

111-
EventFlag_M1S02_PickupRubberBall = 110,
112-
EventFlag_M1S02_UsedRubberBall = 111,
113-
EventFlag_M1S02_PickupClassroomKey = 114,
114-
111+
EventFlag_M1S02_PickupRubberBall = 110,
112+
EventFlag_M1S02_UsedRubberBall = 111,
113+
EventFlag_M1S02_PickupClassroomKey = 114,
114+
EventFlag_115 = 115,
115+
EventFlag_M1S03_MonsterLurksBookRead = 116,
115116
EventFlag_117 = 117,
116117

117118
EventFlag_120 = 120,

include/maps/map1/map1_s03.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,6 @@ void func_800DC310(void);
7777

7878
void func_800DC0F8(void);
7979

80+
void func_800DBEC8(void);
81+
8082
#endif

src/maps/map1_s03/map1_s03.c

Lines changed: 61 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -373,12 +373,67 @@ INCLUDE_RODATA("asm/maps/map1_s03/nonmatchings/map1_s03", D_800CBAB0);
373373

374374
INCLUDE_ASM("asm/maps/map1_s03/nonmatchings/map1_s03", func_800DAF18);
375375

376-
INCLUDE_ASM("asm/maps/map1_s03/nonmatchings/map1_s03", func_800DBEC8);
376+
void func_800DBEC8(void)
377+
{
378+
#define STATE_BOOK_FIRST_TIME 3
379+
#define STATE_BOOK_AGAIN 6
380+
switch (g_SysWork.sysStateStep_C[0])
381+
{
382+
case 0:
383+
sharedFunc_800D20E4_0_s00();
384+
SysWork_StateStepIncrement(0);
385+
/* fallthrough */
386+
case 1:
387+
func_80085DF0();
388+
break;
389+
case 2:
390+
func_8008605C(EventFlag_M1S03_MonsterLurksBookRead, STATE_BOOK_AGAIN, STATE_BOOK_FIRST_TIME, false);
391+
break;
392+
case 3:
393+
MapMsg_DisplayAndHandleSelection(false, 15, false, false, 0, false); // "What's this?"
394+
break;
395+
case 4:
396+
SysWork_StateStepIncrementDelayed(Q12(0.6f), false);
397+
break;
398+
case 5:
399+
MapMsg_DisplayAndHandleSelection(false, 16, false, false, 0, false); // "The Monster Lurks is the book's title."
400+
break;
401+
case STATE_BOOK_AGAIN:
402+
func_800862F8(0, FILE_TIM_LMONSTER_TIM, false);
403+
SysWork_StateStepIncrementAfterFade(false, true, false, false, false);
404+
SysWork_StateStepIncrement(0);
405+
/* fallthrough */
406+
case 7:
407+
func_800862F8(1, 0, false);
408+
break;
409+
case 8:
410+
SysWork_StateStepIncrementAfterFade(1, true, false, false, false);
411+
break;
412+
case 9:
413+
func_800862F8(2, 0, false);
414+
SysWork_StateStepIncrementAfterFade(2, false, false, false, false);
415+
break;
416+
case 10:
417+
func_800862F8(2, 0, false);
418+
MapMsg_DisplayAndHandleSelection(false, 17, false, false, 0, false); // "Chapter3: ..."
419+
break;
420+
case 11:
421+
func_800862F8(2, 0, false);
422+
SysWork_StateStepIncrementAfterFade(2, true, false, false, false);
423+
break;
424+
default:
425+
sharedFunc_800D2244_0_s00(false);
426+
SysWork_StateSetNext(SysState_Gameplay);
427+
Savegame_EventFlagSet(EventFlag_M1S03_MonsterLurksBookRead);
428+
SysWork_StateStepIncrementAfterFade(0, false, false, false, false);
429+
break;
430+
}
431+
}
377432

378433
void func_800DC0F8(void)
379434
{
380-
#define STATE_EVENTFLAG_117_FALSE NO_VALUE
381-
#define STATE_EVENTFLAG_117_TRUE 8
435+
#define STATE_EVENTFLAG_117_TRUE NO_VALUE
436+
#define STATE_EVENTFLAG_117_FALSE 8
382437
switch (g_SysWork.sysStateStep_C[0])
383438
{
384439
case 0:
@@ -410,15 +465,15 @@ void func_800DC0F8(void)
410465
break;
411466
case 7:
412467
SysWork_StateStepIncrementAfterFade(false, false, 0, 0, false);
413-
func_8008605C(EventFlag_117, STATE_EVENTFLAG_117_FALSE, STATE_EVENTFLAG_117_TRUE, false);
468+
func_8008605C(EventFlag_117, STATE_EVENTFLAG_117_TRUE, STATE_EVENTFLAG_117_FALSE, false);
414469
break;
415-
case STATE_EVENTFLAG_117_TRUE:
470+
case STATE_EVENTFLAG_117_FALSE:
416471
SysWork_StateStepIncrementAfterFade(1, false, 0, 0, false);
417472
break;
418473
case 9:
419474
MapMsg_DisplayAndHandleSelection(false, 30, false, false, 0, false); // "This is from an old fairy tale."
420475
break;
421-
//STATE_EVENTFLAG_117_FALSE:
476+
//STATE_EVENTFLAG_117_TRUE:
422477
default:
423478
sharedFunc_800D2244_0_s00(false);
424479
SysWork_StateSetNext(SysState_Gameplay);

0 commit comments

Comments
 (0)