mirror of
https://github.com/zeldaret/tmc
synced 2026-06-16 06:45:56 -04:00
62 lines
1.5 KiB
C
62 lines
1.5 KiB
C
#include "entity.h"
|
|
#include "script.h"
|
|
#include "functions.h"
|
|
#include "flags.h"
|
|
#include "message.h"
|
|
#include "sound.h"
|
|
|
|
extern u16 gUnk_08113078[];
|
|
|
|
extern void sub_08095BE0(Entity*, u32);
|
|
|
|
ASM_FUNC("asm/non_matching/librarians/Librarians.inc", void Librarians(Entity* this))
|
|
|
|
ASM_FUNC("asm/non_matching/librarians/sub_0806BA34.inc",
|
|
void sub_0806BA34(Entity* this, ScriptExecutionContext* context))
|
|
|
|
void sub_0806BB1C(Entity* this, ScriptExecutionContext* context) {
|
|
s32 tmp;
|
|
|
|
tmp = 0xffffffff;
|
|
if (GetInventoryValue(0x39) == 1) {
|
|
tmp = 0x39;
|
|
} else if (GetInventoryValue(0x3a) == 1) {
|
|
tmp = 0x3a;
|
|
} else {
|
|
if (GetInventoryValue(0x3b) == 1) {
|
|
tmp = 0x3b;
|
|
}
|
|
if (tmp < 1) {
|
|
return;
|
|
}
|
|
}
|
|
if (context->intVariable == 0) {
|
|
sub_08095BE0(this, tmp);
|
|
InitializeAnimation(this, 0xc);
|
|
SoundReq(SFX_TASK_COMPLETE);
|
|
} else {
|
|
sub_0807CAA0(tmp, 2);
|
|
}
|
|
}
|
|
|
|
void sub_0806BB7C(Entity* this, ScriptExecutionContext* context) {
|
|
context->condition = 0;
|
|
if ((GetInventoryValue(0x39) == 2) && (GetInventoryValue(0x3a) == 2) && (GetInventoryValue(0x3b) == 2)) {
|
|
SetLocalFlag(0x73);
|
|
context->condition = 1;
|
|
}
|
|
}
|
|
|
|
void sub_0806BBB0(Entity* this) {
|
|
u32 flag;
|
|
u32 tmp;
|
|
|
|
if (GetInventoryValue(0x46) == 0) {
|
|
flag = CheckGlobalFlag(0x29);
|
|
tmp = BOOLCAST(flag);
|
|
} else {
|
|
tmp = 2;
|
|
}
|
|
MessageNoOverlap(gUnk_08113078[tmp], this);
|
|
}
|