mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-08-14 21:03:10 -04:00
Real time Hint Assembly, Hint object refactor, and expansion of CustomMessage (#4078)
* Hint text refactor WIP DOES NOT BUILD * Update to show people DOES NOT BUILD * stuck on wierd errors * forgot to add * expression error does not name a type * commit in case anyone looks * static assertion failed: T must be an integral type or an enum. * fail without error, complaining about unrefernced things * fix some issues, still linker bs * restructure some trials, conditionalAlwaysHints and hint_list stuff * builds and does not crash, but there's text issues * fix text issues * commit to push, halfway through trimming down log * finish trimming spoiler logging * post merge clean up * plando mode seems to work, looking into song text wierdness * push for debugging crash on HBA sign * fix num and anju issues * fix the damn sign * Fix Windows build Renames GetMessage to GetHintMessage (a different name could be chosen, but GetMessage conflicts with a macro in winuser.h) Changes uint to size_t, uint does not seem to exist on Windows. * fix biggoron * remove some manual formatting that autoformat doesn't like * fix some altar text * fix more altar text * last cleanup --------- Co-authored-by: Christopher Leggett <chris@leggett.dev>
This commit is contained in:
@@ -16,9 +16,6 @@
|
||||
|
||||
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
|
||||
|
||||
#define TEXT_SHEIK_NEED_HOOK 0x700F
|
||||
#define TEXT_SHEIK_HAVE_HOOK 0x7010
|
||||
|
||||
void EnXc_Init(Actor* thisx, PlayState* play);
|
||||
void EnXc_Destroy(Actor* thisx, PlayState* play);
|
||||
void EnXc_Update(Actor* thisx, PlayState* play);
|
||||
@@ -2239,27 +2236,11 @@ void EnXc_SetupDialogueAction(EnXc* this, PlayState* play) {
|
||||
if (Actor_ProcessTalkRequest(&this->actor, play)) {
|
||||
this->action = SHEIK_ACTION_IN_DIALOGUE;
|
||||
} else {
|
||||
this->actor.flags |= ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY;
|
||||
if (IS_RANDO && gPlayState->sceneNum == SCENE_TEMPLE_OF_TIME) {
|
||||
if (!CHECK_DUNGEON_ITEM(DUNGEON_KEY_BOSS, SCENE_GANONS_TOWER)) {
|
||||
this->actor.textId = TEXT_SHEIK_NEED_HOOK;
|
||||
} else {
|
||||
this->actor.textId = TEXT_SHEIK_HAVE_HOOK;
|
||||
}
|
||||
} else if (IS_RANDO && gPlayState->sceneNum == SCENE_INSIDE_GANONS_CASTLE) {
|
||||
if (CHECK_OWNED_EQUIP(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_MASTER) && INV_CONTENT(ITEM_ARROW_LIGHT) == ITEM_ARROW_LIGHT &&
|
||||
CUR_CAPACITY(UPG_QUIVER) >= 30 && gSaveContext.isMagicAcquired) {
|
||||
this->actor.textId = TEXT_SHEIK_HAVE_HOOK;
|
||||
} else {
|
||||
this->actor.textId = TEXT_SHEIK_NEED_HOOK;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (INV_CONTENT(ITEM_HOOKSHOT) != ITEM_NONE) {
|
||||
this->actor.textId = 0x7010; //"You have what you need"
|
||||
} else {
|
||||
this->actor.textId = 0x700F; //"You need another skill"
|
||||
}
|
||||
this->actor.flags |= ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY; //this arrangment is cute but I would rather handle all message selection in ship code
|
||||
if (INV_CONTENT(ITEM_HOOKSHOT) != ITEM_NONE) {
|
||||
this->actor.textId = 0x7010; //"You have what you need"
|
||||
} else {
|
||||
this->actor.textId = 0x700F; //"You need another skill"
|
||||
}
|
||||
func_8002F2F4(&this->actor, play);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user