Skip to content

zNPCTypeVillager progress#742

Merged
JoshSanch merged 9 commits into
bfbbdecomp:mainfrom
bluisblu:main
May 22, 2026
Merged

zNPCTypeVillager progress#742
JoshSanch merged 9 commits into
bfbbdecomp:mainfrom
bluisblu:main

Conversation

@bluisblu
Copy link
Copy Markdown
Contributor

Data still needs work, .sdata2 is out of order and .rodata is missing zeroed out entries (possibly from deadstripped functions?)

@github-actions
Copy link
Copy Markdown

main/SB/Game/zNPCTypeCommon

Section From To Bytes
📈 .text 97.63% 98.80% +275
Function From To Bytes
xUtil_choose<float>(const float*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeVillager

Section From To Bytes
.bss 0.00% 100.00% +648
.data 54.13% 100.00% +1089
📈 .rodata 83.78% 89.04% +98
.sbss 0.00% 100.00% +64
.sdata 0.00% 100.00% +32
.sdata2 46.59% 100.00% +72
📈 .text 34.00% 98.61% +12480
Function From To Bytes
ZNPC_AnimTable_Villager(xAnimTable*) 95.02% 100.00% +48
ZNPC_AnimTable_BalloonBoy(xAnimTable*) 94.11% 100.00% +42
ZNPC_AnimTable_SuperFriend(xAnimTable*) 95.02% 100.00% +50
zNPCVillager::ColChkFlags() const 0.00% 100.00% +88
zNPCVillager::ColPenFlags() const 0.00% 100.00% +88
zNPCVillager::Reset() 2.50% 100.00% +156
zNPCVillager::ParseNonRandTalk() 1.49% 100.00% +264
zNPCVillager::ChkCheatSize() 0.00% 100.00% +344
zNPCVillager::CollideReview() 0.00% 100.00% +136
zNPCVillager::SelfSetup() 0.00% 100.00% +232
zNPCVillager::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +708
zNPCVillager::NPCMessage(NPCMsg*) 0.00% 100.00% +232
📈 zNPCVillager::FolkHandleMail(NPCMsg*) 0.00% 98.21% +263
zNPCVillager::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +188
zNPCVillager::SpeakStop() 0.00% 100.00% +140
zNPCVillager::PlayerIsStaring() 0.00% 100.00% +232
zNPCVillager::AddTalking(xPsyche*, int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*)) 0.00% 100.00% +248
zNPCVillager::FindMyConverse() 0.00% 100.00% +232
zNPCFish::Init(xEntAsset*) 0.00% 100.00% +132
zNPCFish::Reset() 1.14% 100.00% +348
zNPCFish::FishSoundTables() 0.00% 100.00% +352
zNPCFish::SelfSetup() 0.00% 100.00% +252
zNPCFish::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +256
zNPCFish::Process(xScene*, float) 0.00% 100.00% +216
zNPCFish::FolkHandleMail(NPCMsg*) 0.00% 100.00% +404
zNPCFish::MonitorCowering(xScene*, float) 0.00% 100.00% +396
zNPCMerManChair::Init(xEntAsset*) 95.00% 100.00% +4
zNPCMerManChair::Reset() 0.00% 100.00% +132
zNPCMerManChair::SelfSetup() 0.00% 100.00% +216
zNPCMerManChair::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +448
zNPCMerManChair::Process(xScene*, float) 0.00% 100.00% +108
zNPCNewsFish::Init(xEntAsset*) 0.00% 100.00% +220
zNPCNewsFish::PostSetup() 0.00% 100.00% +60
zNPCNewsFish::Process(xScene*, float) 0.00% 100.00% +680
zNPCNewsFish::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +212
📈 zNPCNewsFish::Render() 0.00% 93.69% +412
zNPCNewsFish::say(zNPCNewsFish::say_enum, int) 0.00% 100.00% +264
zNPCNewsFish::say(const zNPCNewsFish::say_enum*, unsigned long, int, int) 0.00% 100.00% +484
zNPCNewsFish::reset_said() 10.00% 100.00% +36
📈 zNPCSandyBikini::VFXLeakyFaucet(float) 1.01% 94.95% +372
📈 zNPCBalloonBoy::PlatShadRend() 0.00% 98.63% +576
zNPCBalloonBoy::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +308
zNPCBalloonBoy::FolkHandleMail(NPCMsg*) 0.00% 100.00% +124
zNPCBalloonBoy::ParseSysEvent(NPCSysEvent*) 0.00% 100.00% +260
📈 zNPCBalloonBoy::PlatAnimSet(en_BBOY_PLATANIM) 3.23% 48.42% +56
zNPCBalloonBoy::IAmBallooning() 0.00% 100.00% +148
⚠️ zNPCBubbleBuddy::Init(xEntAsset*) 71.43% 23.81% --40
📈 zNPCBubbleBuddy::Setup() 59.53% 93.10% +77
zNPCBubbleBuddy::RenderExtra() 91.76% 100.00% +10
📈 zNPCBubbleBuddy_AlphaUpdate(float) 0.00% 96.23% +204
📈 NPC_BubBud_RenderCB(RpAtomic*) 1.84% 88.55% +263
FOLK_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 4.38% 100.00% +122
MERC_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 0.00% 100.00% +276
zNPCNewsFish::get_said(zNPCNewsFish::say_enum) 0.00% 100.00% +20
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276
xMat3x3RMulVec(xVec3*, const xMat3x3*, const xVec3*) 0.00% 100.00% +100

