#include "common.h" ApiStatus SpeakToPlayer(ScriptInstance* script, s32 isInitialCall) { return _show_message(script, isInitialCall, 0); } ApiStatus EndSpeech(ScriptInstance* script, s32 isInitialCall) { return _show_message(script, isInitialCall, 1); } ApiStatus ContinueSpeech(ScriptInstance* script, s32 isInitialCall) { return _show_message(script, isInitialCall, 2); } ApiStatus SpeakToNpc(ScriptInstance* script, s32 isInitialCall) { return _show_message(script, isInitialCall, 3); } INCLUDE_ASM("code_f4c60_len_4300", _show_message); INCLUDE_API_ASM("code_f4c60_len_4300", ShowMessageAtScreenPos); INCLUDE_API_ASM("code_f4c60_len_4300", ShowMessageAtWorldPos); INCLUDE_API_ASM("code_f4c60_len_4300", CloseMessage); INCLUDE_API_ASM("code_f4c60_len_4300", SwitchMessage); INCLUDE_API_ASM("code_f4c60_len_4300", ShowChoice); ApiStatus CloseChoice(ScriptInstance* script, s32 isInitialCall) { close_message(D_802DB268); return ApiStatus_DONE1; } ApiStatus CancelMessage(ScriptInstance* script, s32 isInitialCall) { cancel_message(gCurrentPrintContext); return ApiStatus_DONE2; } ApiStatus CancelMessageAndBlock(ScriptInstance* script, s32 isInitialCall) { cancel_message(gCurrentPrintContext); return ApiStatus_BLOCK; } ApiStatus SetMessageImages(ScriptInstance* script, s32 isInitialCall) { set_message_images(*script->ptrReadPos); return ApiStatus_DONE2; } ApiStatus func_802D0C94(ScriptInstance* script, s32 initialCall) { if (get_variable(script, *script->ptrReadPos) == 0) { D_8009A650[0] |= 0x10; } else { D_8009A650[0] &= ~0x10; } return ApiStatus_DONE2; } ApiStatus SetMessageString(ScriptInstance* script, s32 isInitialCall) { Bytecode* ptrReadPos = script->ptrReadPos; Bytecode string = get_variable(script, *ptrReadPos++); Bytecode index = get_variable(script, *ptrReadPos++); set_message_string(string, index); return ApiStatus_DONE2; } #ifdef NON_MATCHING // TODO: Figure out why there's an extra NOP after this function // It's probably because of a file split issue ApiStatus SetMessageValue(ScriptInstance* script, s32 initialCall) { Bytecode* ptrReadPos = script->ptrReadPos; Bytecode value = get_variable(script, *ptrReadPos++); Bytecode index = get_variable(script, *ptrReadPos); set_message_value(value, index); return ApiStatus_DONE2; } #else INCLUDE_API_ASM("code_f4c60_len_4300", SetMessageValue); #endif INCLUDE_API_ASM("code_f4c60_len_4300", HidePlayerShadow); INCLUDE_API_ASM("code_f4c60_len_4300", DisablePlayerPhysics); INCLUDE_API_ASM("code_f4c60_len_4300", DisablePlayerInput); INCLUDE_API_ASM("code_f4c60_len_4300", SetPlayerPos); INCLUDE_API_ASM("code_f4c60_len_4300", SetPlayerCollisionSize); INCLUDE_API_ASM("code_f4c60_len_4300", SetPlayerSpeed); INCLUDE_API_ASM("code_f4c60_len_4300", SetPlayerJumpscale); INCLUDE_API_ASM("code_f4c60_len_4300", SetPlayerAnimation); INCLUDE_API_ASM("code_f4c60_len_4300", SetPlayerActionState); INCLUDE_API_ASM("code_f4c60_len_4300", MovePlayerTo); INCLUDE_ASM("code_f4c60_len_4300", player_jump); INCLUDE_API_ASM("code_f4c60_len_4300", PlayerJump); INCLUDE_API_ASM("code_f4c60_len_4300", PlayerJump1); INCLUDE_API_ASM("code_f4c60_len_4300", PlayerJump2); INCLUDE_API_ASM("code_f4c60_len_4300", InterpPlayerYaw); INCLUDE_API_ASM("code_f4c60_len_4300", PlayerFaceNpc); INCLUDE_API_ASM("code_f4c60_len_4300", GetPlayerTargetYaw); INCLUDE_API_ASM("code_f4c60_len_4300", SetPlayerFlagBits); INCLUDE_API_ASM("code_f4c60_len_4300", GetPlayerActionState); INCLUDE_API_ASM("code_f4c60_len_4300", GetPlayerPos); INCLUDE_API_ASM("code_f4c60_len_4300", GetPlayerAnimation); INCLUDE_API_ASM("code_f4c60_len_4300", FullyRestoreHPandFP); INCLUDE_API_ASM("code_f4c60_len_4300", FullyRestoreSP); INCLUDE_API_ASM("code_f4c60_len_4300", EnablePartner); INCLUDE_API_ASM("code_f4c60_len_4300", DisablePartner); INCLUDE_API_ASM("code_f4c60_len_4300", ForceExitHeading); INCLUDE_API_ASM("code_f4c60_len_4300", UseExitHeading); INCLUDE_ASM("code_f4c60_len_4300", func_802D23F8); INCLUDE_API_ASM("code_f4c60_len_4300", DisablePulseStone); INCLUDE_API_ASM("code_f4c60_len_4300", GetCurrentPartner); INCLUDE_API_ASM("code_f4c60_len_4300", Disable8bitMario); INCLUDE_API_ASM("code_f4c60_len_4300", PlaySoundAtPlayer); INCLUDE_ASM("code_f4c60_len_4300", func_802D2D30); INCLUDE_ASM("code_f4c60_len_4300", func_802D2F34); INCLUDE_API_ASM("code_f4c60_len_4300", CreateImageObj); INCLUDE_API_ASM("code_f4c60_len_4300", RemoveImageObj); INCLUDE_API_ASM("code_f4c60_len_4300", SetObjPosition); INCLUDE_API_ASM("code_f4c60_len_4300", SetObjRotation); INCLUDE_API_ASM("code_f4c60_len_4300", SetObjScale); INCLUDE_API_ASM("code_f4c60_len_4300", SetObjJumpScale); INCLUDE_API_ASM("code_f4c60_len_4300", JumpObj); INCLUDE_ASM("code_f4c60_len_4300", func_802D4164); INCLUDE_ASM("code_f4c60_len_4300", func_802D43F4); INCLUDE_ASM("code_f4c60_len_4300", func_802D4488); INCLUDE_ASM("code_f4c60_len_4300", func_802D4560);