mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-21 17:46:39 -05:00
68 lines
2.7 KiB
C
68 lines
2.7 KiB
C
#ifndef GUARD_DUNGEON_MESSAGE_H
|
|
#define GUARD_DUNGEON_MESSAGE_H
|
|
|
|
#include "structs/dungeon_entity.h"
|
|
#include "string_format.h"
|
|
#include "structs/str_dungeon.h"
|
|
|
|
struct MonDialogueSpriteInfo
|
|
{
|
|
s16 species;
|
|
u8 spriteId;
|
|
};
|
|
|
|
// Depending on partner's pokemon species, the dialogue may be slightly different.
|
|
#define DIALOGUE_ALLOW_ALL 0
|
|
#define DIALOGUE_ALLOW_MOST 1 // Bulbasaur, Cyndaquil, Mudkip, Pikachu, Charmander, Treecko
|
|
#define DIALOGUE_ONLY_SQUIRTLE_TOTODILE 7
|
|
#define DIALOGUE_ONLY_TORCHIC_CHICORITA 280
|
|
|
|
struct DungeonDialogueStruct
|
|
{
|
|
u16 type;
|
|
u8 spriteId;
|
|
u8 spritePlacementId; // Information on mon's portrait x/y and flip
|
|
s16 speciesId;
|
|
s16 allowType;
|
|
const u8 *str;
|
|
};
|
|
|
|
extern bool8 gUnknown_203B434;
|
|
|
|
void sub_80521D0(void);
|
|
void sub_8052210(bool8 a0);
|
|
void sub_805229C(void);
|
|
|
|
// These functions display the string if certain conditions are met. The conditions differ depending on the function. The string is then saved to the message log.
|
|
void LogMessageByIdWithPopupCheckUser_Async(Entity *pokemon, const u8 *str);
|
|
void TryDisplayDungeonLoggableMessage3_Async(Entity *attacker, Entity *target, const u8 *str);
|
|
void TryDisplayDungeonLoggableMessage4_Async(Entity *attacker, Entity *target, const u8 *str);
|
|
void LogMessageByIdWithPopupCheckUserUnknown_Async(Entity *pokemon, DungeonPos *pos, const u8 *str);
|
|
|
|
// As opposed to the above - these always display the string and save it in the message log. False/True stand for an unknown argument. Not sure what the practical difference is between these.
|
|
void DisplayDungeonLoggableMessage(Entity *pokemon, const u8 *str);
|
|
void DisplayDungeonLoggableMessageFalse_Async(Entity *pokemon, const u8 *str);
|
|
void DisplayDungeonLoggableMessageTrue_Async(Entity *pokemon, const u8 *str);
|
|
|
|
void xxx_draw_string_80524F0(void);
|
|
void sub_80526D0(s32 r0);
|
|
void sub_8052740(s32 a0);
|
|
void DisplayDungeonMessage_Async(struct MonDialogueSpriteInfo *monSpriteInfo, const u8 *str, bool8 a2);
|
|
void DisplayDungeonDialogue_Async(const struct DungeonDialogueStruct *dialogueInfo);
|
|
bool32 DisplayDungeonYesNoMessage_Async(struct MonDialogueSpriteInfo *monSpriteInfo, const u8 *str, bool32 defaultYes);
|
|
s32 DisplayDungeonMenuMessage(struct MonDialogueSpriteInfo *monSpriteInfo, const u8 *str, const MenuItem *menuItems, u16 unkArg);
|
|
void BufferCutsceneProtagonists(s16 destIDs[2], Entity *leader, Entity *partner);
|
|
void TryDisplayGeneralTutorialMessage(void);
|
|
void DisplayItemTip(u8 itemId);
|
|
void DisplayYouReachedDestFloorStr(void);
|
|
void sub_8052FB8(const u8 *str);
|
|
const u8 *GetCurrentDungeonName(void);
|
|
|
|
// Actual function in Sky.
|
|
static inline void SetUnk1C05E(bool8 val)
|
|
{
|
|
gDungeon->unk1BDD4.unk1C05E = val;
|
|
}
|
|
|
|
#endif // GUARD_DUNGEON_MESSAGE_H
|