main/SB/Game/zNPCSndTable

Section From To Bytes
.sdata2 85.71% 100.00% +4
📈 .text 70.85% 86.60% +276
Function From To Bytes
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCHazard

Section From To Bytes
📈 .sdata2 38.82% 41.18% +8
📈 .text 50.63% 51.42% +275
Function From To Bytes
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

@github-actions
Copy link
Copy Markdown

main/SB/Game/zNPCTypeCommon

Section From To Bytes
📈 .text 97.63% 98.80% +275
Function From To Bytes
xUtil_choose<float>(const float*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeVillager

Section From To Bytes
.bss 0.00% 100.00% +648
.data 54.13% 100.00% +1089
📈 .rodata 83.78% 89.04% +98
.sbss 0.00% 100.00% +64
.sdata 0.00% 100.00% +32
.sdata2 46.59% 100.00% +72
📈 .text 34.00% 98.61% +12480
Function From To Bytes
ZNPC_AnimTable_Villager(xAnimTable*) 95.02% 100.00% +48
ZNPC_AnimTable_BalloonBoy(xAnimTable*) 94.11% 100.00% +42
ZNPC_AnimTable_SuperFriend(xAnimTable*) 95.02% 100.00% +50
zNPCVillager::ColChkFlags() const 0.00% 100.00% +88
zNPCVillager::ColPenFlags() const 0.00% 100.00% +88
zNPCVillager::Reset() 2.50% 100.00% +156
zNPCVillager::ParseNonRandTalk() 1.49% 100.00% +264
zNPCVillager::ChkCheatSize() 0.00% 100.00% +344
zNPCVillager::CollideReview() 0.00% 100.00% +136
zNPCVillager::SelfSetup() 0.00% 100.00% +232
zNPCVillager::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +708
zNPCVillager::NPCMessage(NPCMsg*) 0.00% 100.00% +232
📈 zNPCVillager::FolkHandleMail(NPCMsg*) 0.00% 98.21% +263
zNPCVillager::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +188
zNPCVillager::SpeakStop() 0.00% 100.00% +140
zNPCVillager::PlayerIsStaring() 0.00% 100.00% +232
zNPCVillager::AddTalking(xPsyche*, int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*)) 0.00% 100.00% +248
zNPCVillager::FindMyConverse() 0.00% 100.00% +232
zNPCFish::Init(xEntAsset*) 0.00% 100.00% +132
zNPCFish::Reset() 1.14% 100.00% +348
zNPCFish::FishSoundTables() 0.00% 100.00% +352
zNPCFish::SelfSetup() 0.00% 100.00% +252
zNPCFish::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +256
zNPCFish::Process(xScene*, float) 0.00% 100.00% +216
zNPCFish::FolkHandleMail(NPCMsg*) 0.00% 100.00% +404
zNPCFish::MonitorCowering(xScene*, float) 0.00% 100.00% +396
zNPCMerManChair::Init(xEntAsset*) 95.00% 100.00% +4
zNPCMerManChair::Reset() 0.00% 100.00% +132
zNPCMerManChair::SelfSetup() 0.00% 100.00% +216
zNPCMerManChair::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +448
zNPCMerManChair::Process(xScene*, float) 0.00% 100.00% +108
zNPCNewsFish::Init(xEntAsset*) 0.00% 100.00% +220
zNPCNewsFish::PostSetup() 0.00% 100.00% +60
zNPCNewsFish::Process(xScene*, float) 0.00% 100.00% +680
zNPCNewsFish::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +212
📈 zNPCNewsFish::Render() 0.00% 93.69% +412
zNPCNewsFish::say(zNPCNewsFish::say_enum, int) 0.00% 100.00% +264
zNPCNewsFish::say(const zNPCNewsFish::say_enum*, unsigned long, int, int) 0.00% 100.00% +484
zNPCNewsFish::reset_said() 10.00% 100.00% +36
📈 zNPCSandyBikini::VFXLeakyFaucet(float) 1.01% 94.95% +372
📈 zNPCBalloonBoy::PlatShadRend() 0.00% 98.63% +576
zNPCBalloonBoy::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +308
zNPCBalloonBoy::FolkHandleMail(NPCMsg*) 0.00% 100.00% +124
zNPCBalloonBoy::ParseSysEvent(NPCSysEvent*) 0.00% 100.00% +260
📈 zNPCBalloonBoy::PlatAnimSet(en_BBOY_PLATANIM) 3.23% 48.42% +56
zNPCBalloonBoy::IAmBallooning() 0.00% 100.00% +148
⚠️ zNPCBubbleBuddy::Init(xEntAsset*) 71.43% 23.81% --40
📈 zNPCBubbleBuddy::Setup() 59.53% 93.10% +77
zNPCBubbleBuddy::RenderExtra() 91.76% 100.00% +10
📈 zNPCBubbleBuddy_AlphaUpdate(float) 0.00% 96.23% +204
📈 NPC_BubBud_RenderCB(RpAtomic*) 1.84% 88.55% +263
FOLK_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 4.38% 100.00% +122
MERC_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 0.00% 100.00% +276
zNPCNewsFish::get_said(zNPCNewsFish::say_enum) 0.00% 100.00% +20
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276
xMat3x3RMulVec(xVec3*, const xMat3x3*, const xVec3*) 0.00% 100.00% +100

