summaryrefslogtreecommitdiff
path: root/docs/tutorial/data.md
diff options
context:
space:
mode:
authorfig02 <fig02srl@gmail.com>2022-05-21 14:23:43 -0400
committerGitHub <noreply@github.com>2022-05-21 14:23:43 -0400
commit2e6279bc8e528833704bc6b77635f0eeae6bbe44 (patch)
treed407e4462e1a07b22d11fd84c8013ab182153aaa /docs/tutorial/data.md
parent154f44b6da6e0b9be69886ec8d8a5a8ea2f4791e (diff)
PlayState Rename (#1231)
* global context -> play * fix PlayState* PlayState
Diffstat (limited to 'docs/tutorial/data.md')
-rw-r--r--docs/tutorial/data.md24
1 files changed, 12 insertions, 12 deletions
diff --git a/docs/tutorial/data.md b/docs/tutorial/data.md
index d3d1648d0..338522436 100644
--- a/docs/tutorial/data.md
+++ b/docs/tutorial/data.md
@@ -84,10 +84,10 @@ Large code block, click to show
#define THIS ((EnTg*)thisx)
-void EnTg_Init(Actor* thisx, GlobalContext* globalCtx);
-void EnTg_Destroy(Actor* thisx, GlobalContext* globalCtx);
-void EnTg_Update(Actor* thisx, GlobalContext* globalCtx);
-void EnTg_Draw(Actor* thisx, GlobalContext* globalCtx);
+void EnTg_Init(Actor* thisx, PlayState* play);
+void EnTg_Destroy(Actor* thisx, PlayState* play);
+void EnTg_Update(Actor* thisx, PlayState* play);
+void EnTg_Draw(Actor* thisx, PlayState* play);
s32 D_80B18910[] = { 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00140040, 0x00000000, 0x00000000 };
@@ -136,18 +136,18 @@ to tell the compiler not to look for the data in that file any more. Now run `ma
Now carry out the usual steps to decompile `Init`. The usual cleanup and struct population gets us to
```C
-void EnTg_Init(Actor *thisx, GlobalContext *globalCtx) {
+void EnTg_Init(Actor *thisx, PlayState *play) {
EnTg *this = THIS;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 28.0f);
- SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_0600AE40, &D_06005040, 0, 0, 0);
- Collider_InitCylinder(globalCtx, &this->collider);
- Collider_SetCylinder(globalCtx, &this->collider, &this->actor, (ColliderCylinderInit *) D_80B18910);
+ SkelAnime_InitFlex(play, &this->skelAnime, &D_0600AE40, &D_06005040, 0, 0, 0);
+ Collider_InitCylinder(play, &this->collider);
+ Collider_SetCylinder(play, &this->collider, &this->actor, (ColliderCylinderInit *) D_80B18910);
func_80061EFC(&this->actor.colChkInfo, NULL, (CollisionCheckInfoInit2 *) D_80B1893C);
this->actor.unk_1F = 6;
Actor_SetScale(&this->actor, 0.01f);
this->actionFunc = func_80B185C0;
- this->unk_208 = globalCtx->state.frames & 1;
+ this->unk_208 = play->state.frames & 1;
}
```
and it remains to deal with the data. mips2c has told us what the types should be. We run `colliderinit` on `D_80B18910` as usual, which gives
@@ -182,7 +182,7 @@ CollisionCheckInfoInit2 D_80B1893C = { 0, 0, 0, 0, 0xFF };
One more thing needs to change: since both are no longer arrays, we need to make the uses in the functions pointers:
```C
-Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &D_80B18910);
+Collider_SetCylinder(play, &this->collider, &this->actor, &D_80B18910);
func_80061EFC(&this->actor.colChkInfo, NULL, &D_80B1893C);
```
@@ -190,7 +190,7 @@ A quick check of the diff shows that we just need to put the action function set
Following the function tree as usual, we find the only other place any data is used is in `func_80B1871C`. From its use in `EnTg_Draw`, we realise that this is a `PostLimbDraw` function. Giving mips2c the correct prototype, it comes out as
```C
-void func_80B1871C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
+void func_80B1871C(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
? sp18;
sp18.unk0 = (s32) D_80B18968->unk0;
@@ -207,7 +207,7 @@ Vec3f D_80B18968 = { 0.0f, 800.0f, 0.0f };
```
and the function matches as
```C
-void func_80B1871C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
+void func_80B1871C(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnTg* this = THIS;
Vec3f sp18 = D_80B18968;