Merge pull request #143 from Pistonight/ipp_at_params

Add initial version of at-param helpers
This commit is contained in:
Léo Lam 2025-05-17 12:09:51 +02:00 committed by GitHub
commit 24a4226082
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 2 deletions

View File

@ -225,7 +225,7 @@ void ActorCreator::setCreatePriorityState1(InstParamPack& pack, BaseProc* proc)
void ActorCreator::setCreatePriorityState2(InstParamPack& pack, BaseProc* proc) {
pack.setProc(proc);
proc->setCreatePriorityState2();
pack.getBuffer().add(true, "@W");
pack->addWait();
}
} // namespace ksys::act

View File

@ -99,6 +99,25 @@ public:
bool pop(s32* position, Entry* out_entry);
// helpers for @-params
void addPosition(const sead::Vector3f& arg) { add(arg, "@P"); }
void addRotation(const sead::Vector3f& arg) { add(arg, "@R"); }
void addMatrix(const sead::Matrix34f& arg) { add(arg, "@M"); }
void addScale(const sead::Vector3f& arg) { add(arg, "@S"); }
void addDelegate(ActorCallback* arg) { add(arg, "@D"); }
void addDeleteDistanceSq(float arg) { add(arg, "@DD"); }
void addTranslationVelocity(const sead::Vector3f& arg) { add(arg, "@TV"); }
void addRotationVelocity(const sead::Vector3f& arg) { add(arg, "@RV"); }
void addModelUser(const sead::SafeString& arg) { add(arg, "@MU"); }
void addResourceLane(int arg) { add(arg, "@RL"); }
// TODO below: name TBD
void addWait() { add(true, "@W"); }
void addPlayerControl() { add(true, "@PC"); }
void addNoDisplay() { add(true, "@ND"); }
void addDisableCapture() { add(true, "@DC"); }
void addSystemBits() { add(true, "@SB"); } // 0x7100dc9594 might have a clue
void addMA(int arg) { add(arg, "@MA"); } // 0x710090e78c
private:
void writeBytes(const void* value, s32 size) {
sead::MemUtil::copy(&mData[mPosition], value, size);

View File

@ -121,7 +121,7 @@ void ShootingStarMgr::spawnStar() {
sead::Vector3f pos;
tryGetStarPosition(&pos);
pack.getBuffer().add(pos, "@P");
pack->addPosition(pos);
act::ActorCreator::instance()->requestCreateActor("FldObj_ShootingStar",
act::BaseProcHeapMgr::instance()->getHeap(),
nullptr, &pack, nullptr, 1);