main/SB/Game/zNPCSndTable

Section From To Bytes
.sdata2 85.71% 100.00% +4
📈 .text 70.85% 86.60% +276
Function From To Bytes
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCHazard

Section From To Bytes
📈 .sdata2 38.82% 41.18% +8
📈 .text 50.63% 51.42% +275
Function From To Bytes
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

@github-actions
Copy link
Copy Markdown

main/SB/Game/zGame

Section From To Bytes
📈 .sdata2 84.03% 86.81% +4
📈 .text 64.48% 67.67% +275
Function From To Bytes
xUtil_select<char>(char**, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeCommon

Section From To Bytes
📈 .text 97.63% 98.80% +275
Function From To Bytes
xUtil_choose<float>(const float*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeVillager

Section From To Bytes
.bss 0.00% 100.00% +648
.data 54.13% 100.00% +1089
📈 .rodata 83.78% 89.04% +98
.sbss 0.00% 100.00% +64
.sdata 0.00% 100.00% +32
.sdata2 46.59% 100.00% +72
📈 .text 34.00% 98.61% +12480
Function From To Bytes
ZNPC_AnimTable_Villager(xAnimTable*) 95.02% 100.00% +48
ZNPC_AnimTable_BalloonBoy(xAnimTable*) 94.11% 100.00% +42
ZNPC_AnimTable_SuperFriend(xAnimTable*) 95.02% 100.00% +50
zNPCVillager::ColChkFlags() const 0.00% 100.00% +88
zNPCVillager::ColPenFlags() const 0.00% 100.00% +88
zNPCVillager::Reset() 2.50% 100.00% +156
zNPCVillager::ParseNonRandTalk() 1.49% 100.00% +264
zNPCVillager::ChkCheatSize() 0.00% 100.00% +344
zNPCVillager::CollideReview() 0.00% 100.00% +136
zNPCVillager::SelfSetup() 0.00% 100.00% +232
zNPCVillager::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +708
zNPCVillager::NPCMessage(NPCMsg*) 0.00% 100.00% +232
📈 zNPCVillager::FolkHandleMail(NPCMsg*) 0.00% 98.21% +263
zNPCVillager::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +188
zNPCVillager::SpeakStop() 0.00% 100.00% +140
zNPCVillager::PlayerIsStaring() 0.00% 100.00% +232
zNPCVillager::AddTalking(xPsyche*, int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*)) 0.00% 100.00% +248
zNPCVillager::FindMyConverse() 0.00% 100.00% +232
zNPCFish::Init(xEntAsset*) 0.00% 100.00% +132
zNPCFish::Reset() 1.14% 100.00% +348
zNPCFish::FishSoundTables() 0.00% 100.00% +352
zNPCFish::SelfSetup() 0.00% 100.00% +252
zNPCFish::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +256
zNPCFish::Process(xScene*, float) 0.00% 100.00% +216
zNPCFish::FolkHandleMail(NPCMsg*) 0.00% 100.00% +404
zNPCFish::MonitorCowering(xScene*, float) 0.00% 100.00% +396
zNPCMerManChair::Init(xEntAsset*) 95.00% 100.00% +4
zNPCMerManChair::Reset() 0.00% 100.00% +132
zNPCMerManChair::SelfSetup() 0.00% 100.00% +216
zNPCMerManChair::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +448
zNPCMerManChair::Process(xScene*, float) 0.00% 100.00% +108
zNPCNewsFish::Init(xEntAsset*) 0.00% 100.00% +220
zNPCNewsFish::PostSetup() 0.00% 100.00% +60
zNPCNewsFish::Process(xScene*, float) 0.00% 100.00% +680
zNPCNewsFish::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +212
📈 zNPCNewsFish::Render() 0.00% 93.69% +412
zNPCNewsFish::say(zNPCNewsFish::say_enum, int) 0.00% 100.00% +264
zNPCNewsFish::say(const zNPCNewsFish::say_enum*, unsigned long, int, int) 0.00% 100.00% +484
zNPCNewsFish::reset_said() 10.00% 100.00% +36
📈 zNPCSandyBikini::VFXLeakyFaucet(float) 1.01% 94.95% +372
📈 zNPCBalloonBoy::PlatShadRend() 0.00% 98.63% +576
zNPCBalloonBoy::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +308
zNPCBalloonBoy::FolkHandleMail(NPCMsg*) 0.00% 100.00% +124
zNPCBalloonBoy::ParseSysEvent(NPCSysEvent*) 0.00% 100.00% +260
📈 zNPCBalloonBoy::PlatAnimSet(en_BBOY_PLATANIM) 3.23% 48.42% +56
zNPCBalloonBoy::IAmBallooning() 0.00% 100.00% +148
⚠️ zNPCBubbleBuddy::Init(xEntAsset*) 71.43% 23.81% --40
📈 zNPCBubbleBuddy::Setup() 59.53% 93.10% +77
zNPCBubbleBuddy::RenderExtra() 91.76% 100.00% +10
📈 zNPCBubbleBuddy_AlphaUpdate(float) 0.00% 96.23% +204
📈 NPC_BubBud_RenderCB(RpAtomic*) 1.84% 88.55% +263
FOLK_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 4.38% 100.00% +122
MERC_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 0.00% 100.00% +276
zNPCNewsFish::get_said(zNPCNewsFish::say_enum) 0.00% 100.00% +20
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276
xMat3x3RMulVec(xVec3*, const xMat3x3*, const xVec3*) 0.00% 100.00% +100

main/SB/Game/zNPCSndTable

Section From To Bytes
.sdata2 85.71% 100.00% +4
📈 .text 70.85% 89.50% +326
Function From To Bytes
NPCS_SndTypeFromHash(unsigned int, NPCSndTrax*, NPCSndTrax*) 94.91% 100.00% +13
📈 NPCS_SndPickSimilar(en_NPC_SOUND, NPCSndTrax*, NPCSndTrax*) 76.28% 84.84% +37
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCSpawner

Section From To Bytes
📈 .text 89.94% 90.21% +17
Function From To Bytes
xUtil_select<SMSPStatus>(SMSPStatus**, int, const float*) 96.74% 100.00% +9
xUtil_select<SMNPCStatus>(SMNPCStatus**, int, const float*) 96.74% 100.00% +9

main/SB/Game/zNPCHazard

Section From To Bytes
📈 .sdata2 38.82% 41.18% +8
📈 .text 50.63% 51.42% +275
Function From To Bytes
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

@github-actions
Copy link
Copy Markdown

main/SB/Game/zGame

Section From To Bytes
📈 .sdata2 84.03% 86.81% +4
📈 .text 64.48% 67.67% +275
Function From To Bytes
xUtil_select<char>(char**, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeCommon

Section From To Bytes
📈 .text 97.63% 98.80% +275
Function From To Bytes
xUtil_choose<float>(const float*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeVillager

Section From To Bytes
.bss 0.00% 100.00% +648
.data 54.13% 100.00% +1089
📈 .rodata 83.78% 89.04% +98
.sbss 0.00% 100.00% +64
.sdata 0.00% 100.00% +32
.sdata2 46.59% 100.00% +72
📈 .text 34.00% 98.61% +12480
Function From To Bytes
ZNPC_AnimTable_Villager(xAnimTable*) 95.02% 100.00% +48
ZNPC_AnimTable_BalloonBoy(xAnimTable*) 94.11% 100.00% +42
ZNPC_AnimTable_SuperFriend(xAnimTable*) 95.02% 100.00% +50
zNPCVillager::ColChkFlags() const 0.00% 100.00% +88
zNPCVillager::ColPenFlags() const 0.00% 100.00% +88
zNPCVillager::Reset() 2.50% 100.00% +156
zNPCVillager::ParseNonRandTalk() 1.49% 100.00% +264
zNPCVillager::ChkCheatSize() 0.00% 100.00% +344
zNPCVillager::CollideReview() 0.00% 100.00% +136
zNPCVillager::SelfSetup() 0.00% 100.00% +232
zNPCVillager::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +708
zNPCVillager::NPCMessage(NPCMsg*) 0.00% 100.00% +232
📈 zNPCVillager::FolkHandleMail(NPCMsg*) 0.00% 98.21% +263
zNPCVillager::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +188
zNPCVillager::SpeakStop() 0.00% 100.00% +140
zNPCVillager::PlayerIsStaring() 0.00% 100.00% +232
zNPCVillager::AddTalking(xPsyche*, int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*)) 0.00% 100.00% +248
zNPCVillager::FindMyConverse() 0.00% 100.00% +232
zNPCFish::Init(xEntAsset*) 0.00% 100.00% +132
zNPCFish::Reset() 1.14% 100.00% +348
zNPCFish::FishSoundTables() 0.00% 100.00% +352
zNPCFish::SelfSetup() 0.00% 100.00% +252
zNPCFish::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +256
zNPCFish::Process(xScene*, float) 0.00% 100.00% +216
zNPCFish::FolkHandleMail(NPCMsg*) 0.00% 100.00% +404
zNPCFish::MonitorCowering(xScene*, float) 0.00% 100.00% +396
zNPCMerManChair::Init(xEntAsset*) 95.00% 100.00% +4
zNPCMerManChair::Reset() 0.00% 100.00% +132
zNPCMerManChair::SelfSetup() 0.00% 100.00% +216
zNPCMerManChair::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +448
zNPCMerManChair::Process(xScene*, float) 0.00% 100.00% +108
zNPCNewsFish::Init(xEntAsset*) 0.00% 100.00% +220
zNPCNewsFish::PostSetup() 0.00% 100.00% +60
zNPCNewsFish::Process(xScene*, float) 0.00% 100.00% +680
zNPCNewsFish::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +212
📈 zNPCNewsFish::Render() 0.00% 93.69% +412
zNPCNewsFish::say(zNPCNewsFish::say_enum, int) 0.00% 100.00% +264
zNPCNewsFish::say(const zNPCNewsFish::say_enum*, unsigned long, int, int) 0.00% 100.00% +484
zNPCNewsFish::reset_said() 10.00% 100.00% +36
📈 zNPCSandyBikini::VFXLeakyFaucet(float) 1.01% 94.95% +372
📈 zNPCBalloonBoy::PlatShadRend() 0.00% 98.63% +576
zNPCBalloonBoy::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +308
zNPCBalloonBoy::FolkHandleMail(NPCMsg*) 0.00% 100.00% +124
zNPCBalloonBoy::ParseSysEvent(NPCSysEvent*) 0.00% 100.00% +260
📈 zNPCBalloonBoy::PlatAnimSet(en_BBOY_PLATANIM) 3.23% 48.42% +56
zNPCBalloonBoy::IAmBallooning() 0.00% 100.00% +148
⚠️ zNPCBubbleBuddy::Init(xEntAsset*) 71.43% 23.81% --40
📈 zNPCBubbleBuddy::Setup() 59.53% 93.10% +77
zNPCBubbleBuddy::RenderExtra() 91.76% 100.00% +10
📈 zNPCBubbleBuddy_AlphaUpdate(float) 0.00% 96.23% +204
📈 NPC_BubBud_RenderCB(RpAtomic*) 1.84% 88.55% +263
FOLK_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 4.38% 100.00% +122
MERC_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 0.00% 100.00% +276
zNPCNewsFish::get_said(zNPCNewsFish::say_enum) 0.00% 100.00% +20
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276
xMat3x3RMulVec(xVec3*, const xMat3x3*, const xVec3*) 0.00% 100.00% +100

main/SB/Game/zNPCSndTable

Section From To Bytes
.sdata2 85.71% 100.00% +4
📈 .text 70.85% 89.50% +326
Function From To Bytes
NPCS_SndTypeFromHash(unsigned int, NPCSndTrax*, NPCSndTrax*) 94.91% 100.00% +13
📈 NPCS_SndPickSimilar(en_NPC_SOUND, NPCSndTrax*, NPCSndTrax*) 76.28% 84.84% +37
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCSpawner

Section From To Bytes
📈 .text 89.94% 90.21% +17
Function From To Bytes
xUtil_select<SMSPStatus>(SMSPStatus**, int, const float*) 96.74% 100.00% +9
xUtil_select<SMNPCStatus>(SMNPCStatus**, int, const float*) 96.74% 100.00% +9

main/SB/Game/zNPCHazard

Section From To Bytes
📈 .sdata2 38.82% 41.18% +8
📈 .text 50.63% 51.42% +275
Function From To Bytes
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

1 similar comment
@github-actions
Copy link
Copy Markdown

main/SB/Game/zGame

Section From To Bytes
📈 .sdata2 84.03% 86.81% +4
📈 .text 64.48% 67.67% +275
Function From To Bytes
xUtil_select<char>(char**, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeCommon

Section From To Bytes
📈 .text 97.63% 98.80% +275
Function From To Bytes
xUtil_choose<float>(const float*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeVillager

Section From To Bytes
.bss 0.00% 100.00% +648
.data 54.13% 100.00% +1089
📈 .rodata 83.78% 89.04% +98
.sbss 0.00% 100.00% +64
.sdata 0.00% 100.00% +32
.sdata2 46.59% 100.00% +72
📈 .text 34.00% 98.61% +12480
Function From To Bytes
ZNPC_AnimTable_Villager(xAnimTable*) 95.02% 100.00% +48
ZNPC_AnimTable_BalloonBoy(xAnimTable*) 94.11% 100.00% +42
ZNPC_AnimTable_SuperFriend(xAnimTable*) 95.02% 100.00% +50
zNPCVillager::ColChkFlags() const 0.00% 100.00% +88
zNPCVillager::ColPenFlags() const 0.00% 100.00% +88
zNPCVillager::Reset() 2.50% 100.00% +156
zNPCVillager::ParseNonRandTalk() 1.49% 100.00% +264
zNPCVillager::ChkCheatSize() 0.00% 100.00% +344
zNPCVillager::CollideReview() 0.00% 100.00% +136
zNPCVillager::SelfSetup() 0.00% 100.00% +232
zNPCVillager::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +708
zNPCVillager::NPCMessage(NPCMsg*) 0.00% 100.00% +232
📈 zNPCVillager::FolkHandleMail(NPCMsg*) 0.00% 98.21% +263
zNPCVillager::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +188
zNPCVillager::SpeakStop() 0.00% 100.00% +140
zNPCVillager::PlayerIsStaring() 0.00% 100.00% +232
zNPCVillager::AddTalking(xPsyche*, int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*)) 0.00% 100.00% +248
zNPCVillager::FindMyConverse() 0.00% 100.00% +232
zNPCFish::Init(xEntAsset*) 0.00% 100.00% +132
zNPCFish::Reset() 1.14% 100.00% +348
zNPCFish::FishSoundTables() 0.00% 100.00% +352
zNPCFish::SelfSetup() 0.00% 100.00% +252
zNPCFish::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +256
zNPCFish::Process(xScene*, float) 0.00% 100.00% +216
zNPCFish::FolkHandleMail(NPCMsg*) 0.00% 100.00% +404
zNPCFish::MonitorCowering(xScene*, float) 0.00% 100.00% +396
zNPCMerManChair::Init(xEntAsset*) 95.00% 100.00% +4
zNPCMerManChair::Reset() 0.00% 100.00% +132
zNPCMerManChair::SelfSetup() 0.00% 100.00% +216
zNPCMerManChair::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +448
zNPCMerManChair::Process(xScene*, float) 0.00% 100.00% +108
zNPCNewsFish::Init(xEntAsset*) 0.00% 100.00% +220
zNPCNewsFish::PostSetup() 0.00% 100.00% +60
zNPCNewsFish::Process(xScene*, float) 0.00% 100.00% +680
zNPCNewsFish::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +212
📈 zNPCNewsFish::Render() 0.00% 93.69% +412
zNPCNewsFish::say(zNPCNewsFish::say_enum, int) 0.00% 100.00% +264
zNPCNewsFish::say(const zNPCNewsFish::say_enum*, unsigned long, int, int) 0.00% 100.00% +484
zNPCNewsFish::reset_said() 10.00% 100.00% +36
📈 zNPCSandyBikini::VFXLeakyFaucet(float) 1.01% 94.95% +372
📈 zNPCBalloonBoy::PlatShadRend() 0.00% 98.63% +576
zNPCBalloonBoy::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +308
zNPCBalloonBoy::FolkHandleMail(NPCMsg*) 0.00% 100.00% +124
zNPCBalloonBoy::ParseSysEvent(NPCSysEvent*) 0.00% 100.00% +260
📈 zNPCBalloonBoy::PlatAnimSet(en_BBOY_PLATANIM) 3.23% 48.42% +56
zNPCBalloonBoy::IAmBallooning() 0.00% 100.00% +148
⚠️ zNPCBubbleBuddy::Init(xEntAsset*) 71.43% 23.81% --40
📈 zNPCBubbleBuddy::Setup() 59.53% 93.10% +77
zNPCBubbleBuddy::RenderExtra() 91.76% 100.00% +10
📈 zNPCBubbleBuddy_AlphaUpdate(float) 0.00% 96.23% +204
📈 NPC_BubBud_RenderCB(RpAtomic*) 1.84% 88.55% +263
FOLK_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 4.38% 100.00% +122
MERC_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 0.00% 100.00% +276
zNPCNewsFish::get_said(zNPCNewsFish::say_enum) 0.00% 100.00% +20
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276
xMat3x3RMulVec(xVec3*, const xMat3x3*, const xVec3*) 0.00% 100.00% +100

main/SB/Game/zNPCSndTable

Section From To Bytes
.sdata2 85.71% 100.00% +4
📈 .text 70.85% 89.50% +326
Function From To Bytes
NPCS_SndTypeFromHash(unsigned int, NPCSndTrax*, NPCSndTrax*) 94.91% 100.00% +13
📈 NPCS_SndPickSimilar(en_NPC_SOUND, NPCSndTrax*, NPCSndTrax*) 76.28% 84.84% +37
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCSpawner

Section From To Bytes
📈 .text 89.94% 90.21% +17
Function From To Bytes
xUtil_select<SMSPStatus>(SMSPStatus**, int, const float*) 96.74% 100.00% +9
xUtil_select<SMNPCStatus>(SMNPCStatus**, int, const float*) 96.74% 100.00% +9

main/SB/Game/zNPCHazard

Section From To Bytes
📈 .sdata2 38.82% 41.18% +8
📈 .text 50.63% 51.42% +275
Function From To Bytes
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

@github-actions
Copy link
Copy Markdown

main/SB/Game/zGame

Section From To Bytes
📈 .sdata2 84.03% 86.81% +4
📈 .text 64.48% 67.67% +275
Function From To Bytes
xUtil_select<char>(char**, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeCommon

Section From To Bytes
📈 .text 97.63% 98.80% +275
Function From To Bytes
xUtil_choose<float>(const float*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCTypeVillager

Section From To Bytes
.bss 0.00% 100.00% +648
.data 54.13% 100.00% +1089
📈 .rodata 83.78% 89.04% +98
.sbss 0.00% 100.00% +64
.sdata 0.00% 100.00% +32
.sdata2 46.59% 100.00% +72
📈 .text 34.00% 98.61% +12480
Function From To Bytes
ZNPC_AnimTable_Villager(xAnimTable*) 95.02% 100.00% +48
ZNPC_AnimTable_BalloonBoy(xAnimTable*) 94.11% 100.00% +42
ZNPC_AnimTable_SuperFriend(xAnimTable*) 95.02% 100.00% +50
zNPCVillager::ColChkFlags() const 0.00% 100.00% +88
zNPCVillager::ColPenFlags() const 0.00% 100.00% +88
zNPCVillager::Reset() 2.50% 100.00% +156
zNPCVillager::ParseNonRandTalk() 1.49% 100.00% +264
zNPCVillager::ChkCheatSize() 0.00% 100.00% +344
zNPCVillager::CollideReview() 0.00% 100.00% +136
zNPCVillager::SelfSetup() 0.00% 100.00% +232
zNPCVillager::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +708
zNPCVillager::NPCMessage(NPCMsg*) 0.00% 100.00% +232
📈 zNPCVillager::FolkHandleMail(NPCMsg*) 0.00% 98.21% +263
zNPCVillager::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +188
zNPCVillager::SpeakStop() 0.00% 100.00% +140
zNPCVillager::PlayerIsStaring() 0.00% 100.00% +232
zNPCVillager::AddTalking(xPsyche*, int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*), int (*)(xGoal*, void*, en_trantype*, float, void*)) 0.00% 100.00% +248
zNPCVillager::FindMyConverse() 0.00% 100.00% +232
zNPCFish::Init(xEntAsset*) 0.00% 100.00% +132
zNPCFish::Reset() 1.14% 100.00% +348
zNPCFish::FishSoundTables() 0.00% 100.00% +352
zNPCFish::SelfSetup() 0.00% 100.00% +252
zNPCFish::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +256
zNPCFish::Process(xScene*, float) 0.00% 100.00% +216
zNPCFish::FolkHandleMail(NPCMsg*) 0.00% 100.00% +404
zNPCFish::MonitorCowering(xScene*, float) 0.00% 100.00% +396
zNPCMerManChair::Init(xEntAsset*) 95.00% 100.00% +4
zNPCMerManChair::Reset() 0.00% 100.00% +132
zNPCMerManChair::SelfSetup() 0.00% 100.00% +216
zNPCMerManChair::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +448
zNPCMerManChair::Process(xScene*, float) 0.00% 100.00% +108
zNPCNewsFish::Init(xEntAsset*) 0.00% 100.00% +220
zNPCNewsFish::PostSetup() 0.00% 100.00% +60
zNPCNewsFish::Process(xScene*, float) 0.00% 100.00% +680
zNPCNewsFish::SpeakStart(unsigned int, unsigned int, int) 0.00% 100.00% +212
📈 zNPCNewsFish::Render() 0.00% 93.69% +412
zNPCNewsFish::say(zNPCNewsFish::say_enum, int) 0.00% 100.00% +264
zNPCNewsFish::say(const zNPCNewsFish::say_enum*, unsigned long, int, int) 0.00% 100.00% +484
zNPCNewsFish::reset_said() 10.00% 100.00% +36
📈 zNPCSandyBikini::VFXLeakyFaucet(float) 1.01% 94.95% +372
📈 zNPCBalloonBoy::PlatShadRend() 0.00% 98.63% +576
zNPCBalloonBoy::AnimPick(int, en_NPC_GOAL_SPOT, xGoal*) 0.00% 100.00% +308
zNPCBalloonBoy::FolkHandleMail(NPCMsg*) 0.00% 100.00% +124
zNPCBalloonBoy::ParseSysEvent(NPCSysEvent*) 0.00% 100.00% +260
📈 zNPCBalloonBoy::PlatAnimSet(en_BBOY_PLATANIM) 3.23% 48.42% +56
zNPCBalloonBoy::IAmBallooning() 0.00% 100.00% +148
⚠️ zNPCBubbleBuddy::Init(xEntAsset*) 71.43% 23.81% --40
📈 zNPCBubbleBuddy::Setup() 59.53% 93.10% +77
zNPCBubbleBuddy::RenderExtra() 91.76% 100.00% +10
📈 zNPCBubbleBuddy_AlphaUpdate(float) 0.00% 96.23% +204
📈 NPC_BubBud_RenderCB(RpAtomic*) 1.84% 88.55% +263
FOLK_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 4.38% 100.00% +122
MERC_grul_goAlert(xGoal*, void*, en_trantype*, float, void*) 0.00% 100.00% +276
zNPCNewsFish::get_said(zNPCNewsFish::say_enum) 0.00% 100.00% +20
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276
xMat3x3RMulVec(xVec3*, const xMat3x3*, const xVec3*) 0.00% 100.00% +100

main/SB/Game/zNPCSndTable

Section From To Bytes
.sdata2 85.71% 100.00% +4
📈 .text 70.85% 89.50% +326
Function From To Bytes
NPCS_SndTypeFromHash(unsigned int, NPCSndTrax*, NPCSndTrax*) 94.91% 100.00% +13
📈 NPCS_SndPickSimilar(en_NPC_SOUND, NPCSndTrax*, NPCSndTrax*) 76.28% 84.84% +37
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

main/SB/Game/zNPCSpawner

Section From To Bytes
📈 .text 89.94% 90.21% +17
Function From To Bytes
xUtil_select<SMSPStatus>(SMSPStatus**, int, const float*) 96.74% 100.00% +9
xUtil_select<SMNPCStatus>(SMNPCStatus**, int, const float*) 96.74% 100.00% +9

main/SB/Game/zNPCHazard

Section From To Bytes
📈 .sdata2 38.82% 41.18% +8
📈 .text 50.63% 51.42% +275
Function From To Bytes
xUtil_choose<int>(const int*, int, const float*) 0.00% 100.00% +276

@JoshSanch JoshSanch merged commit 5efb44f into bfbbdecomp:main May 22, 2026
5 checks passed
@JoshSanch
Copy link
Copy Markdown
Collaborator

🐐

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants