fig02

king zora message function

Apr 24th, 2022
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.36 KB | None | 0 0
  1. //////////////////////// debug
  2. s16 func_80A9C6C0(GlobalContext* globalCtx, Actor* thisx) {
  3.     EnKz* this = (EnKz*)thisx;
  4.     s16 ret = 1;
  5.  
  6.     switch (Message_GetState(&globalCtx->msgCtx)) {
  7.         case TEXT_STATE_DONE:
  8.             ret = 0;
  9.             switch (this->actor.textId) {
  10.                 case 0x4012:
  11.                     gSaveContext.infTable[19] |= 0x200;
  12.                     ret = 2;
  13.                     break;
  14.                 case 0x401B:
  15.                     ret = !Message_ShouldAdvance(globalCtx) ? 1 : 2;
  16.                     break;
  17.                 case 0x401F:
  18.                     gSaveContext.infTable[19] |= 0x200;
  19.                     break;
  20.             }
  21.             break;
  22.         case TEXT_STATE_DONE_FADING:
  23.             if (this->actor.textId != 0x4014) {
  24.                 if (this->actor.textId == 0x401B && !this->sfxPlayed) {
  25.                     Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
  26.                                            &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
  27.                     this->sfxPlayed = true;
  28.                 }
  29.             } else if (!this->sfxPlayed) {
  30.                 Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
  31.                                        &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
  32.                 this->sfxPlayed = true;
  33.             }
  34.             break;
  35.         case TEXT_STATE_CHOICE:
  36.             if (!Message_ShouldAdvance(globalCtx)) {
  37.                 break;
  38.             }
  39.             if (this->actor.textId == 0x4014) {
  40.                 if (globalCtx->msgCtx.choiceIndex == 0) {
  41.                     EnKz_SetupGetItem(this, globalCtx);
  42.                     ret = 2;
  43.                 } else {
  44.                     this->actor.textId = 0x4016;
  45.                     Message_ContinueTextbox(globalCtx, this->actor.textId);
  46.                 }
  47.             }
  48.             break;
  49.         case TEXT_STATE_EVENT:
  50.             if (Message_ShouldAdvance(globalCtx)) {
  51.                 ret = 2;
  52.             }
  53.             break;
  54.         case TEXT_STATE_NONE:
  55.         case TEXT_STATE_DONE_HAS_NEXT:
  56.         case TEXT_STATE_CLOSING:
  57.         case TEXT_STATE_SONG_DEMO_DONE:
  58.         case TEXT_STATE_8:
  59.         case TEXT_STATE_9:
  60.             break;
  61.     }
  62.     return ret;
  63. }
  64.  
  65. //////////////////////// 1.0
  66. s16 func_80AD5ED4(GlobalContext* arg0, Actor* arg1) {
  67.     s16 sp22;
  68.     GlobalContext* temp_a0_2;
  69.     MessageContext* temp_a0;
  70.     u16 temp_v0_2;
  71.     u16 temp_v0_3;
  72.     u32 temp_v0;
  73.  
  74.     sp22 = 1;
  75.     temp_a0 = arg0 + 0x20D8;
  76.     arg0 = arg0;
  77.     temp_v0 = Message_GetState(temp_a0);
  78.     switch (temp_v0) {
  79.     case 2:
  80.         sp22 = 0;
  81.         temp_v0_2 = arg1->textId;
  82.         switch (temp_v0_2) {                        /* switch 1; irregular */
  83.         case 0x4012:                                /* switch 1 */
  84.             gSaveContext.infTable[0x13] |= 0x200;
  85.             /* fallthrough */
  86.         case 0x401B:                                /* switch 1 */
  87.             sp22 = 2;
  88.             break;
  89.         case 0x401F:                                /* switch 1 */
  90.             gSaveContext.infTable[0x13] |= 0x200;
  91.             break;
  92.         }
  93.         break;
  94.     case 3:
  95.         temp_v0_3 = arg1->textId;
  96.         if (temp_v0_3 != 0x4014) {
  97.             if ((temp_v0_3 == 0x401B) && (arg1->unk1F8 == 0)) {
  98.                 Audio_PlaySoundGeneral(0x4802, &D_80104394, 4, &D_801043A0, &D_801043A0, &D_801043A8);
  99.                 arg1->unk1F8 = 1;
  100.             }
  101.         } else if (arg1->unk1F8 == 0) {
  102.             Audio_PlaySoundGeneral(0x4807, &D_80104394, 4, &D_801043A0, &D_801043A0, &D_801043A8);
  103.             arg1->unk1F8 = 1;
  104.         }
  105.         break;
  106.     case 4:
  107.         temp_a0_2 = arg0;
  108.         arg0 = arg0;
  109.         if ((Message_ShouldAdvance(temp_a0_2) != 0) && (arg1->textId == 0x4014)) {
  110.             if (arg0->msgCtx.choiceIndex == 0) {
  111.                 sp22 = 2;
  112.             } else {
  113.                 arg1->textId = 0x4016;
  114.                 Message_ContinueTextbox(arg0, 0x4016 & 0xFFFF);
  115.             }
  116.         }
  117.         break;
  118.     case 5:
  119.         if (Message_ShouldAdvance(arg0) != 0) {
  120.             sp22 = 2;
  121.         }
  122.         break;
  123.     case 6:
  124.         if (Message_ShouldAdvance(arg0) != 0) {
  125.             sp22 = 3;
  126.         }
  127.         break;
  128.     }
  129.     return sp22;
  130. }
Add Comment
Please, Sign In to add comment