Merge pull request #238 from Fexty12573/easy3d-system

Document 3D Abstraction Layer
This commit is contained in:
Rachel 2024-06-29 17:56:04 -07:00 committed by GitHub
commit 3a7bd2c2a9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
63 changed files with 1843 additions and 1803 deletions

123
docs/3d_rendering.md Normal file
View File

@ -0,0 +1,123 @@
## 3D Rendering
The following is a brief overview and introduction to the 3D rendering system in Pokemon Platinum and how to use it.
## Abstraction Layers
The lowest level 3D is interacting directly with the hardware via NitroSDK. NitroSystem provides a slight abstraction over this with `G3D`.
The game has 2 additional layers of abstraction over this:
### 1 - Easy3D
The first layer of abstraction is the Easy3D System (`easy3d.h`). Which provides basic functionality for:
- Loading Models and Textures
- Binding textures to models
- Drawing models with any transform
- Setting up and releasing a 3D graphics state
To elaborate on the last point: Before using any 3D graphics, a "3D Graphics State" must be initialized. The struct for this is currently called `GenericPointerData`. The Easy3D system provides an easy method to set up a simple gfx state via `Easy3D_Init` (With `Easy3D_Shutdown` as its counterpart), which works for most scenarios.
### 2 - Easy3DObject
The second layer of abstraction is `Easy3DObject` (`easy3d_object.h`). This API provides a streamlined interface for:
- Loading models, textures, and animations
- Binding a texture to a model
- Binding one or more animations to a model (both bone animations and texture animations)
- Updating the objects transform (the object itself keeps track of that)
- Updating animation state
- Drawing objects
- Cleanup
One thing to keep in mind is that this system by itself does not establish a 3D GFX State.
This system is also not used everywhere. In a lot of places Easy3D is used directly instead of this object oriented interface.
## Example
The following is an example for using the `Easy3DObject` API for:
1. Loading a model with textures, animation, and texture animation
2. Binding them all together
3. Updating the animations
4. Drawing the model
I will be using the Giratina model from the title screen for this.
### Loading the data
The first thing needed is some static storage to hold our data:
```c
Easy3DObject giratinaObj;
Easy3DModel giratinaModel;
Easy3DAnim giratinaAnim; // Model Animation
Easy3DAnim giratinaTexAnim; // Texture Animation
NNSFndAllocator allocator; // Needed for Animations
```
Next we load all of the data:
```c
// Open the title NARC
NARC *narc = NARC_ctor(NARC_INDEX_DEMO__TITLE__TITLEDEMO, HEAP_ID_FIELD);
// Load the model from the title screen NARC. Member index 1 is the model data.
// There is also Easy3DModel_Load which takes a NARC index and a member index.
Easy3DModel_LoadFrom(&giratinaModel, narc, 1, HEAP_ID_FIELD);
Easy3DObject_Init(&giratinaObj, &giratinaModel);
// Initialize the Allocator used by the animations
Heap_FndInitAllocatorForExpHeap(&allocator, HEAP_ID_FIELD, 4);
// Load the model animation with member index 2.
Easy3DAnim_LoadFrom(&giratinaModelAnim, &giratinaModel, narc, 2, HEAP_ID_FIELD, &allocator);
// Bind the animation to the object
Easy3DObject_AddAnim(&giratinaObj, &giratinaModelAnim);
// Do the same for the texture animation
Easy3DAnim_LoadFrom(&giratinaTexAnim, &giratinaModel, narc, 0, HEAP_ID_FIELD, &allocator);
Easy3DObject_AddAnim(&giratinaObj, &giratinaTexAnim);
NARC_dtor(narc);
```
This is all that needs to be done in terms of setup, now the model is ready to draw (provided a 3D GFX State has been set up).
### Drawing the Model
Before drawing there's a few things that should be configured on the object, one of them being the position of the model obviously. For simplicity's sake I will just set the models position to the player's position.
```c
const VecFx32 *pos = PlayerAvatar_PosVector(fieldSystem->playerAvatar);
Easy3DObject_SetPosition(&giratinaObj, pos->x, pos->y, pos->z);
// Make sure the model actually gets rendered
Easy3DObject_SetVisibility(&giratinaObj, TRUE);
// The model is pretty big so scale it to half its size
Easy3DObject_SetScale(&giratinaObj, FX32_CONST(0.5), FX32_CONST(0.5), FX32_CONST(0.5));
```
Now we can actually render the model:
```c
// Update the animations
// Here we advance the animation by one frame.
// There is also Easy3DAnim_Update which does not loop the animation
Easy3DAnim_UpdateLooped(&giratinaModelAnim, FX32_ONE);
Easy3DAnim_UpdateLooped(&giratinaTexAnim, FX32_ONE);
// Draw the model
Easy3DObject_Draw(&giratinaObj);
```
All of that results in the following:
https://github.com/pret/pokeplatinum/assets/60443001/ba162c62-e64a-4cd6-850f-414774f19bfd
Obviously the rotation and resizing is not outlined above. The code for this is the following:
```c
u16 angle = Easy3DObject_GetRotation(&giratinaObj, ROTATION_AXIS_Y);
angle = (angle + 100) % 0xFFFF;
Easy3DObject_SetRotation(&giratinaObj, angle, ROTATION_AXIS_Y);
// Resize using L and R
if (gCoreSys.heldKeys & PAD_BUTTON_R) {
VecFx32 scale;
Easy3DObject_GetScale(&giratinaObj, &scale.x, &scale.y, &scale.z);
scale.x = FX_Mul(scale.x, FX32_CONST(1.01));
scale.y = FX_Mul(scale.y, FX32_CONST(1.01));
scale.z = FX_Mul(scale.z, FX32_CONST(1.01));
Easy3DObject_SetScale(&giratinaObj, scale.x, scale.y, scale.z);
} else if (gCoreSys.heldKeys & PAD_BUTTON_L) {
VecFx32 scale;
Easy3DObject_GetScale(&giratinaObj, &scale.x, &scale.y, &scale.z);
scale.x = FX_Mul(scale.x, FX32_CONST(0.99));
scale.y = FX_Mul(scale.y, FX32_CONST(0.99));
scale.z = FX_Mul(scale.z, FX32_CONST(0.99));
Easy3DObject_SetScale(&giratinaObj, scale.x, scale.y, scale.z);
}
```

View File

@ -6,3 +6,7 @@ For more detailed information about the project as a whole, please refer to its
## Issues with the source code
- [Fixes for Various Bugs and Glitches](bugs_and_glitches.md)
## Subsystems
- [3D Graphics](3d_rendering.md)

19
include/easy3d.h Normal file
View File

@ -0,0 +1,19 @@
#ifndef POKEPLATINUM_EASY3D_H
#define POKEPLATINUM_EASY3D_H
#include <nitro/fx/fx.h>
#include <nnsys.h>
void Easy3D_LoadModelFromPath(const u8 heapID, const char *path, NNSG3dResMdl **outModel, NNSG3dResFileHeader **outResource);
void Easy3D_LoadModelFromResource(NNSG3dResMdl **outModel, NNSG3dResFileHeader **resource);
void Easy3D_InitRenderObjFromPath(const u8 heapID, const char *path, NNSG3dRenderObj *obj, NNSG3dResMdl **outModel, NNSG3dResFileHeader **outResource);
void Easy3D_InitRenderObjFromResource(NNSG3dRenderObj *renderObj, NNSG3dResMdl **model, NNSG3dResFileHeader **resource);
BOOL Easy3D_IsTextureUploadedToVRAM(NNSG3dResTex *texture);
void Easy3D_DrawRenderObj(NNSG3dRenderObj *renderObj, const VecFx32 *pos, const MtxFx33 *rot, const VecFx32 *scale);
void Easy3D_DrawRenderObjSimple(NNSG3dRenderObj *renderObj, const VecFx32 *pos, const MtxFx33 *rot, const VecFx32 *scale);
void Easy3D_Init(const u8 heapID);
void Easy3D_Shutdown(void);
BOOL Easy3D_BindTextureToResource(void *resource, NNSG3dResTex *texture);
BOOL Easy3D_UploadTextureToVRAM(NNSG3dResTex *texture);
#endif // POKEPLATINUM_EASY3D_H

68
include/easy3d_object.h Normal file
View File

@ -0,0 +1,68 @@
#ifndef POKEPLATINUM_EASY3D_OBJECT_H
#define POKEPLATINUM_EASY3D_OBJECT_H
#include "struct_decls/struct_02006C24_decl.h"
#include "constants/heap.h"
#include <nnsys.h>
#include <nitro/fx/fx.h>
enum RotationAxis {
ROTATION_AXIS_X = 0,
ROTATION_AXIS_Y,
ROTATION_AXIS_Z,
ROTATION_AXIS_COUNT
};
typedef struct Easy3DModel {
void *data;
NNSG3dResMdlSet *set;
NNSG3dResMdl *model;
NNSG3dResTex *texture;
} Easy3DModel;
typedef struct Easy3DAnim {
void *data;
void *anim;
NNSG3dAnmObj *animObj;
fx32 frame;
BOOL dataBorrowed; // Whether the data field is borrowed from another object (i.e. not allocated by this object)
} Easy3DAnim;
typedef struct Easy3DObject {
NNSG3dRenderObj renderObj;
VecFx32 position;
VecFx32 scale;
BOOL visible;
u16 rotation[ROTATION_AXIS_COUNT];
u8 padding_76[2];
} Easy3DObject;
void Easy3DModel_Load(Easy3DModel *model, u32 narcIndex, u32 memberIndex, u32 heapID);
void Easy3DModel_LoadFrom(Easy3DModel *model, NARC *narc, u32 memberIndex, u32 heapID);
void Easy3DModel_Release(Easy3DModel *model);
void Easy3DAnim_LoadFrom(Easy3DAnim *anim, const Easy3DModel *model, NARC *narc, u32 memberIndex, u32 heapID, NNSFndAllocator *allocator);
void Easy3DAnim_LoadFromData(Easy3DAnim *anim, const Easy3DModel *model, void *data, NNSFndAllocator *allocator);
void Easy3DAnim_Release(Easy3DAnim *anim, NNSFndAllocator *allocator);
void Easy3DAnim_UpdateLooped(Easy3DAnim *anim, fx32 frameDelta);
BOOL Easy3DAnim_Update(Easy3DAnim *anim, fx32 frameDelta);
void Easy3DAnim_SetFrame(Easy3DAnim *anim, fx32 frame);
fx32 Easy3DAnim_GetFrame(const Easy3DAnim *anim);
fx32 Easy3DAnim_GetFrameCount(const Easy3DAnim *anim);
void Easy3DObject_Init(Easy3DObject *obj, Easy3DModel *model);
void Easy3DObject_AddAnim(Easy3DObject *obj, Easy3DAnim *anim);
void Easy3DObject_RemoveAnim(Easy3DObject *obj, Easy3DAnim *anim);
void Easy3DObject_Draw(Easy3DObject *obj);
void Easy3DObject_DrawRotated(Easy3DObject *obj, const MtxFx33 *rotation);
void Easy3DObject_SetVisibility(Easy3DObject *obj, BOOL visible);
BOOL Easy3DObject_GetVisibility(const Easy3DObject *obj);
void Easy3DObject_SetPosition(Easy3DObject *obj, fx32 x, fx32 y, fx32 z);
void Easy3DObject_GetPosition(const Easy3DObject *obj, fx32 *outX, fx32 *outY, fx32 *outZ);
void Easy3DObject_SetScale(Easy3DObject *obj, fx32 x, fx32 y, fx32 z);
void Easy3DObject_GetScale(const Easy3DObject *obj, fx32 *outX, fx32 *outY, fx32 *outZ);
void Easy3DObject_SetRotation(Easy3DObject *obj, u16 angle, enum RotationAxis axis);
u16 Easy3DObject_GetRotation(const Easy3DObject *obj, enum RotationAxis axis);
#endif // POKEPLATINUM_EASY3D_OBJECT_H

View File

@ -2,8 +2,7 @@
#define POKEPLATINUM_OV70_0225C700_H
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017294.h"
#include "easy3d_object.h"
#include "overlay063/struct_ov63_0222CC3C.h"
#include <nitro/fx/fx.h>
@ -11,6 +10,6 @@
void ov70_0225C700(const UnkStruct_ov63_0222CC3C * param0, VecFx32 * param1);
void ov70_0225C714(const VecFx32 * param0, UnkStruct_ov63_0222CC3C * param1);
void ov70_0225C730(void ** param0, NARC * param1, u32 param2, u32 param3);
BOOL ov70_0225C7A0(const UnkStruct_020170F4 * param0, const UnkStruct_02017294 * param1);
BOOL ov70_0225C7A0(const Easy3DModel * param0, const Easy3DObject * param1);
#endif // POKEPLATINUM_OV70_0225C700_H

View File

@ -7,8 +7,7 @@
#include "struct_decls/struct_0200C6E4_decl.h"
#include "struct_decls/struct_0200C704_decl.h"
#include "struct_decls/cell_actor_data.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017294.h"
#include "easy3d_object.h"
#include "struct_decls/struct_02018340_decl.h"
#include "sys_task_manager.h"
#include "camera.h"
@ -32,8 +31,8 @@ typedef struct {
MessageLoader * unk_20;
Window * unk_24;
Camera * camera;
UnkStruct_020170F4 unk_2C[4];
UnkStruct_02017294 unk_6C[2][16];
Easy3DModel unk_2C[4];
Easy3DObject unk_6C[2][16];
UnkStruct_ov99_021D2CB0_sub1 unk_F6C;
UnkStruct_ov99_021D3A40 unk_FA4;
CellActorData * unk_10E0[5];

View File

@ -1,15 +1,13 @@
#ifndef POKEPLATINUM_STRUCT_OV100_021D49B4_H
#define POKEPLATINUM_STRUCT_OV100_021D49B4_H
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "easy3d_object.h"
#include "overlay100/struct_ov100_021D54D0.h"
typedef struct {
UnkStruct_02017294 unk_00;
UnkStruct_020170F4 unk_78;
UnkStruct_02017248 unk_88[10];
Easy3DObject unk_00;
Easy3DModel unk_78;
Easy3DAnim unk_88[10];
fx32 unk_150;
fx32 unk_154;
int unk_158;

View File

@ -3,14 +3,14 @@
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_decls/cell_actor_data.h"
#include "struct_defs/struct_02017294.h"
#include "easy3d_object.h"
#include "overlay116/struct_ov116_0226139C.h"
#include "overlay116/struct_ov116_02262A8C.h"
#include "overlay116/struct_ov116_0226501C.h"
#include <nitro/fx/fx.h>
void ov116_02261870(UnkStruct_02017294 * param0, MtxFx43 * param1, VecFx32 * param2);
void ov116_02261870(Easy3DObject * param0, MtxFx43 * param1, VecFx32 * param2);
void ov116_022618A8(UnkStruct_ov116_0226501C * param0, NARC * param1, int param2);
void ov116_022618B4(UnkStruct_ov116_0226501C * param0, int param1);
void ov116_0226192C(UnkStruct_ov116_0226501C * param0);

View File

@ -1,18 +1,16 @@
#ifndef POKEPLATINUM_STRUCT_OV116_0226501C_H
#define POKEPLATINUM_STRUCT_OV116_0226501C_H
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "easy3d_object.h"
#include "overlay116/union_ov116_02266FEC.h"
#include "overlay116/union_ov116_022671EC.h"
#include <nitro/fx/fx.h>
typedef struct {
UnkStruct_02017294 unk_00;
UnkStruct_020170F4 unk_78;
UnkStruct_02017248 unk_88[10];
Easy3DObject unk_00;
Easy3DModel unk_78;
Easy3DAnim unk_88[10];
UnkUnion_ov116_022671EC unk_150;
UnkUnion_ov116_02266FEC unk_190;
UnkUnion_ov116_02266FEC unk_1A0;

View File

@ -1,12 +1,11 @@
#ifndef POKEPLATINUM_STRUCT_OV117_02261C2C_H
#define POKEPLATINUM_STRUCT_OV117_02261C2C_H
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017294.h"
#include "easy3d_object.h"
typedef struct {
UnkStruct_020170F4 unk_00;
UnkStruct_02017294 unk_10;
Easy3DModel unk_00;
Easy3DObject unk_10;
} UnkStruct_ov117_02261C2C;
#endif // POKEPLATINUM_STRUCT_OV117_02261C2C_H

View File

@ -1,18 +1,16 @@
#ifndef POKEPLATINUM_STRUCT_OV117_02261F08_H
#define POKEPLATINUM_STRUCT_OV117_02261F08_H
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "easy3d_object.h"
typedef struct {
UnkStruct_020170F4 unk_00;
UnkStruct_02017294 unk_10;
UnkStruct_020170F4 unk_88[4];
Easy3DModel unk_00;
Easy3DObject unk_10;
Easy3DModel unk_88[4];
struct {
int unk_00;
UnkStruct_02017294 unk_04;
UnkStruct_02017248 unk_7C;
Easy3DObject unk_04;
Easy3DAnim unk_7C;
} unk_C8[8][4];
} UnkStruct_ov117_02261F08;

View File

@ -1,14 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_020170F4_H
#define POKEPLATINUM_STRUCT_020170F4_H
#include <nnsys.h>
typedef struct {
void * unk_00;
NNSG3dResMdlSet * unk_04;
NNSG3dResMdl * unk_08;
NNSG3dResTex * unk_0C;
} UnkStruct_020170F4;
#endif // POKEPLATINUM_STRUCT_020170F4_H

View File

@ -1,15 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_02017248_H
#define POKEPLATINUM_STRUCT_02017248_H
#include <nnsys.h>
typedef struct {
void * unk_00;
void * unk_04;
NNSG3dAnmObj * unk_08;
fx32 unk_0C;
BOOL unk_10;
} UnkStruct_02017248;
#endif // POKEPLATINUM_STRUCT_02017248_H

View File

@ -1,17 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_02017294_H
#define POKEPLATINUM_STRUCT_02017294_H
#include <nitro/fx/fx.h>
#include <nnsys.h>
typedef struct {
NNSG3dRenderObj unk_00;
VecFx32 unk_54;
VecFx32 unk_60;
BOOL unk_6C;
u16 unk_70[3];
u8 padding_76[2];
} UnkStruct_02017294;
#endif // POKEPLATINUM_STRUCT_02017294_H

View File

@ -1,37 +0,0 @@
#ifndef POKEPLATINUM_UNK_020170BC_H
#define POKEPLATINUM_UNK_020170BC_H
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include <nnsys.h>
#include <nitro/fx/fx.h>
void sub_020170BC(UnkStruct_020170F4 * param0, u32 param1, u32 param2, u32 param3);
void sub_020170D8(UnkStruct_020170F4 * param0, NARC * param1, u32 param2, u32 param3);
void sub_02017110(UnkStruct_020170F4 * param0);
void sub_02017164(UnkStruct_02017248 * param0, const UnkStruct_020170F4 * param1, NARC * param2, u32 param3, u32 param4, NNSFndAllocator * param5);
void sub_02017190(UnkStruct_02017248 * param0, const UnkStruct_020170F4 * param1, void * param2, NNSFndAllocator * param3);
void sub_020171A0(UnkStruct_02017248 * param0, NNSFndAllocator * param1);
void sub_020171CC(UnkStruct_02017248 * param0, fx32 param1);
BOOL sub_02017204(UnkStruct_02017248 * param0, fx32 param1);
void sub_02017240(UnkStruct_02017248 * param0, fx32 param1);
fx32 sub_02017248(const UnkStruct_02017248 * param0);
fx32 sub_0201724C(const UnkStruct_02017248 * param0);
void sub_02017258(UnkStruct_02017294 * param0, UnkStruct_020170F4 * param1);
void sub_0201727C(UnkStruct_02017294 * param0, UnkStruct_02017248 * param1);
void sub_02017288(UnkStruct_02017294 * param0, UnkStruct_02017248 * param1);
void sub_02017294(UnkStruct_02017294 * param0);
void sub_02017330(UnkStruct_02017294 * param0, const MtxFx33 * param1);
void sub_02017348(UnkStruct_02017294 * param0, BOOL param1);
BOOL sub_0201734C(const UnkStruct_02017294 * param0);
void sub_02017350(UnkStruct_02017294 * param0, fx32 param1, fx32 param2, fx32 param3);
void sub_02017358(const UnkStruct_02017294 * param0, fx32 * param1, fx32 * param2, fx32 * param3);
void sub_0201736C(UnkStruct_02017294 * param0, fx32 param1, fx32 param2, fx32 param3);
void sub_02017374(const UnkStruct_02017294 * param0, fx32 * param1, fx32 * param2, fx32 * param3);
void sub_02017388(UnkStruct_02017294 * param0, u16 param1, u32 param2);
u16 sub_02017394(const UnkStruct_02017294 * param0, u32 param1);
#endif // POKEPLATINUM_UNK_020170BC_H

View File

@ -1,19 +0,0 @@
#ifndef POKEPLATINUM_UNK_0201C970_H
#define POKEPLATINUM_UNK_0201C970_H
#include <nitro/fx/fx.h>
#include <nnsys.h>
void sub_0201C970(const u8, const char *, NNSG3dResMdl **, NNSG3dResFileHeader **);
void sub_0201CA24(const u8, const char *, NNSG3dRenderObj *, NNSG3dResMdl **, NNSG3dResFileHeader **);
void sub_0201CA3C(NNSG3dRenderObj *, NNSG3dResMdl **, NNSG3dResFileHeader **);
BOOL sub_0201CA5C(NNSG3dResTex * param0);
void sub_0201CA74(NNSG3dRenderObj *, const VecFx32 *, const MtxFx33 *, const VecFx32 *);
void sub_0201CAB0(NNSG3dRenderObj *, const VecFx32 *, const MtxFx33 *, const VecFx32 *);
void sub_0201CAF4(const u8 param0);
void sub_0201CBA0(void);
BOOL sub_0201CBB0(void * param0, NNSG3dResTex * param1);
BOOL sub_0201CBCC(NNSG3dResTex * param0);
#endif // POKEPLATINUM_UNK_0201C970_H

View File

@ -63,13 +63,13 @@ Static main
Object main.nef.p/src_unk_02015920.c.o
Object main.nef.p/src_unk_02015F84.c.o
Object main.nef.p/src_unk_02017038.c.o
Object main.nef.p/src_unk_020170BC.c.o
Object main.nef.p/src_easy3d_object.c.o
Object main.nef.p/src_unk_02017428.c.o
Object main.nef.p/src_unk_02017498.c.o
Object main.nef.p/src_unk_02017728.c.o
Object main.nef.p/src_heap.c.o
Object main.nef.p/src_unk_02018340.c.o
Object main.nef.p/src_unk_0201C970.c.o
Object main.nef.p/src_easy3d.c.o
Object main.nef.p/src_sys_task_manager.c.o
Object main.nef.p/src_unk_0201CED8.c.o
Object main.nef.p/src_charcode.c.o

View File

@ -61,7 +61,7 @@
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201D670.h"
#include "unk_0201DBEC.h"
#include "unk_0201E3D8.h"
@ -812,8 +812,8 @@ static void ov78_021D1630 (ChooseStarter3DGraphics * param0, int param1, int par
param0->unk_5C = NNS_G3dGetMdlByIdx(param0->unk_58, 0);
param0->unk_60 = NNS_G3dGetTex(param0->unk_54);
sub_0201CBCC(param0->unk_60);
sub_0201CBB0(param0->unk_54, param0->unk_60);
Easy3D_UploadTextureToVRAM(param0->unk_60);
Easy3D_BindTextureToResource(param0->unk_54, param0->unk_60);
NNS_G3dRenderObjInit(&param0->unk_00, param0->unk_5C);
}
@ -856,7 +856,7 @@ static void ov78_021D1708 (ChooseStarter3DGraphics * param0)
MTX_Concat33(&v1, &v0, &v0);
if (param0->unk_74) {
sub_0201CA74(&param0->unk_00, &param0->unk_78, &v0, &param0->unk_84);
Easy3D_DrawRenderObj(&param0->unk_00, &param0->unk_78, &v0, &param0->unk_84);
}
}

View File

@ -6,9 +6,6 @@
#include "struct_decls/struct_02006C24_decl.h"
#include "sys_task_manager.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "struct_defs/struct_0207C690.h"
#include "struct_defs/struct_02099F80.h"
#include "overlay115/camera_angle.h"
@ -19,7 +16,7 @@
#include "narc.h"
#include "sys_task.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_0201E3D8.h"
@ -40,10 +37,10 @@ typedef struct DistortionWorldWarp {
SysTask * task;
int frameCnt;
int soundEffectCnt;
UnkStruct_02017294 animationObj;
UnkStruct_02017248 animationAnimation;
UnkStruct_02017248 animationAnimation2;
UnkStruct_020170F4 animationModel;
Easy3DObject animationObj;
Easy3DAnim animationAnimation;
Easy3DAnim animationAnimation2;
Easy3DModel animationModel;
u32 moveFrame;
int cameraAngle;
int cameraAngleCalc;
@ -250,24 +247,24 @@ static void DWWarp_InitModel (DistortionWorldWarp * warp)
NARC * narc = NARC_ctor(NARC_INDEX_DEMO__TITLE__TITLEDEMO, HEAP_ID_DISTORTION_WORLD_WARP);
sub_020170D8(&warp->animationModel, narc, 16, HEAP_ID_DISTORTION_WORLD_WARP);
Easy3DModel_LoadFrom(&warp->animationModel, narc, 16, HEAP_ID_DISTORTION_WORLD_WARP);
NNS_G3dMdlUseMdlAlpha(warp->animationModel.unk_08);
NNS_G3dMdlUseMdlPolygonID(warp->animationModel.unk_08);
NNS_G3dMdlUseMdlAlpha(warp->animationModel.model);
NNS_G3dMdlUseMdlPolygonID(warp->animationModel.model);
sub_02017164(&warp->animationAnimation, &warp->animationModel, narc, 18, HEAP_ID_DISTORTION_WORLD_WARP, &warp->allocator);
sub_02017240(&warp->animationAnimation, 0);
Easy3DAnim_LoadFrom(&warp->animationAnimation, &warp->animationModel, narc, 18, HEAP_ID_DISTORTION_WORLD_WARP, &warp->allocator);
Easy3DAnim_SetFrame(&warp->animationAnimation, 0);
sub_02017164(&warp->animationAnimation2, &warp->animationModel, narc, 17, HEAP_ID_DISTORTION_WORLD_WARP, &warp->allocator);
sub_02017240(&warp->animationAnimation2, 0);
sub_02017258(&warp->animationObj, &warp->animationModel);
Easy3DAnim_LoadFrom(&warp->animationAnimation2, &warp->animationModel, narc, 17, HEAP_ID_DISTORTION_WORLD_WARP, &warp->allocator);
Easy3DAnim_SetFrame(&warp->animationAnimation2, 0);
Easy3DObject_Init(&warp->animationObj, &warp->animationModel);
sub_02017350(&warp->animationObj, 0, 0, 0);
sub_0201736C(&warp->animationObj, FX32_ONE, FX32_ONE, FX32_ONE);
sub_02017348(&warp->animationObj, 1);
Easy3DObject_SetPosition(&warp->animationObj, 0, 0, 0);
Easy3DObject_SetScale(&warp->animationObj, FX32_ONE, FX32_ONE, FX32_ONE);
Easy3DObject_SetVisibility(&warp->animationObj, TRUE);
sub_0201727C(&warp->animationObj, &warp->animationAnimation);
sub_0201727C(&warp->animationObj, &warp->animationAnimation2);
Easy3DObject_AddAnim(&warp->animationObj, &warp->animationAnimation);
Easy3DObject_AddAnim(&warp->animationObj, &warp->animationAnimation2);
NARC_dtor(narc);
@ -279,9 +276,9 @@ static void DWWarp_InitModel (DistortionWorldWarp * warp)
static void DWWarp_DeleteModel (DistortionWorldWarp * warp)
{
sub_02017110(&warp->animationModel);
sub_020171A0(&warp->animationAnimation, &warp->allocator);
sub_020171A0(&warp->animationAnimation2, &warp->allocator);
Easy3DModel_Release(&warp->animationModel);
Easy3DAnim_Release(&warp->animationAnimation, &warp->allocator);
Easy3DAnim_Release(&warp->animationAnimation2, &warp->allocator);
}
static void Model3D_Update (DistortionWorldWarp * warp)
@ -312,12 +309,12 @@ static void Model3D_Update (DistortionWorldWarp * warp)
NNS_G3dGlbSetBaseRot(&rot33);
NNS_G3dGlbSetBaseScale(&scaleVec);
sub_020171CC(&warp->animationAnimation, FX32_ONE);
sub_020171CC(&warp->animationAnimation2, FX32_ONE);
Easy3DAnim_UpdateLooped(&warp->animationAnimation, FX32_ONE);
Easy3DAnim_UpdateLooped(&warp->animationAnimation2, FX32_ONE);
NNS_G3dGePushMtx();
sub_02017294(&warp->animationObj);
Easy3DObject_Draw(&warp->animationObj);
NNS_G3dGePopMtx(1);
}

202
src/easy3d.c Normal file
View File

@ -0,0 +1,202 @@
#include <nitro.h>
#include <string.h>
#include <nnsys.h>
#include "struct_defs/struct_0207C690.h"
#include "unk_02017728.h"
#include "easy3d.h"
#include "gx_layers.h"
#include "unk_02024220.h"
#define G3X_DEPTH_MAX 0x7FFF
static void Easy3D_SetupEngine(void);
void Easy3D_LoadModelFromPath(const u8 heapID, const char *path, NNSG3dResMdl **outModel, NNSG3dResFileHeader **outResource)
{
*outResource = ReadFileToHeap(heapID, path);
NNS_G3D_NULL_ASSERT(*outResource);
NNSG3dResTex *texture = NNS_G3dGetTex(*outResource);
if (texture != NULL && Easy3D_IsTextureUploadedToVRAM(texture) == FALSE) {
DC_FlushRange(*outResource, (*outResource)->fileSize);
NNS_G3dResDefaultSetup(*outResource);
}
*outModel = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*outResource), 0);
}
void Easy3D_LoadModelFromResource(NNSG3dResMdl **outModel, NNSG3dResFileHeader **resource)
{
NNSG3dResTex *texture = NNS_G3dGetTex(*resource);
if (texture != NULL && Easy3D_IsTextureUploadedToVRAM(texture) == FALSE) {
DC_FlushRange(*resource, (*resource)->fileSize);
NNS_G3dResDefaultSetup(*resource);
}
*outModel = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*resource), 0);
}
void Easy3D_InitRenderObjFromPath(const u8 heapID, const char *path, NNSG3dRenderObj *obj, NNSG3dResMdl **outModel, NNSG3dResFileHeader **outResource)
{
Easy3D_LoadModelFromPath(heapID, path, outModel, outResource);
NNS_G3dRenderObjInit(obj, *outModel);
}
void Easy3D_InitRenderObjFromResource(NNSG3dRenderObj *renderObj, NNSG3dResMdl **model, NNSG3dResFileHeader **resource)
{
Easy3D_LoadModelFromResource(model, resource);
GF_ASSERT(model);
NNS_G3dRenderObjInit(renderObj, *model);
}
BOOL Easy3D_IsTextureUploadedToVRAM(NNSG3dResTex *texture)
{
return (texture->texInfo.flag & NNS_G3D_RESTEX_LOADED)
|| (texture->tex4x4Info.flag & NNS_G3D_RESTEX4x4_LOADED);
}
void Easy3D_DrawRenderObj(NNSG3dRenderObj *renderObj, const VecFx32 *pos, const MtxFx33 *rot, const VecFx32 *scale)
{
NNS_G3dGlbSetBaseTrans(pos);
NNS_G3dGlbSetBaseRot(rot);
NNS_G3dGlbSetBaseScale(scale);
NNS_G3dGlbFlush();
NNS_G3dDraw(renderObj);
}
void Easy3D_DrawRenderObjSimple(NNSG3dRenderObj *renderObj, const VecFx32 *pos, const MtxFx33 *rot, const VecFx32 *scale)
{
NNS_G3dGlbSetBaseTrans(pos);
NNS_G3dGlbSetBaseRot(rot);
NNS_G3dGlbSetBaseScale(scale);
NNS_G3dGlbFlush();
NNS_G3dDraw1Mat1Shp(renderObj->resMdl, 0, 0, TRUE);
NNS_G3dGeFlushBuffer();
}
static GenericPointerData *Unk_021BFB0C = NULL;
void Easy3D_Init(const u8 heapID)
{
Unk_021BFB0C = sub_02024220(heapID, 0, 2, 0, 4, Easy3D_SetupEngine);
}
static void Easy3D_SetupEngine(void)
{
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, TRUE);
G2_SetBG0Priority(1);
G3X_SetShading(GX_SHADING_TOON);
G3X_AntiAlias(TRUE);
G3X_AlphaTest(FALSE, 0);
G3X_AlphaBlend(TRUE);
G3X_EdgeMarking(FALSE);
G3X_SetFog(FALSE, GX_FOGBLEND_COLOR_ALPHA, GX_FOGSLOPE_0x8000, 0);
G3X_SetClearColor(GX_RGB(0, 0, 0), 0, G3X_DEPTH_MAX, 63, FALSE);
G3_ViewPort(0, 0, 255, 191);
}
void Easy3D_Shutdown(void)
{
sub_020242C4(Unk_021BFB0C);
}
BOOL Easy3D_BindTextureToResource(void *resource, NNSG3dResTex *texture)
{
NNSG3dResMdlSet *modelSet = NNS_G3dGetMdlSet((NNSG3dResFileHeader *)resource);
NNS_G3D_NULL_ASSERT(modelSet);
if (texture) {
BOOL v1 = NNS_G3dBindMdlSet(modelSet, texture);
return TRUE;
}
return FALSE;
}
BOOL Easy3D_UploadTextureToVRAM(NNSG3dResTex *texture)
{
if (texture == NULL) {
return FALSE;
}
texture->texInfo.vramKey = 0;
u32 texRequiredSize, tex4x4RequiredSize, paletteRequiredSize;
BOOL texOk = TRUE;
BOOL tex4x4Ok = TRUE;
BOOL paletteOk = TRUE;
NNSG3dTexKey texKey;
NNSG3dTexKey tex4x4Key;
NNSG3dPlttKey paletteKey;
if (texture) {
texRequiredSize = NNS_G3dTexGetRequiredSize(texture);
tex4x4RequiredSize = NNS_G3dTex4x4GetRequiredSize(texture);
paletteRequiredSize = NNS_G3dPlttGetRequiredSize(texture);
if (texRequiredSize > 0) {
texKey = NNS_GfdAllocTexVram(texRequiredSize, FALSE, 0);
if (texKey == NNS_GFD_ALLOC_ERROR_TEXKEY) {
texOk = FALSE;
}
} else {
texKey = 0;
}
if (tex4x4RequiredSize > 0) {
tex4x4Key = NNS_GfdAllocTexVram(tex4x4RequiredSize, TRUE, 0);
if (tex4x4Key == NNS_GFD_ALLOC_ERROR_TEXKEY) {
tex4x4Ok = FALSE;
}
} else {
tex4x4Key = 0;
}
if (paletteRequiredSize > 0) {
paletteKey = NNS_GfdAllocPlttVram(paletteRequiredSize, texture->tex4x4Info.flag & NNS_G3D_RESPLTT_USEPLTT4, 0);
if (paletteKey == NNS_GFD_ALLOC_ERROR_PLTTKEY) {
paletteOk = FALSE;
}
} else {
paletteKey = 0;
}
if (!texOk) {
int result = NNS_GfdFreeTexVram(texKey);
GF_ASSERT(!result);
return FALSE;
}
if (!tex4x4Ok) {
int result = NNS_GfdFreeTexVram(tex4x4Key);
GF_ASSERT(!result);
return FALSE;
}
if (!paletteOk) {
int result = NNS_GfdFreePlttVram(paletteKey);
GF_ASSERT(!result);
return FALSE;
}
NNS_G3dTexSetTexKey(texture, texKey, tex4x4Key);
NNS_G3dPlttSetPlttKey(texture, paletteKey);
DC_FlushRange(texture, texture->header.size);
NNS_G3dTexLoad(texture, TRUE);
NNS_G3dPlttLoad(texture, TRUE);
}
return TRUE;
}

259
src/easy3d_object.c Normal file
View File

@ -0,0 +1,259 @@
#include <nitro.h>
#include <string.h>
#include "struct_decls/struct_02006C24_decl.h"
#include "sys_task_manager.h"
#include "unk_02006E3C.h"
#include "sys_task.h"
#include "easy3d_object.h"
#include "heap.h"
#include "easy3d.h"
static void Easy3DModel_BindTexture(SysTask *task, void *param);
static void Easy3DModel_LoadInternal(Easy3DModel *model);
static void Easy3DAnim_LoadInternal(Easy3DAnim *anim, const Easy3DModel *model, void *data, NNSFndAllocator *allocator);
void Easy3DModel_Load(Easy3DModel *model, u32 narcIndex, u32 memberIndex, u32 heapID)
{
model->data = sub_02006FE8(narcIndex, memberIndex, FALSE, heapID, 0);
Easy3DModel_LoadInternal(model);
}
void Easy3DModel_LoadFrom(Easy3DModel *model, NARC *narc, u32 memberIndex, u32 heapID)
{
model->data = sub_0200723C(narc, memberIndex, FALSE, heapID, 0);
Easy3DModel_LoadInternal(model);
}
static void Easy3DModel_BindTexture(SysTask *task, void *param)
{
Easy3DModel *model = param;
Easy3D_UploadTextureToVRAM(model->texture);
Easy3D_BindTextureToResource(model->data, model->texture);
SysTask_Done(task);
}
void Easy3DModel_Release(Easy3DModel *model)
{
NNSG3dTexKey texKey;
NNSG3dTexKey tex4x4Key;
NNSG3dPlttKey paletteKey;
if (model->texture) {
NNS_G3dTexReleaseTexKey(model->texture, &texKey, &tex4x4Key);
NNS_GfdFreeTexVram(texKey);
NNS_GfdFreeTexVram(tex4x4Key);
paletteKey = NNS_G3dPlttReleasePlttKey(model->texture);
NNS_GfdFreePlttVram(paletteKey);
}
if (model->data) {
Heap_FreeToHeap(model->data);
}
memset(model, 0, sizeof(Easy3DModel));
}
void Easy3DAnim_LoadFrom(Easy3DAnim *anim, const Easy3DModel *model, NARC *narc, u32 memberIndex, u32 heapID, NNSFndAllocator *allocator)
{
void *data = sub_0200723C(narc, memberIndex, FALSE, heapID, 0);
Easy3DAnim_LoadInternal(anim, model, data, allocator);
anim->dataBorrowed = FALSE;
}
void Easy3DAnim_LoadFromData(Easy3DAnim *anim, const Easy3DModel *model, void *data, NNSFndAllocator *allocator)
{
Easy3DAnim_LoadInternal(anim, model, data, allocator);
anim->dataBorrowed = TRUE;
}
void Easy3DAnim_Release(Easy3DAnim *anim, NNSFndAllocator *allocator)
{
if (anim->data) {
NNS_G3dFreeAnmObj(allocator, anim->animObj);
if (anim->dataBorrowed == FALSE) {
Heap_FreeToHeap(anim->data);
}
}
memset(anim, 0, sizeof(Easy3DAnim));
}
void Easy3DAnim_UpdateLooped(Easy3DAnim *anim, fx32 frameDelta)
{
fx32 frameCount = NNS_G3dAnmObjGetNumFrame(anim->animObj);
if (frameDelta > 0) {
anim->frame = (anim->frame + frameDelta) % frameCount;
} else {
anim->frame = anim->frame + frameDelta;
if (anim->frame < 0) {
anim->frame += frameCount;
}
}
NNS_G3dAnmObjSetFrame(anim->animObj, anim->frame);
}
BOOL Easy3DAnim_Update(Easy3DAnim *anim, fx32 frameDelta)
{
fx32 frameCount = NNS_G3dAnmObjGetNumFrame(anim->animObj);
BOOL finished = FALSE;
if (frameDelta > 0) {
if (anim->frame + frameDelta < frameCount) {
anim->frame += frameDelta;
} else {
anim->frame = frameCount;
finished = TRUE;
}
} else {
if (anim->frame + frameDelta >= 0) {
anim->frame += frameDelta;
} else {
anim->frame = 0;
finished = TRUE;
}
}
NNS_G3dAnmObjSetFrame(anim->animObj, anim->frame);
return finished;
}
void Easy3DAnim_SetFrame(Easy3DAnim *anim, fx32 frame)
{
anim->frame = frame;
NNS_G3dAnmObjSetFrame(anim->animObj, frame);
}
fx32 Easy3DAnim_GetFrame(const Easy3DAnim *anim)
{
return anim->frame;
}
fx32 Easy3DAnim_GetFrameCount(const Easy3DAnim *anim)
{
return NNS_G3dAnmObjGetNumFrame(anim->animObj);
}
void Easy3DObject_Init(Easy3DObject *obj, Easy3DModel *model)
{
memset(obj, 0, sizeof(Easy3DObject));
NNS_G3dRenderObjInit(&obj->renderObj, model->model);
obj->visible = TRUE;
obj->scale.x = FX32_ONE;
obj->scale.y = FX32_ONE;
obj->scale.z = FX32_ONE;
}
void Easy3DObject_AddAnim(Easy3DObject *obj, Easy3DAnim *anim)
{
NNS_G3dRenderObjAddAnmObj(&obj->renderObj, anim->animObj);
}
void Easy3DObject_RemoveAnim(Easy3DObject *obj, Easy3DAnim *anim)
{
NNS_G3dRenderObjRemoveAnmObj(&obj->renderObj, anim->animObj);
}
void Easy3DObject_Draw(Easy3DObject *obj)
{
MtxFx33 rotation;
MtxFx33 temp;
if (obj->visible) {
MTX_Identity33(&rotation);
MTX_RotX33(&temp, FX_SinIdx(obj->rotation[ROTATION_AXIS_X]), FX_CosIdx(obj->rotation[ROTATION_AXIS_X]));
MTX_Concat33(&temp, &rotation, &rotation);
MTX_RotZ33(&temp, FX_SinIdx(obj->rotation[ROTATION_AXIS_Z]), FX_CosIdx(obj->rotation[ROTATION_AXIS_Z]));
MTX_Concat33(&temp, &rotation, &rotation);
MTX_RotY33(&temp, FX_SinIdx(obj->rotation[ROTATION_AXIS_Y]), FX_CosIdx(obj->rotation[ROTATION_AXIS_Y]));
MTX_Concat33(&temp, &rotation, &rotation);
Easy3D_DrawRenderObj(&obj->renderObj, &obj->position, &rotation, &obj->scale);
}
}
void Easy3DObject_DrawRotated(Easy3DObject *obj, const MtxFx33 *rotation)
{
if (obj->visible) {
Easy3D_DrawRenderObj(&obj->renderObj, &obj->position, (MtxFx33 *)rotation, &obj->scale);
}
}
void Easy3DObject_SetVisibility(Easy3DObject *obj, BOOL visible)
{
obj->visible = visible;
}
BOOL Easy3DObject_GetVisibility(const Easy3DObject *obj)
{
return obj->visible;
}
void Easy3DObject_SetPosition(Easy3DObject *obj, fx32 x, fx32 y, fx32 z)
{
obj->position.x = x;
obj->position.y = y;
obj->position.z = z;
}
void Easy3DObject_GetPosition(const Easy3DObject *obj, fx32 *outX, fx32 *outY, fx32 *outZ)
{
*outX = obj->position.x;
*outY = obj->position.y;
*outZ = obj->position.z;
}
void Easy3DObject_SetScale(Easy3DObject *obj, fx32 x, fx32 y, fx32 z)
{
obj->scale.x = x;
obj->scale.y = y;
obj->scale.z = z;
}
void Easy3DObject_GetScale(const Easy3DObject *obj, fx32 *outX, fx32 *outY, fx32 *outZ)
{
*outX = obj->scale.x;
*outY = obj->scale.y;
*outZ = obj->scale.z;
}
void Easy3DObject_SetRotation(Easy3DObject *obj, u16 angle, enum RotationAxis axis)
{
obj->rotation[axis] = angle;
}
u16 Easy3DObject_GetRotation(const Easy3DObject *obj, enum RotationAxis axis)
{
return obj->rotation[axis];
}
static void Easy3DAnim_LoadInternal(Easy3DAnim *anim, const Easy3DModel *model, void *data, NNSFndAllocator *allocator)
{
anim->data = data;
anim->anim = NNS_G3dGetAnmByIdx(anim->data, 0);
anim->animObj = NNS_G3dAllocAnmObj(allocator, anim->anim, model->model);
NNS_G3dAnmObjInit(anim->animObj, anim->anim, model->model, model->texture);
}
static void Easy3DModel_LoadInternal(Easy3DModel *model)
{
GF_ASSERT(model->data);
model->set = NNS_G3dGetMdlSet(model->data);
model->model = NNS_G3dGetMdlByIdx(model->set, 0);
model->texture = NNS_G3dGetTex(model->data);
if (model->texture) {
SysTask_ExecuteAfterVBlank(Easy3DModel_BindTexture, model, 1024);
}
}

View File

@ -59,12 +59,12 @@ pokeplatinum_c = files(
'unk_02015920.c',
'unk_02015F84.c',
'unk_02017038.c',
'unk_020170BC.c',
'easy3d_object.c',
'unk_02017428.c',
'unk_02017498.c',
'unk_02017728.c',
'unk_02018340.c',
'unk_0201C970.c',
'easy3d.c',
'sys_task_manager.c',
'unk_0201CED8.c',
'charcode.c',

View File

@ -34,7 +34,7 @@
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201DBEC.h"
#include "unk_0201E86C.h"
#include "unk_0201F834.h"
@ -196,7 +196,7 @@ static BOOL FieldMap_Init (OverlayManager * overlayMan, int * param1)
sub_0201DBEC(128, 4);
sub_02020B90(4, 4);
sub_0201CAF4(4);
Easy3D_Init(4);
ov5_021D15B4();
ov5_021D154C();
@ -337,7 +337,7 @@ static BOOL FieldMap_Exit (OverlayManager * overlayMan, int * param1)
ov5_021D15E8();
sub_02020BD0();
sub_0201DC3C();
sub_0201CBA0();
Easy3D_Shutdown();
ov5_021D1AE4(fieldSystem->unk_04->unk_04);
SetMainCallback(NULL, NULL);
Heap_FreeToHeap(fieldSystem->unk_08);

View File

@ -11,7 +11,7 @@
#include "narc.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201CED8.h"
#include "unk_0201E190.h"
#include "overlay005/ov5_021D37AC.h"
@ -196,7 +196,7 @@ void ov5_021E17CC (const VecFx32 * param0, const UnkStruct_ov5_021EF76C * param1
ov5_021D5790(v3->unk_00, v4, &v5);
if (v5 == 0) {
sub_0201CA74(&(v3->unk_10), &(v1), &v2, &(v3->unk_80));
Easy3D_DrawRenderObj(&(v3->unk_10), &(v1), &v2, &(v3->unk_80));
} else {
ov5_021E1944(v3->unk_64, &v1, &v2, &(v3->unk_80), v4, v3->unk_00);
}
@ -384,7 +384,7 @@ void ov5_021E1A6C (UnkStruct_ov5_021E1608 * param0, UnkStruct_ov5_021EF76C * con
}
if (v4 == 0) {
sub_0201CA74(&(v2->unk_10), &(v2->unk_68), &v1, &(v2->unk_80));
Easy3D_DrawRenderObj(&(v2->unk_10), &(v2->unk_68), &v1, &(v2->unk_80));
} else {
ov5_021E1944(v2->unk_64, &v2->unk_68, &v1, &(v2->unk_80), v3, v2->unk_00);
}

View File

@ -17,7 +17,7 @@
#include "sys_task.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "sys_task_manager.h"
#include "unk_020366A0.h"
#include "unk_02039C80.h"
@ -1150,7 +1150,7 @@ static void ov5_021E89D0 (const u8 param0, const UnkStruct_ov5_021E8F60 * param1
VecFx32 v1 = {FX32_ONE, FX32_ONE, FX32_ONE};
MtxFx33 v2 = {FX32_ONE, 0, 0, 0, FX32_ONE, 0, 0, 0, FX32_ONE};
sub_0201CA74(&(param1->unk_84[param0]->unk_800), &v0, &v2, &v1);
Easy3D_DrawRenderObj(&(param1->unk_84[param0]->unk_800), &v0, &v2, &v1);
}
if (param1->unk_84[param0]->unk_864 == 1) {
@ -1894,8 +1894,8 @@ static void ov5_021E964C (SysTask * param0, void * param1)
break;
case 2:
if (v1->unk_10 != NULL) {
if (sub_0201CA5C(v1->unk_10) == 1) {
v2 = sub_0201CBB0(*v1->unk_0C, v1->unk_10);
if (Easy3D_IsTextureUploadedToVRAM(v1->unk_10) == 1) {
v2 = Easy3D_BindTextureToResource(*v1->unk_0C, v1->unk_10);
} else {
(void)0;
}
@ -1956,8 +1956,8 @@ NNSG3dResMdl * ov5_021E97AC (NARC * param0, const int param1, NNSG3dRenderObj *
NARC_ReadFile(param0, param1, *(param3));
if (param4 != NULL) {
if (sub_0201CA5C(param4) == 1) {
v0 = sub_0201CBB0(*param3, param4);
if (Easy3D_IsTextureUploadedToVRAM(param4) == 1) {
v0 = Easy3D_BindTextureToResource(*param3, param4);
GF_ASSERT(v0);
} else {
(void)0;
@ -2165,7 +2165,7 @@ static void ov5_021E9C40 (const u8 param0, const UnkStruct_ov5_021E8F60 * param1
v0.z += param1->unk_10C.z;
if (param1->unk_84[param0]->unk_864 == 1) {
sub_0201CA74(&(param1->unk_84[param0]->unk_800), &v0, &v2, &v1);
Easy3D_DrawRenderObj(&(param1->unk_84[param0]->unk_800), &v0, &v2, &v1);
}
}

View File

@ -7,7 +7,7 @@
#include "narc.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "overlay005/ov5_021D37AC.h"
#include "overlay005/ov5_021D56BC.h"
#include "overlay005/ov5_021EF75C.h"
@ -112,7 +112,7 @@ void ov5_021EF7A0 (UnkStruct_ov5_021EF76C * param0)
{
BOOL v2;
v2 = sub_0201CBCC(param0->unk_C0C);
v2 = Easy3D_UploadTextureToVRAM(param0->unk_C0C);
GF_ASSERT(v2);
}
@ -121,7 +121,7 @@ void ov5_021EF7A0 (UnkStruct_ov5_021EF76C * param0)
if (param0->unk_C10 != NULL) {
BOOL v3;
v3 = sub_0201CBCC(param0->unk_C10);
v3 = Easy3D_UploadTextureToVRAM(param0->unk_C10);
GF_ASSERT(v3);
ov5_021EF75C(param0->unk_C08, param0->unk_C10);
@ -164,7 +164,7 @@ void ov5_021EF7A0 (UnkStruct_ov5_021EF76C * param0)
{
BOOL v9;
v9 = sub_0201CBB0(param0->unk_04[v6], param0->unk_C10);
v9 = Easy3D_BindTextureToResource(param0->unk_04[v6], param0->unk_C10);
GF_ASSERT(v9);
}
}
@ -180,10 +180,10 @@ void ov5_021EF7A0 (UnkStruct_ov5_021EF76C * param0)
(NNSG3dResFileHeader *)param0->unk_04[0]);
if (v11 != NULL) {
v10 = sub_0201CBCC(v11);
v10 = Easy3D_UploadTextureToVRAM(v11);
GF_ASSERT(v10);
v10 = sub_0201CBB0(param0->unk_04[0], v11);
v10 = Easy3D_BindTextureToResource(param0->unk_04[0], v11);
GF_ASSERT(v10);
}
}

View File

@ -12,9 +12,6 @@
#include "overlay005/struct_ov5_021D1BEC_decl.h"
#include "overlay006/struct_ov6_0223FDE4_decl.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "field/field_system.h"
#include "field/field_system_sub2_t.h"
#include "struct_defs/struct_02099F80.h"
@ -29,7 +26,7 @@
#include "narc.h"
#include "unk_02006E3C.h"
#include "sys_task.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201D15C.h"
@ -125,9 +122,9 @@ typedef struct {
int unk_18;
int unk_1C;
int unk_20;
UnkStruct_02017294 unk_24;
UnkStruct_020170F4 unk_9C;
UnkStruct_02017248 unk_AC;
Easy3DObject unk_24;
Easy3DModel unk_9C;
Easy3DAnim unk_AC;
NNSFndAllocator unk_C0;
s32 unk_D0;
fx32 unk_D4;
@ -165,9 +162,9 @@ typedef struct UnkStruct_ov6_02240000_t {
} UnkStruct_ov6_02240000;
typedef struct {
UnkStruct_02017294 unk_00;
UnkStruct_020170F4 unk_78;
UnkStruct_02017248 unk_88[2];
Easy3DObject unk_00;
Easy3DModel unk_78;
Easy3DAnim unk_88[2];
UnkStruct_ov6_02240000 * unk_B0;
UnkStruct_ov6_0223FD0C unk_B4;
int unk_C4;
@ -202,9 +199,9 @@ typedef struct {
typedef struct {
int unk_00;
int unk_04;
UnkStruct_02017294 unk_08;
UnkStruct_020170F4 unk_80;
UnkStruct_02017248 unk_90[2];
Easy3DObject unk_08;
Easy3DModel unk_80;
Easy3DAnim unk_90[2];
u32 unk_B8;
UnkStruct_ov6_0223FD0C unk_BC;
int unk_CC;
@ -223,13 +220,13 @@ typedef struct UnkStruct_ov6_022401B8_t {
typedef struct {
u32 unk_00;
UnkStruct_02017294 unk_04;
Easy3DObject unk_04;
UnkStruct_ov6_0223FD0C unk_7C;
int unk_8C;
} UnkStruct_ov6_022407B8;
typedef struct UnkStruct_ov6_02240774_t {
UnkStruct_020170F4 unk_00;
Easy3DModel unk_00;
UnkStruct_ov6_022407B8 unk_10[3];
u32 unk_1C0;
s32 unk_1C4;
@ -243,16 +240,16 @@ typedef struct UnkStruct_ov6_02240774_t {
} UnkStruct_ov6_02240774;
typedef struct UnkStruct_ov6_02240A00_t {
UnkStruct_02017294 unk_00;
UnkStruct_020170F4 unk_78;
UnkStruct_02017248 unk_88[3];
Easy3DObject unk_00;
Easy3DModel unk_78;
Easy3DAnim unk_88[3];
NNSFndAllocator unk_C4;
} UnkStruct_ov6_02240A00;
typedef struct UnkStruct_ov6_02240C44_t {
UnkStruct_02017294 unk_00;
UnkStruct_020170F4 unk_78;
UnkStruct_02017248 unk_88[4];
Easy3DObject unk_00;
Easy3DModel unk_78;
Easy3DAnim unk_88[4];
FieldSystem * fieldSystem;
NNSFndAllocator unk_DC;
} UnkStruct_ov6_02240C44;
@ -277,19 +274,19 @@ static BOOL ov6_02240364(UnkStruct_ov6_022401B8 * param0, int param1, int param2
static void ov6_0223FD00(UnkStruct_ov6_0223FD00 * param0, s32 param1, s32 param2, s32 param3);
static void ov6_0223FD0C(UnkStruct_ov6_0223FD0C * param0, fx32 param1, fx32 param2, s32 param3);
static BOOL ov6_0223FD18(UnkStruct_ov6_0223FD0C * param0, s32 param1);
static void ov6_0223FD58(UnkStruct_020170F4 * param0, u32 param1, u32 param2, u32 param3);
static void ov6_0223FD68(UnkStruct_020170F4 * param0);
static void ov6_0223FD84(UnkStruct_02017248 * param0, NNSFndAllocator * param1);
static BOOL ov6_0223FD98(UnkStruct_02017248 * param0);
static void ov6_0223FD8C(UnkStruct_02017248 * param0);
static void ov6_0223FDA4(UnkStruct_02017248 * param0, fx32 param1);
static void ov6_0223FDAC(UnkStruct_02017294 * param0, UnkStruct_020170F4 * param1);
static void ov6_0223FDB4(UnkStruct_02017294 * param0, UnkStruct_02017248 * param1);
static void ov6_0223FDBC(UnkStruct_02017294 * param0);
static void ov6_0223FDC4(UnkStruct_02017294 * param0, BOOL param1);
static void ov6_0223FDCC(UnkStruct_02017294 * param0, fx32 param1, fx32 param2, fx32 param3);
static void ov6_0223FDD4(UnkStruct_02017294 * param0, fx32 param1, fx32 param2, fx32 param3);
static void ov6_0223FDDC(UnkStruct_02017294 * param0, u16 param1, u32 param2);
static void ov6_0223FD58(Easy3DModel * param0, u32 param1, u32 param2, u32 param3);
static void ov6_0223FD68(Easy3DModel * param0);
static void ov6_0223FD84(Easy3DAnim * param0, NNSFndAllocator * param1);
static BOOL ov6_0223FD98(Easy3DAnim * param0);
static void ov6_0223FD8C(Easy3DAnim * param0);
static void ov6_0223FDA4(Easy3DAnim * param0, fx32 param1);
static void ov6_0223FDAC(Easy3DObject * param0, Easy3DModel * param1);
static void ov6_0223FDB4(Easy3DObject * param0, Easy3DAnim * param1);
static void ov6_0223FDBC(Easy3DObject * param0);
static void ov6_0223FDC4(Easy3DObject * param0, BOOL param1);
static void ov6_0223FDCC(Easy3DObject * param0, fx32 param1, fx32 param2, fx32 param3);
static void ov6_0223FDD4(Easy3DObject * param0, fx32 param1, fx32 param2, fx32 param3);
static void ov6_0223FDDC(Easy3DObject * param0, u16 param1, u32 param2);
static void ov6_0223FF7C(UnkStruct_ov6_0223FDE4 * param0);
static BOOL ov6_0223FFC8(UnkStruct_ov6_0223FDE4 * param0);
static void ov6_0223FFE4(UnkStruct_ov6_0223FDE4 * param0, fx32 param1, fx32 param2);
@ -304,7 +301,7 @@ static void ov6_02240654(UnkStruct_ov6_02240774 * param0);
static void ov6_0224067C(UnkStruct_ov6_02240774 * param0, fx32 param1, fx32 param2, fx32 param3, s32 param4, u16 param5, u16 param6, u16 param7);
static void ov6_022406D8(UnkStruct_ov6_02240774 * param0);
static void ov6_02240750(UnkStruct_ov6_02240774 * param0);
static void ov6_022407B8(UnkStruct_ov6_022407B8 * param0, UnkStruct_020170F4 * param1);
static void ov6_022407B8(UnkStruct_ov6_022407B8 * param0, Easy3DModel * param1);
static void ov6_022407DC(UnkStruct_ov6_022407B8 * param0);
static void ov6_022407E8(UnkStruct_ov6_022407B8 * param0, fx32 param1, fx32 param2, int param3, fx32 param4, fx32 param5, fx32 param6, u16 param7, u16 param8, u16 param9);
static void ov6_0224085C(UnkStruct_ov6_022407B8 * param0);
@ -1058,21 +1055,21 @@ static void ov6_0223EA98 (UnkStruct_ov6_0223EA98 * param0)
v0 = v3[param0->unk_10][0];
v1 = v3[param0->unk_10][1];
sub_020170D8(&param0->unk_9C, v2, v0, 4);
sub_02017258(&param0->unk_24, &param0->unk_9C);
sub_02017350(&param0->unk_24, 0, 0, 0);
sub_0201736C(&param0->unk_24, FX32_CONST(1.00f), FX32_CONST(1.00f), FX32_CONST(1.00f));
sub_02017348(&param0->unk_24, 1);
sub_02017164(&param0->unk_AC, &param0->unk_9C, v2, v1, 4, &param0->unk_C0);
sub_02017240(&param0->unk_AC, 0);
sub_0201727C(&param0->unk_24, &param0->unk_AC);
Easy3DModel_LoadFrom(&param0->unk_9C, v2, v0, 4);
Easy3DObject_Init(&param0->unk_24, &param0->unk_9C);
Easy3DObject_SetPosition(&param0->unk_24, 0, 0, 0);
Easy3DObject_SetScale(&param0->unk_24, FX32_CONST(1.00f), FX32_CONST(1.00f), FX32_CONST(1.00f));
Easy3DObject_SetVisibility(&param0->unk_24, 1);
Easy3DAnim_LoadFrom(&param0->unk_AC, &param0->unk_9C, v2, v1, 4, &param0->unk_C0);
Easy3DAnim_SetFrame(&param0->unk_AC, 0);
Easy3DObject_AddAnim(&param0->unk_24, &param0->unk_AC);
NARC_dtor(v2);
}
static void ov6_0223EB34 (UnkStruct_ov6_0223EA98 * param0)
{
sub_02017110(&param0->unk_9C);
sub_020171A0(&param0->unk_AC, &param0->unk_C0);
Easy3DModel_Release(&param0->unk_9C);
Easy3DAnim_Release(&param0->unk_AC, &param0->unk_C0);
}
static void ov6_0223EB4C (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSystem, void * param2)
@ -1120,17 +1117,17 @@ static BOOL ov6_0223EBDC (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D4 = FX32_CONST(573);
param0->unk_D8 = FX32_CONST(330 + 30);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 20);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 20);
param0->unk_18++;
break;
case 1:
param0->unk_D0++;
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
if (v0[0] && v0[1]) {
Sound_PlayPokemonCry(0, 480, 0, 100, 4, 0);
@ -1141,16 +1138,16 @@ static BOOL ov6_0223EBDC (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D4 = FX32_CONST(444);
param0->unk_D8 = FX32_CONST(330 + 30);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 20);
param0->unk_18++;
break;
case 3:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
param0->unk_D8 += (sub_0201D264(param0->unk_D0 * (180 / 20)) * 3);
param0->unk_D0++;
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_D8);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_D8);
if (v0[0]) {
param0->unk_18++;
@ -1160,16 +1157,16 @@ static BOOL ov6_0223EBDC (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D4 = FX32_CONST(507);
param0->unk_D8 = FX32_CONST(330 + 30);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 20);
param0->unk_18++;
break;
case 5:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
param0->unk_D8 -= (sub_0201D264(param0->unk_D0 * (90 / 20)) * 3);
param0->unk_D0++;
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_D8);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_D8);
if (v0[0]) {
param0->unk_18 = 99;
@ -1197,17 +1194,17 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D4 = FX32_CONST(555);
param0->unk_D8 = FX32_CONST(317 + 30);
param0->unk_E0 = FX32_CONST(0);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 32);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 32);
param0->unk_18++;
break;
case 1:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
param0->unk_D0++;
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00 + param0->unk_E0);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00 + param0->unk_E0);
if (v0[0] && v0[1]) {
param0->unk_18++;
@ -1217,16 +1214,16 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D4 = FX32_CONST(507);
param0->unk_D8 = FX32_CONST(317 + 30);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 32);
param0->unk_18++;
break;
case 3:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
param0->unk_D8 += (sub_0201D264(param0->unk_D0 * (180 / 32)) * 3);
param0->unk_D0++;
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_D8);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_D8);
if (v0[0]) {
param0->unk_18++;
@ -1234,13 +1231,13 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
break;
case 4:
param0->unk_D0 = 0;
sub_02017358(&param0->unk_24, &v1, &v2, &param0->unk_D8);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &param0->unk_D8);
param0->unk_18++;
case 5:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
param0->unk_D8 -= (sub_0201D264(param0->unk_D0 * (360 / 32)) * 2);
param0->unk_D0++;
sub_02017350(&param0->unk_24, v1, v2, param0->unk_D8);
Easy3DObject_SetPosition(&param0->unk_24, v1, v2, param0->unk_D8);
if (param0->unk_D0 >= (32 * 2)) {
param0->unk_D0 = 0;
@ -1252,18 +1249,18 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D4 = FX32_CONST(465);
param0->unk_D8 = FX32_CONST(468 + 30);
param0->unk_DC = FX32_CONST(0);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 32);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 32);
param0->unk_18++;
break;
case 7:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
param0->unk_D0++;
param0->unk_DC -= (sub_0201D264((param0->unk_D0 + 1) * (180 / 32)) * 4);
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00 + param0->unk_DC, v2, param0->unk_F4.unk_00);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00 + param0->unk_DC, v2, param0->unk_F4.unk_00);
if (v0[0] && v0[1]) {
param0->unk_18++;
@ -1273,13 +1270,13 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
sub_0206296C(param0->unk_10C, 2);
LocalMapObj_SetAnimationCode(param0->unk_110, 0x2);
sub_02017358(&param0->unk_24, &v1, &v2, &param0->unk_D8);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &param0->unk_D8);
param0->unk_18++;
case 9:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
param0->unk_D8 += (sub_0201D264(param0->unk_D0 * (360 / 32)) * 1);
param0->unk_D0++;
sub_02017350(&param0->unk_24, v1, v2, param0->unk_D8);
Easy3DObject_SetPosition(&param0->unk_24, v1, v2, param0->unk_D8);
if (param0->unk_D0 >= (32 * 1)) {
param0->unk_1C = 1;
@ -1292,18 +1289,18 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D4 = FX32_CONST(503);
param0->unk_D8 = FX32_CONST(475 + 30);
param0->unk_E0 = FX32_CONST(0);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 32);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 32);
param0->unk_18++;
break;
case 11:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
param0->unk_E0 += (sub_0201D264(param0->unk_D0 * (180 / 32)) * 2);
param0->unk_D0++;
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00 + param0->unk_E0);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00 + param0->unk_E0);
if (v0[0] && v0[1]) {
param0->unk_18++;
@ -1313,13 +1310,13 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D4 = FX32_CONST(503);
param0->unk_D8 = FX32_CONST(454 + 30);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 32 / 4);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 32 / 4);
param0->unk_18++;
break;
case 13:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
param0->unk_D0++;
@ -1331,7 +1328,7 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
}
}
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
if (v0[0] && v0[1]) {
param0->unk_18++;
@ -1345,7 +1342,7 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
}
MapObject_SetHidden(param0->unk_108, 0);
sub_02017348(&param0->unk_24, 0);
Easy3DObject_SetVisibility(&param0->unk_24, 0);
param0->unk_18++;
break;
case 15:
@ -1374,7 +1371,7 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
}
MapObject_SetHidden(param0->unk_108, 1);
sub_02017348(&param0->unk_24, 1);
Easy3DObject_SetVisibility(&param0->unk_24, 1);
param0->unk_18++;
case 18:
@ -1384,13 +1381,13 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D8 = FX32_CONST(319 + 30);
param0->unk_DC = FX32_CONST(0);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
param0->unk_D4 = v1;
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 32);
param0->unk_18++;
break;
case 20:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
param0->unk_D0++;
@ -1400,7 +1397,7 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
}
param0->unk_DC += (sub_0201D264((param0->unk_D0 + 1) * (180 / 32)) * 8);
sub_02017350(&param0->unk_24, param0->unk_D4 + param0->unk_DC, v2, param0->unk_F4.unk_00);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_D4 + param0->unk_DC, v2, param0->unk_F4.unk_00);
if (v0[0]) {
param0->unk_18 = 99;
@ -1410,17 +1407,17 @@ static BOOL ov6_0223EE5C (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D4 = FX32_CONST(Unk_ov6_02248EA8[param0->unk_10][0]);
param0->unk_D8 = FX32_CONST(Unk_ov6_02248EA8[param0->unk_10][1]);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 20);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 20);
param0->unk_18++;
break;
case 100:
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
param0->unk_D0++;
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
if (v0[0] && v0[1]) {
param0->unk_18++;
@ -1464,17 +1461,17 @@ static BOOL ov6_0223F744 (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D4 = FX32_CONST(606);
param0->unk_D8 = FX32_CONST(340 + 30);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 8);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 8);
param0->unk_18++;
break;
case 1:
param0->unk_D0++;
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
if (v0[0] && v0[1]) {
param0->unk_18++;
@ -1484,17 +1481,17 @@ static BOOL ov6_0223F744 (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D4 = FX32_CONST(438);
param0->unk_D8 = FX32_CONST(412 + 30);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 8);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 8);
param0->unk_18++;
break;
case 3:
param0->unk_D0++;
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
if (v0[0] && v0[1]) {
Sound_PlayPokemonCry(0, 482, 0, 100, 4, 0);
@ -1506,17 +1503,17 @@ static BOOL ov6_0223F744 (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D0 = 0;
param0->unk_D4 = FX32_CONST(504);
param0->unk_D8 = FX32_CONST(307 + 30);
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 8);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 8);
param0->unk_18++;
break;
case 5:
param0->unk_D0++;
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
if (v0[0] && v0[1]) {
param0->unk_18++;
@ -1566,7 +1563,7 @@ static BOOL ov6_0223F9F4 (UnkStruct_ov6_0223EA98 * param0)
param0->unk_D4 = FX32_CONST(504);
param0->unk_D8 = FX32_CONST(439);
param0->unk_D0 = 0;
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
ov6_0223FD0C(&param0->unk_E4, v1, param0->unk_D4, 6);
ov6_0223FD0C(&param0->unk_F4, v3, param0->unk_D8, 6);
param0->unk_14++;
@ -1574,13 +1571,13 @@ static BOOL ov6_0223F9F4 (UnkStruct_ov6_0223EA98 * param0)
break;
case 2:
{
sub_02017358(&param0->unk_24, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param0->unk_24, &v1, &v2, &v3);
v0[0] = ov6_0223FD18(&param0->unk_E4, param0->unk_D0);
v0[1] = ov6_0223FD18(&param0->unk_F4, param0->unk_D0);
param0->unk_D0++;
sub_02017350(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_E4.unk_00, v2, param0->unk_F4.unk_00);
if (v0[0] && v0[1]) {
param0->unk_14++;
@ -1621,7 +1618,7 @@ static void ov6_0223FAF8 (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSy
504, 504, 435
};
sub_02017350(&v0->unk_24, FX32_CONST(v4[v0->unk_10]), FX32_CONST(99), FX32_CONST(290 + 30));
Easy3DObject_SetPosition(&v0->unk_24, FX32_CONST(v4[v0->unk_10]), FX32_CONST(99), FX32_CONST(290 + 30));
}
v0->unk_20 = 0;
@ -1683,9 +1680,9 @@ static void ov6_0223FAF8 (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSy
if (v0->unk_10 != 3) {
G3_Identity();
sub_020171CC(&v0->unk_AC, FX32_ONE);
Easy3DAnim_UpdateLooped(&v0->unk_AC, FX32_ONE);
NNS_G3dGePushMtx();
sub_02017294(&v0->unk_24);
Easy3DObject_Draw(&v0->unk_24);
NNS_G3dGePopMtx(1);
}
}
@ -1764,79 +1761,79 @@ static BOOL ov6_0223FD18 (UnkStruct_ov6_0223FD0C * param0, s32 param1)
return v1;
}
static void ov6_0223FD58 (UnkStruct_020170F4 * param0, u32 param1, u32 param2, u32 param3)
static void ov6_0223FD58 (Easy3DModel * param0, u32 param1, u32 param2, u32 param3)
{
sub_020170BC(param0, param1, param2, param3);
Easy3DModel_Load(param0, param1, param2, param3);
}
static void ov6_0223FD60 (UnkStruct_020170F4 * param0, NARC * param1, u32 param2, u32 param3)
static void ov6_0223FD60 (Easy3DModel * param0, NARC * param1, u32 param2, u32 param3)
{
sub_020170D8(param0, param1, param2, param3);
Easy3DModel_LoadFrom(param0, param1, param2, param3);
}
static void ov6_0223FD68 (UnkStruct_020170F4 * param0)
static void ov6_0223FD68 (Easy3DModel * param0)
{
sub_02017110(param0);
Easy3DModel_Release(param0);
}
static void ov6_0223FD70 (UnkStruct_02017248 * param0, const UnkStruct_020170F4 * param1, NARC * param2, u32 param3, u32 param4, NNSFndAllocator * param5)
static void ov6_0223FD70 (Easy3DAnim * param0, const Easy3DModel * param1, NARC * param2, u32 param3, u32 param4, NNSFndAllocator * param5)
{
sub_02017164(param0, param1, param2, param3, param4, param5);
Easy3DAnim_LoadFrom(param0, param1, param2, param3, param4, param5);
}
static void ov6_0223FD84 (UnkStruct_02017248 * param0, NNSFndAllocator * param1)
static void ov6_0223FD84 (Easy3DAnim * param0, NNSFndAllocator * param1)
{
sub_020171A0(param0, param1);
Easy3DAnim_Release(param0, param1);
}
static void ov6_0223FD8C (UnkStruct_02017248 * param0)
static void ov6_0223FD8C (Easy3DAnim * param0)
{
sub_020171CC(param0, FX32_ONE);
Easy3DAnim_UpdateLooped(param0, FX32_ONE);
}
static BOOL ov6_0223FD98 (UnkStruct_02017248 * param0)
static BOOL ov6_0223FD98 (Easy3DAnim * param0)
{
return sub_02017204(param0, FX32_ONE);
return Easy3DAnim_Update(param0, FX32_ONE);
}
static void ov6_0223FDA4 (UnkStruct_02017248 * param0, fx32 param1)
static void ov6_0223FDA4 (Easy3DAnim * param0, fx32 param1)
{
sub_02017240(param0, param1);
Easy3DAnim_SetFrame(param0, param1);
}
static void ov6_0223FDAC (UnkStruct_02017294 * param0, UnkStruct_020170F4 * param1)
static void ov6_0223FDAC (Easy3DObject * param0, Easy3DModel * param1)
{
sub_02017258(param0, param1);
Easy3DObject_Init(param0, param1);
}
static void ov6_0223FDB4 (UnkStruct_02017294 * param0, UnkStruct_02017248 * param1)
static void ov6_0223FDB4 (Easy3DObject * param0, Easy3DAnim * param1)
{
sub_0201727C(param0, param1);
Easy3DObject_AddAnim(param0, param1);
}
static void ov6_0223FDBC (UnkStruct_02017294 * param0)
static void ov6_0223FDBC (Easy3DObject * param0)
{
sub_02017294(param0);
Easy3DObject_Draw(param0);
}
static void ov6_0223FDC4 (UnkStruct_02017294 * param0, BOOL param1)
static void ov6_0223FDC4 (Easy3DObject * param0, BOOL param1)
{
sub_02017348(param0, param1);
Easy3DObject_SetVisibility(param0, param1);
}
static void ov6_0223FDCC (UnkStruct_02017294 * param0, fx32 param1, fx32 param2, fx32 param3)
static void ov6_0223FDCC (Easy3DObject * param0, fx32 param1, fx32 param2, fx32 param3)
{
sub_02017350(param0, param1, param2, param3);
Easy3DObject_SetPosition(param0, param1, param2, param3);
}
static void ov6_0223FDD4 (UnkStruct_02017294 * param0, fx32 param1, fx32 param2, fx32 param3)
static void ov6_0223FDD4 (Easy3DObject * param0, fx32 param1, fx32 param2, fx32 param3)
{
sub_0201736C(param0, param1, param2, param3);
Easy3DObject_SetScale(param0, param1, param2, param3);
}
static void ov6_0223FDDC (UnkStruct_02017294 * param0, u16 param1, u32 param2)
static void ov6_0223FDDC (Easy3DObject * param0, u16 param1, u32 param2)
{
sub_02017388(param0, param1, param2);
Easy3DObject_SetRotation(param0, param1, param2);
}
UnkStruct_ov6_0223FDE4 * ov6_0223FDE4 (u32 param0)
@ -2516,7 +2513,7 @@ void ov6_022407B0 (UnkStruct_ov6_02240774 * param0)
ov6_02240750(param0);
}
static void ov6_022407B8 (UnkStruct_ov6_022407B8 * param0, UnkStruct_020170F4 * param1)
static void ov6_022407B8 (UnkStruct_ov6_022407B8 * param0, Easy3DModel * param1)
{
memset(param0, 0, sizeof(UnkStruct_ov6_022407B8));

View File

@ -7,9 +7,6 @@
#include "struct_decls/struct_02061AB4_decl.h"
#include "overlay005/struct_ov5_021D1BEC_decl.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "field/field_system.h"
#include "field/field_system_sub2_t.h"
#include "overlay006/struct_ov6_0223E6EC.h"
@ -17,7 +14,7 @@
#include "unk_02005474.h"
#include "narc.h"
#include "unk_02006E3C.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "player_avatar.h"
#include "map_object.h"
@ -25,9 +22,9 @@
#include "overlay006/ov6_02248050.h"
typedef struct {
UnkStruct_02017294 unk_00;
UnkStruct_020170F4 unk_78;
UnkStruct_02017248 unk_88[4];
Easy3DObject unk_00;
Easy3DModel unk_78;
Easy3DAnim unk_88[4];
u32 unk_D8;
} UnkStruct_ov6_02248140;
@ -50,13 +47,13 @@ typedef struct UnkStruct_ov6_02248498_t {
} UnkStruct_ov6_02248498;
typedef struct {
UnkStruct_02017294 unk_00;
UnkStruct_02017248 unk_78[4];
Easy3DObject unk_00;
Easy3DAnim unk_78[4];
u32 unk_C8;
} UnkStruct_ov6_022486B4;
typedef struct {
UnkStruct_020170F4 unk_00;
Easy3DModel unk_00;
UnkStruct_ov6_022486B4 unk_10[16];
void * unk_CD0[4];
FieldSystem * fieldSystem;
@ -68,7 +65,7 @@ typedef struct {
u32 unk_D0C;
} UnkStruct_ov6_022487F8;
static void ov6_02248050 (MapObjectManager * param0, u32 param1, UnkStruct_02017294 * param2)
static void ov6_02248050 (MapObjectManager * param0, u32 param1, Easy3DObject * param2)
{
int v0;
int v1, v2;
@ -101,10 +98,10 @@ static void ov6_02248050 (MapObjectManager * param0, u32 param1, UnkStruct_02017
break;
}
sub_02017350(param2, (((v1) << 4) * FX32_ONE) + ((16 * FX32_ONE) >> 1), v3.y, (((v2) << 4) * FX32_ONE) + ((16 * FX32_ONE) >> 1));
Easy3DObject_SetPosition(param2, (((v1) << 4) * FX32_ONE) + ((16 * FX32_ONE) >> 1), v3.y, (((v2) << 4) * FX32_ONE) + ((16 * FX32_ONE) >> 1));
}
static void ov6_022480BC (PlayerAvatar * const playerAvatar, UnkStruct_02017294 * param1)
static void ov6_022480BC (PlayerAvatar * const playerAvatar, Easy3DObject * param1)
{
int v0;
int v1, v2;
@ -134,15 +131,15 @@ static void ov6_022480BC (PlayerAvatar * const playerAvatar, UnkStruct_02017294
break;
}
sub_02017350(param1, (((v1) << 4) * FX32_ONE) + ((16 * FX32_ONE) >> 1), v3.y, (((v2) << 4) * FX32_ONE) + ((16 * FX32_ONE) >> 1));
Easy3DObject_SetPosition(param1, (((v1) << 4) * FX32_ONE) + ((16 * FX32_ONE) >> 1), v3.y, (((v2) << 4) * FX32_ONE) + ((16 * FX32_ONE) >> 1));
}
static void ov6_02248124 (PlayerAvatar * const playerAvatar, UnkStruct_02017294 * param1)
static void ov6_02248124 (PlayerAvatar * const playerAvatar, Easy3DObject * param1)
{
VecFx32 v0;
PlayerAvatar_PosVectorOut(playerAvatar, &v0);
sub_02017350(param1, v0.x, v0.y, v0.z);
Easy3DObject_SetPosition(param1, v0.x, v0.y, v0.z);
}
static void ov6_02248140 (UnkStruct_ov6_02248140 * param0, NARC * param1, u32 param2, u32 param3, int param4, NNSFndAllocator * param5)
@ -151,14 +148,14 @@ static void ov6_02248140 (UnkStruct_ov6_02248140 * param0, NARC * param1, u32 pa
memset(param0, 0, sizeof(UnkStruct_ov6_02248140));
sub_020170D8(&param0->unk_78, param1, param2, 4);
sub_02017258(&param0->unk_00, &param0->unk_78);
Easy3DModel_LoadFrom(&param0->unk_78, param1, param2, 4);
Easy3DObject_Init(&param0->unk_00, &param0->unk_78);
param0->unk_D8 = param4;
for (v0 = 0; v0 < param0->unk_D8; v0++) {
sub_02017164(&param0->unk_88[v0], &param0->unk_78, param1, param3 + v0, 4, param5);
sub_0201727C(&param0->unk_00, &param0->unk_88[v0]);
Easy3DAnim_LoadFrom(&param0->unk_88[v0], &param0->unk_78, param1, param3 + v0, 4, param5);
Easy3DObject_AddAnim(&param0->unk_00, &param0->unk_88[v0]);
}
}
@ -166,10 +163,10 @@ static void ov6_022481BC (UnkStruct_ov6_02248140 * param0, NNSFndAllocator * par
{
int v0;
sub_02017110(&param0->unk_78);
Easy3DModel_Release(&param0->unk_78);
for (v0 = 0; v0 < param0->unk_D8; v0++) {
sub_020171A0(&param0->unk_88[v0], param1);
Easy3DAnim_Release(&param0->unk_88[v0], param1);
}
}
@ -181,7 +178,7 @@ static BOOL ov6_022481F0 (UnkStruct_ov6_02248140 * param0)
v1 = 1;
for (v0 = 0; v0 < param0->unk_D8; v0++) {
v1 &= sub_02017204(&param0->unk_88[v0], FX32_ONE);
v1 &= Easy3DAnim_Update(&param0->unk_88[v0], FX32_ONE);
}
return v1;
@ -192,13 +189,13 @@ static void ov6_02248224 (UnkStruct_ov6_02248140 * param0)
int v0;
for (v0 = 0; v0 < param0->unk_D8; v0++) {
sub_020171CC(&param0->unk_88[v0], FX32_ONE);
Easy3DAnim_UpdateLooped(&param0->unk_88[v0], FX32_ONE);
}
}
static void ov6_02248254 (UnkStruct_ov6_02248140 * param0)
{
sub_02017294(&param0->unk_00);
Easy3DObject_Draw(&param0->unk_00);
}
static void ov6_0224825C (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSystem, void * param2)
@ -238,7 +235,7 @@ static void ov6_022482CC (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSy
v2 = ov6_022481F0(&v0->unk_00);
if (v2 == 1) {
sub_02017348(&v0->unk_00.unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_00.unk_00, 0);
v0->unk_EC++;
}
break;
@ -339,7 +336,7 @@ static void ov6_02248410 (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSy
v2 = ov6_022481F0(&v0->unk_00);
if (v2 == 1) {
sub_02017348(&v0->unk_00.unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_00.unk_00, 0);
v0->unk_EC++;
}
break;
@ -446,15 +443,15 @@ static void ov6_02248520 (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSy
ov6_02248140(&v0->unk_00[1], v2, 11, 9, 2, &v0->unk_1B8);
NARC_dtor(v2);
ov6_02248124(fieldSystem->playerAvatar, &v0->unk_00[1].unk_00);
sub_02017348(&v0->unk_00[1].unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_00[1].unk_00, 0);
v0->unk_1C8++;
case 1:
v1 = ov6_022481F0(&v0->unk_00[0]);
ov6_02248124(fieldSystem->playerAvatar, &v0->unk_00[0].unk_00);
if (v1 == 1) {
sub_02017348(&v0->unk_00[1].unk_00, 1);
sub_02017348(&v0->unk_00[0].unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_00[1].unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_00[0].unk_00, 0);
ov6_02248124(fieldSystem->playerAvatar, &v0->unk_00[1].unk_00);
v0->unk_1C8++;
}
@ -507,15 +504,15 @@ static void ov6_02248610 (UnkStruct_ov6_022486B4 * param0, PlayerAvatar * const
GF_ASSERT(param0->unk_C8 == 0);
PlayerAvatar_PosVectorOut(playerAvatar, &v0);
sub_02017350(&param0->unk_00, v0.x, v0.y + param2, v0.z + param3);
Easy3DObject_SetPosition(&param0->unk_00, v0.x, v0.y + param2, v0.z + param3);
param0->unk_C8 = 1;
for (v1 = 0; v1 < 4; v1++) {
sub_02017240(&param0->unk_78[v1], 0);
Easy3DAnim_SetFrame(&param0->unk_78[v1], 0);
}
sub_02017348(&param0->unk_00, 1);
Easy3DObject_SetVisibility(&param0->unk_00, 1);
Sound_PlayEffect(1575);
}
@ -531,28 +528,28 @@ static void ov6_02248678 (UnkStruct_ov6_022486B4 * param0)
v1 = 1;
for (v0 = 0; v0 < 4; v0++) {
v1 &= sub_02017204(&param0->unk_78[v0], FX32_ONE);
v1 &= Easy3DAnim_Update(&param0->unk_78[v0], FX32_ONE);
}
if (v1 == 1) {
param0->unk_C8 = 0;
sub_02017348(&param0->unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_00, 0);
}
}
static void ov6_022486B4 (UnkStruct_ov6_022486B4 * param0, UnkStruct_020170F4 * param1, NNSFndAllocator * param2, void ** param3)
static void ov6_022486B4 (UnkStruct_ov6_022486B4 * param0, Easy3DModel * param1, NNSFndAllocator * param2, void ** param3)
{
int v0;
memset(param0, 0, sizeof(UnkStruct_ov6_022486B4));
sub_02017258(&param0->unk_00, param1);
Easy3DObject_Init(&param0->unk_00, param1);
for (v0 = 0; v0 < 4; v0++) {
sub_02017190(&param0->unk_78[v0], param1, param3[v0], param2);
sub_0201727C(&param0->unk_00, &param0->unk_78[v0]);
Easy3DAnim_LoadFromData(&param0->unk_78[v0], param1, param3[v0], param2);
Easy3DObject_AddAnim(&param0->unk_00, &param0->unk_78[v0]);
}
sub_02017348(&param0->unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_00, 0);
}
static void ov6_02248700 (UnkStruct_ov6_022486B4 * param0, NNSFndAllocator * param1)
@ -560,7 +557,7 @@ static void ov6_02248700 (UnkStruct_ov6_022486B4 * param0, NNSFndAllocator * par
int v0;
for (v0 = 0; v0 < 4; v0++) {
sub_020171A0(&param0->unk_78[v0], param1);
Easy3DAnim_Release(&param0->unk_78[v0], param1);
}
memset(param0, 0, sizeof(UnkStruct_ov6_022486B4));
@ -619,7 +616,7 @@ static void ov6_022487F8 (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSy
v2 = NARC_ctor(NARC_INDEX_GRAPHIC__HIDEN_EFFECT, 4);
sub_020170D8(&v0->unk_00, v2, 8, 4);
Easy3DModel_LoadFrom(&v0->unk_00, v2, 8, 4);
for (v1 = 0; v1 < 4; v1++) {
v0->unk_CD0[v1] = sub_0200723C(v2, 4 + v1, 0, 4, 0);
@ -645,7 +642,7 @@ static void ov6_0224889C (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSy
ov6_02248700(&v0->unk_10[v1], &v0->unk_CFC);
}
sub_02017110(&v0->unk_00);
Easy3DModel_Release(&v0->unk_00);
for (v1 = 0; v1 < 4; v1++) {
Heap_FreeToHeap(v0->unk_CD0[v1]);
@ -678,7 +675,7 @@ static void ov6_02248914 (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldSy
int v1;
for (v1 = 0; v1 < 16; v1++) {
sub_02017294(&v0->unk_10[v1].unk_00);
Easy3DObject_Draw(&v0->unk_10[v1].unk_00);
}
}

View File

@ -20,7 +20,7 @@
#include "unk_0200F174.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201D670.h"
#include "unk_0202854C.h"
#include "unk_020508D4.h"
@ -1312,7 +1312,7 @@ static void ov23_02255EC4 (UnkStruct_ov23_02255EC4 * param0)
{
NNSG3dResMdl * v0;
sub_0201CA24(4, "data/ug_base_cur.nsbmd", &param0->unk_00, &v0, &param0->unk_54);
Easy3D_InitRenderObjFromPath(4, "data/ug_base_cur.nsbmd", &param0->unk_00, &v0, &param0->unk_54);
param0->unk_58.x = 0;
param0->unk_58.y = 0;
@ -1629,6 +1629,6 @@ static void ov23_022562C8 (UnkStruct_ov5_021D1BEC * param0, FieldSystem * fieldS
MtxFx33 v1 = {FX32_ONE, 0, 0, 0, FX32_ONE, 0, 0, 0, FX32_ONE};
VecFx32 v2 = {FX32_ONE, FX32_ONE, FX32_ONE};
sub_0201CA74(&v0->unk_00, &v0->unk_58, &v1, &v2);
Easy3D_DrawRenderObj(&v0->unk_00, &v0->unk_58, &v1, &v2);
}
}

View File

@ -6,8 +6,6 @@
#include "struct_decls/struct_020216E0_decl.h"
#include "overlay063/struct_ov63_0222BEC0_decl.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017294.h"
#include "struct_defs/struct_0201CFEC.h"
#include "struct_defs/struct_020217F4.h"
#include "struct_defs/struct_02024184.h"
@ -18,9 +16,9 @@
#include "narc.h"
#include "unk_02006E3C.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201CED8.h"
#include "unk_02020AEC.h"
#include "resource_collection.h"
@ -37,7 +35,7 @@ typedef struct {
} UnkStruct_ov66_02258B38;
typedef struct {
UnkStruct_020170F4 unk_00;
Easy3DModel unk_00;
u32 unk_10;
} UnkStruct_ov66_02234958;
@ -51,7 +49,7 @@ typedef struct UnkStruct_ov66_02234798_t {
u8 unk_03;
const UnkStruct_ov63_0222BEC0 * unk_04;
UnkStruct_020216E0 * unk_08;
UnkStruct_02017294 unk_0C;
Easy3DObject unk_0C;
u8 unk_84;
u8 unk_85;
u16 unk_86;
@ -77,7 +75,7 @@ static void ov66_022348FC(UnkStruct_ov66_02234958 * param0, NARC * param1, u32 p
static void ov66_02234958(UnkStruct_ov66_02234958 * param0);
static void ov66_02234960(UnkStruct_ov66_02234958 * param0, u32 param1);
static u32 ov66_0223496C(const UnkStruct_ov66_02234958 * param0);
static void ov66_02234970(UnkStruct_ov66_02234958 * param0, UnkStruct_02017294 * param1);
static void ov66_02234970(UnkStruct_ov66_02234958 * param0, Easy3DObject * param1);
static UnkStruct_ov66_02234798 * ov66_02234980(UnkStruct_ov66_02234548 * param0);
static BOOL ov66_022349B8(const UnkStruct_ov66_02234798 * param0);
static void ov66_022349C8(UnkStruct_ov66_02234798 * param0);
@ -383,7 +381,7 @@ UnkStruct_ov66_02234798 * ov66_0223461C (UnkStruct_ov66_02234548 * param0, const
sub_02021444(v0->unk_08, ov66_02234D78, v0);
ov66_02234970(&param0->unk_18, &v0->unk_0C);
sub_02017350(&v0->unk_0C, v13.x + 0, ((FX32_CONST(0)) + FX32_CONST(2)), v13.z + (FX32_CONST(-8)));
Easy3DObject_SetPosition(&v0->unk_0C, v13.x + 0, ((FX32_CONST(0)) + FX32_CONST(2)), v13.z + (FX32_CONST(-8)));
}
v0->unk_00_0 = 1;
@ -427,7 +425,7 @@ void ov66_022347D4 (UnkStruct_ov66_02234798 * param0, const UnkStruct_ov63_0222C
void ov66_022347F8 (UnkStruct_ov66_02234798 * param0, const VecFx32 * param1)
{
sub_020212A8(param0->unk_08, param1);
sub_02017350(&param0->unk_0C, param1->x + 0, ((FX32_CONST(0)) + FX32_CONST(2)), param1->z + (FX32_CONST(-8)));
Easy3DObject_SetPosition(&param0->unk_0C, param1->x + 0, ((FX32_CONST(0)) + FX32_CONST(2)), param1->z + (FX32_CONST(-8)));
}
void ov66_0223481C (const UnkStruct_ov66_02234798 * param0, VecFx32 * param1)
@ -518,25 +516,25 @@ static void ov66_022348FC (UnkStruct_ov66_02234958 * param0, NARC * param1, u32
ov70_0225C730(&v0, param1, param2, param3);
param0->unk_00.unk_00 = v0;
param0->unk_00.unk_04 = NNS_G3dGetMdlSet(param0->unk_00.unk_00);
param0->unk_00.unk_08 = NNS_G3dGetMdlByIdx(param0->unk_00.unk_04, 0);
param0->unk_00.unk_0C = NNS_G3dGetTex(param0->unk_00.unk_00);
param0->unk_00.data = v0;
param0->unk_00.set = NNS_G3dGetMdlSet(param0->unk_00.data);
param0->unk_00.model = NNS_G3dGetMdlByIdx(param0->unk_00.set, 0);
param0->unk_00.texture = NNS_G3dGetTex(param0->unk_00.data);
sub_0201CBB0(param0->unk_00.unk_00, param0->unk_00.unk_0C);
Easy3D_BindTextureToResource(param0->unk_00.data, param0->unk_00.texture);
NNS_G3dMdlSetMdlPolygonIDAll(param0->unk_00.unk_08, 20);
NNS_G3dMdlSetMdlPolygonIDAll(param0->unk_00.model, 20);
}
static void ov66_02234958 (UnkStruct_ov66_02234958 * param0)
{
sub_02017110(&param0->unk_00);
Easy3DModel_Release(&param0->unk_00);
}
static void ov66_02234960 (UnkStruct_ov66_02234958 * param0, u32 param1)
{
param0->unk_10 = param1;
NNS_G3dMdlSetMdlAlphaAll(param0->unk_00.unk_08, param0->unk_10);
NNS_G3dMdlSetMdlAlphaAll(param0->unk_00.model, param0->unk_10);
}
static u32 ov66_0223496C (const UnkStruct_ov66_02234958 * param0)
@ -544,9 +542,9 @@ static u32 ov66_0223496C (const UnkStruct_ov66_02234958 * param0)
return param0->unk_10;
}
static void ov66_02234970 (UnkStruct_ov66_02234958 * param0, UnkStruct_02017294 * param1)
static void ov66_02234970 (UnkStruct_ov66_02234958 * param0, Easy3DObject * param1)
{
sub_02017258(param1, &param0->unk_00);
Easy3DObject_Init(param1, &param0->unk_00);
}
static UnkStruct_ov66_02234798 * ov66_02234980 (UnkStruct_ov66_02234548 * param0)
@ -579,7 +577,7 @@ static void ov66_022349C8 (UnkStruct_ov66_02234798 * param0)
static void ov66_022349D4 (UnkStruct_ov66_02234798 * param0)
{
sub_02017294(&param0->unk_0C);
Easy3DObject_Draw(&param0->unk_0C);
}
static void ov66_022349E0 (UnkStruct_ov66_02234798 * param0)
@ -816,10 +814,10 @@ static void ov66_02234D3C (UnkStruct_ov66_02234798 * param0)
{
if ((param0->unk_00_4 == 0) && (param0->unk_00_6 == 1)) {
sub_02021320(param0->unk_08, 1);
sub_02017348(&param0->unk_0C, 1);
Easy3DObject_SetVisibility(&param0->unk_0C, 1);
} else {
sub_02021320(param0->unk_08, 0);
sub_02017348(&param0->unk_0C, 0);
Easy3DObject_SetVisibility(&param0->unk_0C, 0);
}
}

View File

@ -18,8 +18,6 @@
#include "struct_defs/struct_0200C738.h"
#include "struct_defs/struct_02015958.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017294.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_defs/struct_0207C690.h"
#include "struct_defs/struct_02099F80.h"
@ -50,7 +48,7 @@
#include "unk_0200DA60.h"
#include "unk_0200F174.h"
#include "unk_02015920.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
@ -133,15 +131,15 @@ typedef struct {
VecFx32 unk_00;
VecFx32 unk_0C;
VecFx32 unk_18;
UnkStruct_02017294 unk_24;
UnkStruct_020170F4 unk_9C;
Easy3DObject unk_24;
Easy3DModel unk_9C;
} UnkStruct_ov69_0225D71C;
typedef struct {
UnkStruct_ov69_0225CA7C_sub1 unk_00;
VecFx32 unk_B804;
UnkStruct_02017294 unk_B810[3];
UnkStruct_020170F4 unk_B978[3];
Easy3DObject unk_B810[3];
Easy3DModel unk_B978[3];
} UnkStruct_ov69_0225CA7C;
typedef struct {
@ -1559,15 +1557,15 @@ static void ov69_0225D6D8 (UnkStruct_ov69_0225D71C * param0, UnkStruct_ov69_0225
}
{
sub_020170D8(&param0->unk_9C, param1->unk_1A8, 3, param2);
sub_02017258(&param0->unk_24, &param0->unk_9C);
Easy3DModel_LoadFrom(&param0->unk_9C, param1->unk_1A8, 3, param2);
Easy3DObject_Init(&param0->unk_24, &param0->unk_9C);
}
}
static void ov69_0225D71C (UnkStruct_ov69_0225D71C * param0)
{
{
sub_02017110(&param0->unk_9C);
Easy3DModel_Release(&param0->unk_9C);
}
}
@ -1577,10 +1575,10 @@ static void ov69_0225D728 (UnkStruct_ov69_0225D71C * param0)
ov69_0225D770(param0, &v0);
sub_02017350(&param0->unk_24, param0->unk_00.x, param0->unk_00.y, param0->unk_00.z);
sub_0201736C(&param0->unk_24, param0->unk_0C.x, param0->unk_0C.y, param0->unk_0C.z);
Easy3DObject_SetPosition(&param0->unk_24, param0->unk_00.x, param0->unk_00.y, param0->unk_00.z);
Easy3DObject_SetScale(&param0->unk_24, param0->unk_0C.x, param0->unk_0C.y, param0->unk_0C.z);
sub_02017330(&param0->unk_24, &v0);
Easy3DObject_DrawRotated(&param0->unk_24, &v0);
}
static void ov69_0225D760 (const UnkStruct_ov69_0225D71C * param0, VecFx32 * param1)
@ -1610,8 +1608,8 @@ static void ov69_0225D7A0 (UnkStruct_ov69_0225CA7C * param0, const UnkStruct_ov6
ov69_0225C980(param0, param1, param4);
for (v0 = 0; v0 < 3; v0++) {
sub_020170D8(&param0->unk_B978[v0], param2->unk_1A8, Unk_ov69_0225F028[v0], param4);
sub_02017258(&param0->unk_B810[v0], &param0->unk_B978[v0]);
Easy3DModel_LoadFrom(&param0->unk_B978[v0], param2->unk_1A8, Unk_ov69_0225F028[v0], param4);
Easy3DObject_Init(&param0->unk_B810[v0], &param0->unk_B978[v0]);
}
if (param3.unk_00_0 == 0) {
@ -1626,7 +1624,7 @@ static void ov69_0225D838 (UnkStruct_ov69_0225CA7C * param0)
int v0;
for (v0 = 0; v0 < 3; v0++) {
sub_02017110(&param0->unk_B978[v0]);
Easy3DModel_Release(&param0->unk_B978[v0]);
}
}
@ -1641,18 +1639,18 @@ static void ov69_0225D854 (UnkStruct_ov69_0225CA7C * param0, const UnkStruct_ov6
ov69_0225D770(param1, &v2);
for (v1 = 0; v1 < 3; v1++) {
sub_02017350(&param0->unk_B810[v1], v3.x, v3.y, v3.z);
Easy3DObject_SetPosition(&param0->unk_B810[v1], v3.x, v3.y, v3.z);
if (v1 == 2) {
sub_0201736C(&param0->unk_B810[v1], param0->unk_B804.x, param0->unk_B804.y, param0->unk_B804.z + (FX32_CONST(0.1)));
Easy3DObject_SetScale(&param0->unk_B810[v1], param0->unk_B804.x, param0->unk_B804.y, param0->unk_B804.z + (FX32_CONST(0.1)));
} else {
sub_0201736C(&param0->unk_B810[v1], param0->unk_B804.x, param0->unk_B804.y, param0->unk_B804.z);
Easy3DObject_SetScale(&param0->unk_B810[v1], param0->unk_B804.x, param0->unk_B804.y, param0->unk_B804.z);
}
}
{
MTX_Identity33(&v0);
sub_02017330(&param0->unk_B810[2], &v0);
Easy3DObject_DrawRotated(&param0->unk_B810[2], &v0);
}
{
@ -1660,7 +1658,7 @@ static void ov69_0225D854 (UnkStruct_ov69_0225CA7C * param0, const UnkStruct_ov6
MTX_Concat33(&param0->unk_00.unk_04[v1].unk_04, &v2, &v0);
if (param0->unk_00.unk_04[v1].unk_28 != 3) {
sub_02017330(&param0->unk_B810[param0->unk_00.unk_04[v1].unk_28], &v0);
Easy3DObject_DrawRotated(&param0->unk_B810[param0->unk_00.unk_04[v1].unk_28], &v0);
}
}
}

View File

@ -3,14 +3,12 @@
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017294.h"
#include "overlay063/struct_ov63_0222CC3C.h"
#include "unk_02006E3C.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201CED8.h"
#include "resource_collection.h"
#include "overlay070/ov70_0225C700.h"
@ -41,7 +39,7 @@ void ov70_0225C730 (void ** param0, NARC * param1, u32 param2, u32 param3)
{
v5 = NNS_G3dGetTex(v1);
sub_0201CBCC(v5);
Easy3D_UploadTextureToVRAM(v5);
}
{
@ -64,7 +62,7 @@ void ov70_0225C730 (void ** param0, NARC * param1, u32 param2, u32 param3)
Heap_FreeToHeap(v1);
}
BOOL ov70_0225C7A0 (const UnkStruct_020170F4 * param0, const UnkStruct_02017294 * param1)
BOOL ov70_0225C7A0 (const Easy3DModel * param0, const Easy3DObject * param1)
{
VecFx32 v0;
VecFx32 v1;
@ -74,12 +72,12 @@ BOOL ov70_0225C7A0 (const UnkStruct_020170F4 * param0, const UnkStruct_02017294
u32 v5;
u32 v6;
sub_02017358(param1, &v0.x, &v0.y, &v0.z);
sub_02017374(param1, &v1.x, &v1.y, &v1.z);
Easy3DObject_GetPosition(param1, &v0.x, &v0.y, &v0.z);
Easy3DObject_GetScale(param1, &v1.x, &v1.y, &v1.z);
v4 = sub_02017394(param1, 0);
v5 = sub_02017394(param1, 1);
v6 = sub_02017394(param1, 2);
v4 = Easy3DObject_GetRotation(param1, 0);
v5 = Easy3DObject_GetRotation(param1, 1);
v6 = Easy3DObject_GetRotation(param1, 2);
MTX_Identity33(&v2);
MTX_RotX33(&v3, FX_SinIdx(v4), FX_CosIdx(v4));
@ -89,5 +87,5 @@ BOOL ov70_0225C7A0 (const UnkStruct_020170F4 * param0, const UnkStruct_02017294
MTX_RotY33(&v3, FX_SinIdx(v5), FX_CosIdx(v5));
MTX_Concat33(&v3, &v2, &v2);
return sub_0201CED8(param0->unk_08, &v0, &v2, &v1);
return sub_0201CED8(param0->model, &v0, &v2, &v1);
}

View File

@ -3,18 +3,15 @@
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "overlay063/struct_ov63_0222CC3C.h"
#include "overlay070/struct_ov70_02261418.h"
#include "overlay070/funcptr_ov70_02261C60.h"
#include "narc.h"
#include "unk_02006E3C.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201D15C.h"
#include "overlay066/ov66_02231428.h"
#include "overlay070/ov70_0225C700.h"
@ -22,14 +19,14 @@
typedef struct {
BOOL unk_00;
UnkStruct_02017294 unk_04[2];
Easy3DObject unk_04[2];
u32 unk_F4[5];
fx32 unk_108[5];
} UnkStruct_ov70_022615E8;
typedef struct {
UnkStruct_020170F4 unk_00[2];
UnkStruct_02017248 unk_20[5];
Easy3DModel unk_00[2];
Easy3DAnim unk_20[5];
BOOL unk_84[5];
} UnkStruct_ov70_022615A4;
@ -38,7 +35,7 @@ typedef struct UnkStruct_ov70_02260E8C_t {
u8 unk_01;
u8 unk_02;
u8 unk_03;
UnkStruct_02017294 unk_04;
Easy3DObject unk_04;
u32 unk_7C[4];
fx32 unk_8C[4];
VecFx32 unk_9C;
@ -46,16 +43,16 @@ typedef struct UnkStruct_ov70_02260E8C_t {
} UnkStruct_ov70_02260E8C;
typedef struct {
UnkStruct_020170F4 unk_00[2];
Easy3DModel unk_00[2];
void * unk_20[2][3];
UnkStruct_02017248 unk_38[2][4];
Easy3DAnim unk_38[2][4];
} UnkStruct_ov70_022618C8;
typedef struct UnkStruct_ov70_022610B8_t {
u16 unk_00;
u16 unk_02;
UnkStruct_02017294 unk_04;
UnkStruct_02017248 unk_7C[3];
Easy3DObject unk_04;
Easy3DAnim unk_7C[3];
u8 unk_B8[3];
u8 unk_BB;
u8 unk_BC[3];
@ -72,7 +69,7 @@ typedef struct UnkStruct_ov70_022610B8_t {
} UnkStruct_ov70_022610B8;
typedef struct {
UnkStruct_020170F4 unk_00[18];
Easy3DModel unk_00[18];
void * unk_120[18][3];
} UnkStruct_ov70_02261BB4;
@ -93,12 +90,12 @@ typedef struct UnkStruct_ov70_02260BB8_t {
static UnkStruct_ov70_02261418 * ov70_022613F4(int param0, int param1, u32 param2);
static void ov70_02261418(UnkStruct_ov70_02261418 * param0);
static void ov70_02261420(UnkStruct_020170F4 * param0, NARC * param1, u32 param2, u32 param3);
static void ov70_0226146C(UnkStruct_020170F4 * param0);
static void ov70_02261474(fx32 * param0, const UnkStruct_02017248 * param1, fx32 param2);
static BOOL ov70_02261498(fx32 * param0, const UnkStruct_02017248 * param1, fx32 param2);
static void ov70_022614C0(fx32 * param0, const UnkStruct_02017248 * param1, fx32 param2);
static BOOL ov70_022614DC(fx32 * param0, const UnkStruct_02017248 * param1, fx32 param2);
static void ov70_02261420(Easy3DModel * param0, NARC * param1, u32 param2, u32 param3);
static void ov70_0226146C(Easy3DModel * param0);
static void ov70_02261474(fx32 * param0, const Easy3DAnim * param1, fx32 param2);
static BOOL ov70_02261498(fx32 * param0, const Easy3DAnim * param1, fx32 param2);
static void ov70_022614C0(fx32 * param0, const Easy3DAnim * param1, fx32 param2);
static BOOL ov70_022614DC(fx32 * param0, const Easy3DAnim * param1, fx32 param2);
static void ov70_022614F4(UnkStruct_ov70_022615A4 * param0, NARC * param1, const UnkStruct_ov70_02261418 * param2, u32 param3, NNSFndAllocator * param4);
static void ov70_022615A4(UnkStruct_ov70_022615A4 * param0, NNSFndAllocator * param1);
static void ov70_022615E8(UnkStruct_ov70_022615E8 * param0, UnkStruct_ov70_022615A4 * param1);
@ -231,7 +228,7 @@ void ov70_02260DC8 (UnkStruct_ov70_02260BB8 * param0)
if (param0->unk_12C.unk_84[4] == 1) {
if (param0->unk_00.unk_F4[4] == 0) {
param0->unk_00.unk_F4[4] = 1;
sub_0201727C(&param0->unk_00.unk_04[0], &param0->unk_12C.unk_20[4]);
Easy3DObject_AddAnim(&param0->unk_00.unk_04[0], &param0->unk_12C.unk_20[4]);
}
}
}
@ -240,7 +237,7 @@ void ov70_02260DF4 (UnkStruct_ov70_02260BB8 * param0)
{
if (param0->unk_12C.unk_84[4] == 1) {
if (param0->unk_00.unk_F4[4] == 1) {
sub_02017288(&param0->unk_00.unk_04[0], &param0->unk_12C.unk_20[4]);
Easy3DObject_RemoveAnim(&param0->unk_00.unk_04[0], &param0->unk_12C.unk_20[4]);
param0->unk_00.unk_F4[4] = 0;
}
}
@ -255,8 +252,8 @@ UnkStruct_ov70_02260E8C * ov70_02260E20 (UnkStruct_ov70_02260BB8 * param0, int p
v0 = ov70_02261718(param0);
sub_02017258(&v0->unk_04, &param0->unk_1C4.unk_00[param1]);
sub_02017348(&v0->unk_04, 1);
Easy3DObject_Init(&v0->unk_04, &param0->unk_1C4.unk_00[param1]);
Easy3DObject_SetVisibility(&v0->unk_04, 1);
ov70_02260EA0(v0, param3);
{
@ -278,7 +275,7 @@ UnkStruct_ov70_02260E8C * ov70_02260E20 (UnkStruct_ov70_02260BB8 * param0, int p
void ov70_02260E8C (UnkStruct_ov70_02260E8C * param0)
{
sub_02017348(&param0->unk_04, 0);
Easy3DObject_SetVisibility(&param0->unk_04, 0);
param0->unk_00 = 0;
}
@ -286,23 +283,23 @@ void ov70_02260E8C (UnkStruct_ov70_02260E8C * param0)
void ov70_02260EA0 (UnkStruct_ov70_02260E8C * param0, const VecFx32 * param1)
{
param0->unk_9C = *param1;
sub_02017350(&param0->unk_04, param0->unk_9C.x + param0->unk_A8.x, param0->unk_9C.y + param0->unk_A8.y, param0->unk_9C.z + param0->unk_A8.z);
Easy3DObject_SetPosition(&param0->unk_04, param0->unk_9C.x + param0->unk_A8.x, param0->unk_9C.y + param0->unk_A8.y, param0->unk_9C.z + param0->unk_A8.z);
}
void ov70_02260EE4 (UnkStruct_ov70_02260E8C * param0, const VecFx32 * param1)
{
param0->unk_A8 = *param1;
sub_02017350(&param0->unk_04, param0->unk_9C.x + param0->unk_A8.x, param0->unk_9C.y + param0->unk_A8.y, param0->unk_9C.z + param0->unk_A8.z);
Easy3DObject_SetPosition(&param0->unk_04, param0->unk_9C.x + param0->unk_A8.x, param0->unk_9C.y + param0->unk_A8.y, param0->unk_9C.z + param0->unk_A8.z);
}
void ov70_02260F28 (const UnkStruct_ov70_02260E8C * param0, VecFx32 * param1)
{
sub_02017358(&param0->unk_04, &param1->x, &param1->y, &param1->z);
Easy3DObject_GetPosition(&param0->unk_04, &param1->x, &param1->y, &param1->z);
}
void ov70_02260F38 (UnkStruct_ov70_02260E8C * param0, BOOL param1)
{
sub_02017348(&param0->unk_04, param1);
Easy3DObject_SetVisibility(&param0->unk_04, param1);
}
BOOL ov70_02260F44 (UnkStruct_ov70_02260E8C * param0)
@ -327,7 +324,7 @@ BOOL ov70_02260F5C (UnkStruct_ov70_02260E8C * param0)
void ov70_02260F74 (UnkStruct_ov70_02260E8C * param0, u16 param1)
{
sub_02017388(&param0->unk_04, param1, 0);
Easy3DObject_SetRotation(&param0->unk_04, param1, 0);
}
BOOL ov70_02260F80 (const UnkStruct_ov70_02260E8C * param0)
@ -347,15 +344,15 @@ UnkStruct_ov70_022610B8 * ov70_02260F90 (UnkStruct_ov70_02260BB8 * param0, int p
v0 = ov70_02261AF0(param0);
sub_02017258(&v0->unk_04, &param0->unk_29C.unk_00[param1]);
Easy3DObject_Init(&v0->unk_04, &param0->unk_29C.unk_00[param1]);
for (v1 = 0; v1 < 3; v1++) {
if (param0->unk_29C.unk_120[param1][v1] != NULL) {
sub_02017190(&v0->unk_7C[v1], &param0->unk_29C.unk_00[param1], param0->unk_29C.unk_120[param1][v1], &param0->unk_494);
Easy3DAnim_LoadFromData(&v0->unk_7C[v1], &param0->unk_29C.unk_00[param1], param0->unk_29C.unk_120[param1][v1], &param0->unk_494);
}
}
sub_02017348(&v0->unk_04, 1);
Easy3DObject_SetVisibility(&v0->unk_04, 1);
{
UnkStruct_ov63_0222CC3C v2;
@ -381,11 +378,11 @@ void ov70_02261058 (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_022610B8 *
{
int v0;
sub_02017348(&param1->unk_04, 0);
Easy3DObject_SetVisibility(&param1->unk_04, 0);
for (v0 = 0; v0 < 3; v0++) {
if (param0->unk_29C.unk_120[param1->unk_02][v0] != NULL) {
sub_02017190(&param1->unk_7C[v0], &param0->unk_29C.unk_00[param1->unk_02], param0->unk_29C.unk_120[param1->unk_02][v0], &param0->unk_494);
Easy3DAnim_LoadFromData(&param1->unk_7C[v0], &param0->unk_29C.unk_00[param1->unk_02], param0->unk_29C.unk_120[param1->unk_02][v0], &param0->unk_494);
}
}
@ -402,7 +399,7 @@ void ov70_022610BC (UnkStruct_ov70_022610B8 * param0, UnkStruct_ov63_0222CC3C pa
VecFx32 v0;
ov70_0225C700(&param1, &v0);
sub_02017350(&param0->unk_04, v0.x, v0.y, v0.z);
Easy3DObject_SetPosition(&param0->unk_04, v0.x, v0.y, v0.z);
}
UnkStruct_ov63_0222CC3C ov70_022610E4 (const UnkStruct_ov70_022610B8 * param0)
@ -410,7 +407,7 @@ UnkStruct_ov63_0222CC3C ov70_022610E4 (const UnkStruct_ov70_022610B8 * param0)
VecFx32 v0;
UnkStruct_ov63_0222CC3C v1;
sub_02017358(&param0->unk_04, &v0.x, &v0.y, &v0.z);
Easy3DObject_GetPosition(&param0->unk_04, &v0.x, &v0.y, &v0.z);
ov70_0225C714(&v0, &v1);
return v1;
@ -429,7 +426,7 @@ void ov70_0226111C (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_022610B8 *
if ((param0->unk_29C.unk_120[param1->unk_02][param2] != NULL)) {
if (param1->unk_B8[param2] == 0) {
sub_0201727C(&param1->unk_04, &param1->unk_7C[param2]);
Easy3DObject_AddAnim(&param1->unk_04, &param1->unk_7C[param2]);
}
param1->unk_B8[param2] = 1;
@ -445,7 +442,7 @@ void ov70_0226111C (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_022610B8 *
break;
case 3:
case 4:
param1->unk_C0[param2] = sub_0201724C(&param1->unk_7C[param2]);
param1->unk_C0[param2] = Easy3DAnim_GetFrameCount(&param1->unk_7C[param2]);
break;
case 5:
param1->unk_C0[param2] = 0;
@ -457,7 +454,7 @@ void ov70_0226111C (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_022610B8 *
break;
}
sub_02017240(&param1->unk_7C[param2], param1->unk_C0[param2]);
Easy3DAnim_SetFrame(&param1->unk_7C[param2], param1->unk_C0[param2]);
}
}
@ -467,7 +464,7 @@ void ov70_02261220 (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_022610B8 *
GF_ASSERT(param1->unk_02 < 18);
if ((param0->unk_29C.unk_120[param1->unk_02][param2] != NULL) && (param1->unk_B8[param2] == 1)) {
sub_02017288(&param1->unk_04, &param1->unk_7C[param2]);
Easy3DObject_RemoveAnim(&param1->unk_04, &param1->unk_7C[param2]);
param1->unk_B8[param2] = 0;
param1->unk_C0[param2] = 0;
@ -511,7 +508,7 @@ void ov70_022612F0 (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_022610B8 *
}
param1->unk_C0[param2] = param3;
sub_02017240(&param1->unk_7C[param2], param1->unk_C0[param2]);
Easy3DAnim_SetFrame(&param1->unk_7C[param2], param1->unk_C0[param2]);
}
BOOL ov70_02261348 (const UnkStruct_ov70_022610B8 * param0, int param1)
@ -530,13 +527,13 @@ fx32 ov70_02261368 (const UnkStruct_ov70_022610B8 * param0, int param1)
void ov70_0226138C (UnkStruct_ov70_022610B8 * param0, BOOL param1)
{
sub_02017348(&param0->unk_04, param1);
Easy3DObject_SetVisibility(&param0->unk_04, param1);
}
void ov70_02261398 (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_022610B8 * param1, u32 param2)
{
GF_ASSERT(param1->unk_02 < 18);
NNS_G3dMdlSetMdlLightEnableFlagAll(param0->unk_29C.unk_00[param1->unk_02].unk_08, param2);
NNS_G3dMdlSetMdlLightEnableFlagAll(param0->unk_29C.unk_00[param1->unk_02].model, param2);
}
void ov70_022613C0 (UnkStruct_ov70_022610B8 * param0, fx32 param1)
@ -558,7 +555,7 @@ void ov70_022613E0 (UnkStruct_ov70_022610B8 * param0)
void ov70_022613E8 (UnkStruct_ov70_022610B8 * param0, fx32 param1, fx32 param2, fx32 param3)
{
sub_0201736C(&param0->unk_04, param1, param2, param3);
Easy3DObject_SetScale(&param0->unk_04, param1, param2, param3);
}
static UnkStruct_ov70_02261418 * ov70_022613F4 (int param0, int param1, u32 param2)
@ -578,31 +575,31 @@ static void ov70_02261418 (UnkStruct_ov70_02261418 * param0)
Heap_FreeToHeap(param0);
}
static void ov70_02261420 (UnkStruct_020170F4 * param0, NARC * param1, u32 param2, u32 param3)
static void ov70_02261420 (Easy3DModel * param0, NARC * param1, u32 param2, u32 param3)
{
ov70_0225C730(&param0->unk_00, param1, param2, param3);
ov70_0225C730(&param0->data, param1, param2, param3);
{
param0->unk_04 = NNS_G3dGetMdlSet(param0->unk_00);
param0->unk_08 = NNS_G3dGetMdlByIdx(param0->unk_04, 0);
param0->unk_0C = NNS_G3dGetTex(param0->unk_00);
param0->set = NNS_G3dGetMdlSet(param0->data);
param0->model = NNS_G3dGetMdlByIdx(param0->set, 0);
param0->texture = NNS_G3dGetTex(param0->data);
}
{
sub_0201CBB0(param0->unk_00, param0->unk_0C);
Easy3D_BindTextureToResource(param0->data, param0->texture);
}
}
static void ov70_0226146C (UnkStruct_020170F4 * param0)
static void ov70_0226146C (Easy3DModel * param0)
{
sub_02017110(param0);
Easy3DModel_Release(param0);
}
static void ov70_02261474 (fx32 * param0, const UnkStruct_02017248 * param1, fx32 param2)
static void ov70_02261474 (fx32 * param0, const Easy3DAnim * param1, fx32 param2)
{
fx32 v0;
v0 = sub_0201724C(param1);
v0 = Easy3DAnim_GetFrameCount(param1);
if (((*param0) + param2) < v0) {
(*param0) += param2;
@ -611,12 +608,12 @@ static void ov70_02261474 (fx32 * param0, const UnkStruct_02017248 * param1, fx3
}
}
static BOOL ov70_02261498 (fx32 * param0, const UnkStruct_02017248 * param1, fx32 param2)
static BOOL ov70_02261498 (fx32 * param0, const Easy3DAnim * param1, fx32 param2)
{
fx32 v0;
BOOL v1;
v0 = sub_0201724C(param1);
v0 = Easy3DAnim_GetFrameCount(param1);
if (((*param0) + param2) < v0) {
(*param0) += param2;
@ -629,11 +626,11 @@ static BOOL ov70_02261498 (fx32 * param0, const UnkStruct_02017248 * param1, fx3
return v1;
}
static void ov70_022614C0 (fx32 * param0, const UnkStruct_02017248 * param1, fx32 param2)
static void ov70_022614C0 (fx32 * param0, const Easy3DAnim * param1, fx32 param2)
{
fx32 v0;
v0 = sub_0201724C(param1);
v0 = Easy3DAnim_GetFrameCount(param1);
if (((*param0) - param2) >= 0) {
(*param0) -= param2;
@ -642,7 +639,7 @@ static void ov70_022614C0 (fx32 * param0, const UnkStruct_02017248 * param1, fx3
}
}
static BOOL ov70_022614DC (fx32 * param0, const UnkStruct_02017248 * param1, fx32 param2)
static BOOL ov70_022614DC (fx32 * param0, const Easy3DAnim * param1, fx32 param2)
{
BOOL v0;
@ -663,7 +660,7 @@ static void ov70_022614F4 (UnkStruct_ov70_022615A4 * param0, NARC * param1, cons
for (v0 = 0; v0 < 2; v0++) {
ov70_02261420(&param0->unk_00[v0], param1, param2->unk_180[v0], param3);
ov66_02231668(param0->unk_00[v0].unk_00);
ov66_02231668(param0->unk_00[v0].data);
}
for (v0 = 0; v0 < 5; v0++) {
@ -673,9 +670,9 @@ static void ov70_022614F4 (UnkStruct_ov70_022615A4 * param0, NARC * param1, cons
param0->unk_84[v0] = 1;
if (v0 != 3) {
sub_02017164(&param0->unk_20[v0], &param0->unk_00[0], param1, param2->unk_18C[v0], param3, param4);
Easy3DAnim_LoadFrom(&param0->unk_20[v0], &param0->unk_00[0], param1, param2->unk_18C[v0], param3, param4);
} else {
sub_02017164(&param0->unk_20[v0], &param0->unk_00[1], param1, param2->unk_18C[v0], param3, param4);
Easy3DAnim_LoadFrom(&param0->unk_20[v0], &param0->unk_00[1], param1, param2->unk_18C[v0], param3, param4);
}
}
}
@ -687,7 +684,7 @@ static void ov70_022615A4 (UnkStruct_ov70_022615A4 * param0, NNSFndAllocator * p
for (v0 = 0; v0 < 5; v0++) {
if (param0->unk_84[v0]) {
sub_020171A0(&param0->unk_20[v0], param1);
Easy3DAnim_Release(&param0->unk_20[v0], param1);
param0->unk_84[v0] = 0;
}
}
@ -704,8 +701,8 @@ static void ov70_022615E8 (UnkStruct_ov70_022615E8 * param0, UnkStruct_ov70_0226
param0->unk_00 = 1;
for (v0 = 0; v0 < 2; v0++) {
sub_02017258(&param0->unk_04[v0], &param1->unk_00[v0]);
sub_02017348(&param0->unk_04[v0], 1);
Easy3DObject_Init(&param0->unk_04[v0], &param1->unk_00[v0]);
Easy3DObject_SetVisibility(&param0->unk_04[v0], 1);
}
for (v0 = 0; v0 < 5 - 1; v0++) {
@ -713,9 +710,9 @@ static void ov70_022615E8 (UnkStruct_ov70_022615E8 * param0, UnkStruct_ov70_0226
param0->unk_F4[v0] = 1;
if (v0 != 3) {
sub_0201727C(&param0->unk_04[0], &param1->unk_20[v0]);
Easy3DObject_AddAnim(&param0->unk_04[0], &param1->unk_20[v0]);
} else {
sub_0201727C(&param0->unk_04[1], &param1->unk_20[v0]);
Easy3DObject_AddAnim(&param0->unk_04[1], &param1->unk_20[v0]);
}
}
}
@ -730,9 +727,9 @@ static void ov70_02261664 (UnkStruct_ov70_022615E8 * param0, UnkStruct_ov70_0226
param0->unk_F4[v0] = 0;
if (v0 != 3) {
sub_02017288(&param0->unk_04[0], &param1->unk_20[v0]);
Easy3DObject_RemoveAnim(&param0->unk_04[0], &param1->unk_20[v0]);
} else {
sub_02017288(&param0->unk_04[1], &param1->unk_20[v0]);
Easy3DObject_RemoveAnim(&param0->unk_04[1], &param1->unk_20[v0]);
}
}
}
@ -747,7 +744,7 @@ static void ov70_022616B0 (UnkStruct_ov70_022615E8 * param0, UnkStruct_ov70_0226
for (v0 = 0; v0 < 5; v0++) {
if (param0->unk_F4[v0]) {
ov70_02261474(&param0->unk_108[v0], &param1->unk_20[v0], FX32_ONE);
sub_02017240(&param1->unk_20[v0], param0->unk_108[v0]);
Easy3DAnim_SetFrame(&param1->unk_20[v0], param0->unk_108[v0]);
}
}
}
@ -758,7 +755,7 @@ static void ov70_022616FC (UnkStruct_ov70_022615E8 * param0, UnkStruct_ov70_0226
if (param0->unk_00) {
for (v0 = 0; v0 < 2; v0++) {
sub_02017294(&param0->unk_04[v0]);
Easy3DObject_Draw(&param0->unk_04[v0]);
}
}
}
@ -791,10 +788,10 @@ static void ov70_0226174C (UnkStruct_ov70_022618C8 * param0, NARC * param1, NNSF
{
for (v0 = 0; v0 < 2; v0++) {
param0->unk_00[v0].unk_00 = sub_0200723C(param1, param3->unk_120[v0], 0, param4, 0);
param0->unk_00[v0].unk_04 = NNS_G3dGetMdlSet(param0->unk_00[v0].unk_00);
param0->unk_00[v0].unk_08 = NNS_G3dGetMdlByIdx(param0->unk_00[v0].unk_04, 0);
param0->unk_00[v0].unk_0C = NNS_G3dGetTex(param0->unk_20[v0][0]);
param0->unk_00[v0].data = sub_0200723C(param1, param3->unk_120[v0], 0, param4, 0);
param0->unk_00[v0].set = NNS_G3dGetMdlSet(param0->unk_00[v0].data);
param0->unk_00[v0].model = NNS_G3dGetMdlByIdx(param0->unk_00[v0].set, 0);
param0->unk_00[v0].texture = NNS_G3dGetTex(param0->unk_20[v0][0]);
}
}
@ -802,12 +799,12 @@ static void ov70_0226174C (UnkStruct_ov70_022618C8 * param0, NARC * param1, NNSF
for (v0 = 0; v0 < 2; v0++) {
for (v1 = 0; v1 < 4; v1++) {
if (param3->unk_120[0] != param3->unk_140[v0][v1]) {
sub_02017164(&param0->unk_38[v0][v1], &param0->unk_00[v0], param1, param3->unk_140[v0][v1], param4, param2);
Easy3DAnim_LoadFrom(&param0->unk_38[v0][v1], &param0->unk_00[v0], param1, param3->unk_140[v0][v1], param4, param2);
if (v1 >= 1) {
for (v2 = 0; v2 < param3->unk_160[v0]; v2++) {
if (param3->unk_168[v0][v1 - 1] != v2) {
NNS_G3dAnmObjDisableID(param0->unk_38[v0][v1].unk_08, v2);
NNS_G3dAnmObjDisableID(param0->unk_38[v0][v1].animObj, v2);
}
}
}
@ -824,14 +821,14 @@ static void ov70_022618C8 (UnkStruct_ov70_022618C8 * param0, NNSFndAllocator * p
{
for (v0 = 0; v0 < 2; v0++) {
for (v1 = 0; v1 < 4; v1++) {
sub_020171A0(&param0->unk_38[v0][v1], param1);
Easy3DAnim_Release(&param0->unk_38[v0][v1], param1);
}
}
}
{
for (v0 = 0; v0 < 2; v0++) {
Heap_FreeToHeap(param0->unk_00[v0].unk_00);
Heap_FreeToHeap(param0->unk_00[v0].data);
}
}
@ -910,27 +907,27 @@ static void ov70_022619F4 (UnkStruct_ov70_02260E8C * param0, UnkStruct_ov70_0226
GF_ASSERT(param0->unk_01 < 3);
GF_ASSERT(param0->unk_02 < 2);
param1->unk_00[param0->unk_02].unk_0C = NNS_G3dGetTex(param1->unk_20[param0->unk_02][param0->unk_01]);
v0 = NNS_G3dBindMdlSet(param1->unk_00[param0->unk_02].unk_04, param1->unk_00[param0->unk_02].unk_0C);
param1->unk_00[param0->unk_02].texture = NNS_G3dGetTex(param1->unk_20[param0->unk_02][param0->unk_01]);
v0 = NNS_G3dBindMdlSet(param1->unk_00[param0->unk_02].set, param1->unk_00[param0->unk_02].texture);
GF_ASSERT(v0);
for (v1 = 0; v1 < 4; v1++) {
if (param0->unk_7C[v1]) {
sub_0201727C(&param0->unk_04, &param1->unk_38[param0->unk_02][v1]);
sub_02017240(&param1->unk_38[param0->unk_02][v1], param0->unk_8C[v1]);
Easy3DObject_AddAnim(&param0->unk_04, &param1->unk_38[param0->unk_02][v1]);
Easy3DAnim_SetFrame(&param1->unk_38[param0->unk_02][v1], param0->unk_8C[v1]);
}
}
sub_02017294(&param0->unk_04);
Easy3DObject_Draw(&param0->unk_04);
for (v1 = 0; v1 < 4; v1++) {
if (param0->unk_7C[v1]) {
sub_02017288(&param0->unk_04, &param1->unk_38[param0->unk_02][v1]);
Easy3DObject_RemoveAnim(&param0->unk_04, &param1->unk_38[param0->unk_02][v1]);
}
}
NNS_G3dReleaseMdlSet(param1->unk_00[param0->unk_02].unk_04);
NNS_G3dReleaseMdlSet(param1->unk_00[param0->unk_02].set);
}
static UnkStruct_ov70_022610B8 * ov70_02261AF0 (UnkStruct_ov70_02260BB8 * param0)
@ -955,7 +952,7 @@ static void ov70_02261B24 (UnkStruct_ov70_02261BB4 * param0, NARC * param1, NNSF
ov70_02261420(&param0->unk_00[v0], param1, param3->unk_00[v0], param4);
if ((v0 != 11) && (v0 != 12)) {
ov66_02231668(param0->unk_00[v0].unk_00);
ov66_02231668(param0->unk_00[v0].data);
}
for (v1 = 0; v1 < 3; v1++) {
@ -997,13 +994,13 @@ static void ov70_02261C04 (UnkStruct_ov70_02261BB4 * param0, UnkStruct_ov70_0226
}
if (param1->unk_E0 == 1) {
NNS_G3dMdlSetMdlAlphaAll(param0->unk_00[param1->unk_02].unk_08, param1->unk_E1);
NNS_G3dMdlSetMdlAlphaAll(param0->unk_00[param1->unk_02].model, param1->unk_E1);
}
sub_02017294(&param1->unk_04);
Easy3DObject_Draw(&param1->unk_04);
if (param1->unk_E0 == 1) {
NNS_G3dMdlSetMdlAlphaAll(param0->unk_00[param1->unk_02].unk_08, param1->unk_E2);
NNS_G3dMdlSetMdlAlphaAll(param0->unk_00[param1->unk_02].model, param1->unk_E2);
}
}
@ -1018,11 +1015,11 @@ static void ov70_02261C60 (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_0226
switch (param1->unk_BC[v0]) {
case 0:
ov70_02261474(&param1->unk_C0[v0], &param1->unk_7C[v0], param1->unk_DC);
sub_02017240(&param1->unk_7C[v0], param1->unk_C0[v0]);
Easy3DAnim_SetFrame(&param1->unk_7C[v0], param1->unk_C0[v0]);
break;
case 1:
v1 = ov70_02261498(&param1->unk_C0[v0], &param1->unk_7C[v0], param1->unk_DC);
sub_02017240(&param1->unk_7C[v0], param1->unk_C0[v0]);
Easy3DAnim_SetFrame(&param1->unk_7C[v0], param1->unk_C0[v0]);
if (v1 == 1) {
v2 = param1->unk_D0[v0];
@ -1036,11 +1033,11 @@ static void ov70_02261C60 (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_0226
break;
case 3:
ov70_022614C0(&param1->unk_C0[v0], &param1->unk_7C[v0], param1->unk_DC);
sub_02017240(&param1->unk_7C[v0], param1->unk_C0[v0]);
Easy3DAnim_SetFrame(&param1->unk_7C[v0], param1->unk_C0[v0]);
break;
case 4:
v1 = ov70_022614DC(&param1->unk_C0[v0], &param1->unk_7C[v0], param1->unk_DC);
sub_02017240(&param1->unk_7C[v0], param1->unk_C0[v0]);
Easy3DAnim_SetFrame(&param1->unk_7C[v0], param1->unk_C0[v0]);
if (v1 == 1) {
v2 = param1->unk_D0[v0];
@ -1063,7 +1060,7 @@ static void ov70_02261C60 (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_0226
param1->unk_C0[v0] = 0;
}
sub_02017240(&param1->unk_7C[v0], param1->unk_C0[v0]);
Easy3DAnim_SetFrame(&param1->unk_7C[v0], param1->unk_C0[v0]);
}
break;
case 6:
@ -1071,7 +1068,7 @@ static void ov70_02261C60 (UnkStruct_ov70_02260BB8 * param0, UnkStruct_ov70_0226
param1->unk_CD[v0]--;
} else {
ov70_02261474(&param1->unk_C0[v0], &param1->unk_7C[v0], param1->unk_DC);
sub_02017240(&param1->unk_7C[v0], param1->unk_C0[v0]);
Easy3DAnim_SetFrame(&param1->unk_7C[v0], param1->unk_C0[v0]);
}
break;
case 2:

View File

@ -10,15 +10,12 @@
#include "overlay070/struct_ov70_0225CC54_decl.h"
#include "overlay070/struct_ov70_02260AD4_decl.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "overlay063/struct_ov63_0222CC3C.h"
#include "unk_02005474.h"
#include "narc.h"
#include "unk_02006E3C.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "overlay070/ov70_0225C700.h"
#include "overlay070/ov70_0225C858.h"
@ -71,7 +68,7 @@ typedef struct {
u8 unk_07;
UnkStruct_ov70_022692B4 unk_08[4];
UnkStruct_ov70_0226949C unk_A8[4];
UnkStruct_02017294 * unk_D8[4];
Easy3DObject * unk_D8[4];
const UnkStruct_ov70_0225CC54 * unk_E8;
} UnkStruct_ov70_0226BD64;
@ -133,7 +130,7 @@ typedef struct {
s16 unk_02;
u32 unk_04;
UnkStruct_ov70_0225CC54 * unk_08;
UnkStruct_02017294 unk_0C[18];
Easy3DObject unk_0C[18];
const UnkStruct_ov70_0226E5A4 * unk_87C[18];
fx32 unk_8C4[18][2];
UnkStruct_ov70_0226BC40 unk_954;
@ -145,9 +142,9 @@ typedef struct UnkStruct_ov70_02269204_t {
UnkStruct_ov70_02260AD4 * unk_08;
UnkStruct_ov70_0225C894 * unk_0C;
UnkStruct_ov70_02269800 unk_10[20];
UnkStruct_020170F4 unk_10550[15];
Easy3DModel unk_10550[15];
void * unk_10640[39];
UnkStruct_02017248 unk_106DC[16];
Easy3DAnim unk_106DC[16];
NNSFndAllocator unk_1081C;
} UnkStruct_ov70_02269204;
@ -240,7 +237,7 @@ static void ov70_0226BBA8(UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269
static void ov70_0226BBDC(UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269800 * param1);
static void ov70_0226BC40(UnkStruct_ov70_0226BC40 * param0, const UnkStruct_ov70_0226E2EC * param1, u32 param2, u32 param3, u32 param4, UnkStruct_ov70_02269800 * param5);
static int ov70_0226BCC0(UnkStruct_ov70_0226BC40 * param0, u32 param1);
static void ov70_0226BD64(UnkStruct_ov70_0226BD64 * param0, UnkStruct_02017294 * param1, UnkStruct_02017294 * param2, UnkStruct_02017294 * param3, UnkStruct_02017294 * param4, const UnkStruct_ov70_0225CC54 * param5, u32 param6);
static void ov70_0226BD64(UnkStruct_ov70_0226BD64 * param0, Easy3DObject * param1, Easy3DObject * param2, Easy3DObject * param3, Easy3DObject * param4, const UnkStruct_ov70_0225CC54 * param5, u32 param6);
static void ov70_0226BDA0(UnkStruct_ov70_0226BD64 * param0, u32 param1);
static BOOL ov70_0226BDE8(UnkStruct_ov70_0226BD64 * param0);
static void ov70_0226BE3C(UnkStruct_ov70_0226BD64 * param0, const UnkStruct_ov70_0225CC54 * param1);
@ -800,12 +797,12 @@ static void ov70_02269540 (UnkStruct_ov70_02269204 * param0, NARC * param1, u32
int v0;
for (v0 = 0; v0 < 15; v0++) {
param0->unk_10550[v0].unk_00 = sub_0200723C(param1, 129 + v0, 0, param2, 0);
param0->unk_10550[v0].unk_04 = NNS_G3dGetMdlSet(param0->unk_10550[v0].unk_00);
param0->unk_10550[v0].unk_08 = NNS_G3dGetMdlByIdx(param0->unk_10550[v0].unk_04, 0);
param0->unk_10550[v0].unk_0C = NULL;
param0->unk_10550[v0].data = sub_0200723C(param1, 129 + v0, 0, param2, 0);
param0->unk_10550[v0].set = NNS_G3dGetMdlSet(param0->unk_10550[v0].data);
param0->unk_10550[v0].model = NNS_G3dGetMdlByIdx(param0->unk_10550[v0].set, 0);
param0->unk_10550[v0].texture = NULL;
NNS_G3dMdlSetMdlEmiAll(param0->unk_10550[v0].unk_08, GX_RGB(31, 31, 31));
NNS_G3dMdlSetMdlEmiAll(param0->unk_10550[v0].model, GX_RGB(31, 31, 31));
}
}
@ -814,7 +811,7 @@ static void ov70_022695C4 (UnkStruct_ov70_02269204 * param0)
int v0;
for (v0 = 0; v0 < 15; v0++) {
Heap_FreeToHeap(param0->unk_10550[v0].unk_00);
Heap_FreeToHeap(param0->unk_10550[v0].data);
}
}
@ -855,9 +852,9 @@ static void ov70_0226965C (UnkStruct_ov70_02269204 * param0, NARC * param1, u32
for (v0 = 0; v0 < 39; v0++) {
for (v1 = 0; v1 < 2; v1++) {
if (Unk_ov70_0226E5A4[v0].unk_02[v1] != 17) {
if (param0->unk_106DC[Unk_ov70_0226E5A4[v0].unk_02[v1]].unk_00 == NULL) {
param0->unk_10550[Unk_ov70_0226E5A4[v0].unk_00].unk_0C = NNS_G3dGetTex(param0->unk_10640[Unk_ov70_0226E5A4[v0].unk_01]);
sub_02017164(&param0->unk_106DC[Unk_ov70_0226E5A4[v0].unk_02[v1]], &param0->unk_10550[Unk_ov70_0226E5A4[v0].unk_00], param1, 183 + Unk_ov70_0226E5A4[v0].unk_02[v1], param2, &param0->unk_1081C);
if (param0->unk_106DC[Unk_ov70_0226E5A4[v0].unk_02[v1]].data == NULL) {
param0->unk_10550[Unk_ov70_0226E5A4[v0].unk_00].texture = NNS_G3dGetTex(param0->unk_10640[Unk_ov70_0226E5A4[v0].unk_01]);
Easy3DAnim_LoadFrom(&param0->unk_106DC[Unk_ov70_0226E5A4[v0].unk_02[v1]], &param0->unk_10550[Unk_ov70_0226E5A4[v0].unk_00], param1, 183 + Unk_ov70_0226E5A4[v0].unk_02[v1], param2, &param0->unk_1081C);
}
}
}
@ -869,9 +866,9 @@ static void ov70_02269700 (UnkStruct_ov70_02269204 * param0)
int v0;
for (v0 = 0; v0 < 16; v0++) {
if (param0->unk_106DC[v0].unk_00 != NULL) {
sub_020171A0(&param0->unk_106DC[v0], &param0->unk_1081C);
param0->unk_106DC[v0].unk_00 = NULL;
if (param0->unk_106DC[v0].data != NULL) {
Easy3DAnim_Release(&param0->unk_106DC[v0], &param0->unk_1081C);
param0->unk_106DC[v0].data = NULL;
}
}
}
@ -1037,58 +1034,58 @@ static void ov70_02269828 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
param1->unk_87C[param2] = param3;
sub_02017258(&param1->unk_0C[param2], &param0->unk_10550[param3->unk_00]);
Easy3DObject_Init(&param1->unk_0C[param2], &param0->unk_10550[param3->unk_00]);
}
static void ov70_02269878 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269800 * param1, u32 param2)
{
BOOL v0;
void * v1;
UnkStruct_020170F4 * v2;
UnkStruct_02017248 * v3;
Easy3DModel * v2;
Easy3DAnim * v3;
int v4;
GF_ASSERT(param1->unk_87C[param2] != NULL);
if (sub_0201734C(&param1->unk_0C[param2]) == 0) {
if (Easy3DObject_GetVisibility(&param1->unk_0C[param2]) == 0) {
return;
}
v1 = param0->unk_10640[param1->unk_87C[param2]->unk_01];
v2 = &param0->unk_10550[param1->unk_87C[param2]->unk_00];
v2->unk_0C = NNS_G3dGetTex(v1);
v0 = NNS_G3dForceBindMdlTex(v2->unk_08, v2->unk_0C, 0, 0);
v2->texture = NNS_G3dGetTex(v1);
v0 = NNS_G3dForceBindMdlTex(v2->model, v2->texture, 0, 0);
GF_ASSERT(v0);
v0 = NNS_G3dForceBindMdlPltt(v2->unk_08, v2->unk_0C, 0, 0);
v0 = NNS_G3dForceBindMdlPltt(v2->model, v2->texture, 0, 0);
GF_ASSERT(v0);
for (v4 = 0; v4 < 2; v4++) {
if (param1->unk_87C[param2]->unk_02[v4] != 17) {
v3 = &param0->unk_106DC[param1->unk_87C[param2]->unk_02[v4]];
sub_0201727C(&param1->unk_0C[param2], v3);
sub_02017240(v3, param1->unk_8C4[param2][v4]);
Easy3DObject_AddAnim(&param1->unk_0C[param2], v3);
Easy3DAnim_SetFrame(v3, param1->unk_8C4[param2][v4]);
} else {
break;
}
}
NNS_G3dMdlSetMdlPolygonIDAll(v2->unk_08, param1->unk_04);
sub_02017294(&param1->unk_0C[param2]);
NNS_G3dMdlSetMdlPolygonIDAll(v2->model, param1->unk_04);
Easy3DObject_Draw(&param1->unk_0C[param2]);
for (v4 = 0; v4 < 2; v4++) {
if (param1->unk_87C[param2]->unk_02[v4] != 17) {
v3 = &param0->unk_106DC[param1->unk_87C[param2]->unk_02[v4]];
sub_02017288(&param1->unk_0C[param2], v3);
Easy3DObject_RemoveAnim(&param1->unk_0C[param2], v3);
} else {
break;
}
}
NNS_G3dReleaseMdlTex(v2->unk_08);
NNS_G3dReleaseMdlPltt(v2->unk_08);
NNS_G3dReleaseMdlTex(v2->model);
NNS_G3dReleaseMdlPltt(v2->model);
v2->unk_0C = NULL;
v2->texture = NULL;
}
static void ov70_022699BC (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269800 * param1, u32 param2, u32 param3)
@ -1104,10 +1101,10 @@ static BOOL ov70_022699D0 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
static void ov70_022699E4 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269800 * param1, u32 param2, u32 param3, fx32 param4)
{
fx32 v0;
UnkStruct_02017248 * v1;
Easy3DAnim * v1;
v1 = &param0->unk_106DC[param1->unk_87C[param2]->unk_02[param3]];
v0 = sub_0201724C(v1);
v0 = Easy3DAnim_GetFrameCount(v1);
if ((param1->unk_8C4[param2][param3] + param4) < v0) {
param1->unk_8C4[param2][param3] += param4;
@ -1120,10 +1117,10 @@ static BOOL ov70_02269A3C (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
{
fx32 v0;
BOOL v1;
UnkStruct_02017248 * v2;
Easy3DAnim * v2;
v2 = &param0->unk_106DC[param1->unk_87C[param2]->unk_02[param3]];
v0 = sub_0201724C(v2);
v0 = Easy3DAnim_GetFrameCount(v2);
if ((param1->unk_8C4[param2][param3] + param4) < v0) {
param1->unk_8C4[param2][param3] += param4;
@ -1139,10 +1136,10 @@ static BOOL ov70_02269A3C (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
static void ov70_02269A90 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269800 * param1, u32 param2, u32 param3, fx32 param4)
{
fx32 v0;
UnkStruct_02017248 * v1;
Easy3DAnim * v1;
v1 = &param0->unk_106DC[param1->unk_87C[param2]->unk_02[param3]];
v0 = sub_0201724C(v1);
v0 = Easy3DAnim_GetFrameCount(v1);
if (v0 < param4) {
param1->unk_8C4[param2][param3] = v0 - FX32_HALF;
@ -1154,10 +1151,10 @@ static void ov70_02269A90 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
static fx32 ov70_02269AE8 (const UnkStruct_ov70_02269204 * param0, const UnkStruct_ov70_02269800 * param1, u32 param2, u32 param3)
{
fx32 v0;
const UnkStruct_02017248 * v1;
const Easy3DAnim * v1;
v1 = &param0->unk_106DC[param1->unk_87C[param2]->unk_02[param3]];
return sub_02017248(v1);
return Easy3DAnim_GetFrame(v1);
}
static void ov70_02269B10 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269800 * param1)
@ -1203,8 +1200,8 @@ static void ov70_02269B58 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v1.z += (FX32_CONST(0));
v1.y += (FX32_CONST(8)) + (FX_Mul(FX32_ONE * v0, (FX32_CONST(0))));
sub_02017350(&param1->unk_0C[v0], v1.x, v1.y, v1.z);
sub_02017348(&param1->unk_0C[v0], 0);
Easy3DObject_SetPosition(&param1->unk_0C[v0], v1.x, v1.y, v1.z);
Easy3DObject_SetVisibility(&param1->unk_0C[v0], 0);
}
param1->unk_954.val5.unk_00 = 0xff;
@ -1217,7 +1214,7 @@ static void ov70_02269BB8 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
ov70_02269828(param0, param1, 1, &Unk_ov70_0226E5A4[9]);
ov70_02269828(param0, param1, 0, &Unk_ov70_0226E5A4[12]);
sub_02017348(&param1->unk_0C[1], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[1], 0);
ov70_0225D054(param1->unk_08, &v0);
v0.y += (FX32_CONST(16));
@ -1233,31 +1230,31 @@ static void ov70_02269BB8 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
case 0:
v0.z -= (FX32_CONST(28));
v1.z -= (FX32_CONST(14));
sub_02017388(&param1->unk_0C[1], ((270 * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[1], ((270 * 0xffff) / 360), 1);
break;
case 1:
v0.z += (FX32_CONST(24));
v1.z += (FX32_CONST(11));
sub_02017388(&param1->unk_0C[1], ((90 * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[1], ((90 * 0xffff) / 360), 1);
break;
case 2:
v0.x -= (FX32_CONST(23));
v1.x -= (FX32_CONST(7));
v1.z += (FX32_CONST(8));
sub_02017388(&param1->unk_0C[1], ((0 * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[1], ((0 * 0xffff) / 360), 1);
break;
case 3:
v0.x += (FX32_CONST(23));
v1.x += (FX32_CONST(7));
v1.z += (FX32_CONST(8));
sub_02017388(&param1->unk_0C[1], ((180 * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[1], ((180 * 0xffff) / 360), 1);
break;
default:
break;
}
sub_02017350(&param1->unk_0C[1], v0.x, v0.y, v0.z);
sub_02017350(&param1->unk_0C[0], v1.x, v1.y, v1.z);
Easy3DObject_SetPosition(&param1->unk_0C[1], v0.x, v0.y, v0.z);
Easy3DObject_SetPosition(&param1->unk_0C[0], v1.x, v1.y, v1.z);
}
static void ov70_02269CFC (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269800 * param1)
@ -1268,7 +1265,7 @@ static void ov70_02269CFC (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
ov70_02269828(param0, param1, 1, &Unk_ov70_0226E5A4[9]);
ov70_02269828(param0, param1, 0, &Unk_ov70_0226E5A4[12]);
ov70_02269828(param0, param1, 2, &Unk_ov70_0226E5A4[10]);
sub_02017348(&param1->unk_0C[1], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[1], 0);
ov70_0225D054(param1->unk_08, &v0);
v0.y += (FX32_CONST(16));
@ -1285,45 +1282,45 @@ static void ov70_02269CFC (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
case 0:
v0.z -= (FX32_CONST(28));
v1.z -= (FX32_CONST(14));
sub_02017388(&param1->unk_0C[1], (((270 - 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[2], (((270 + 40) * 0xffff) / 360), 1);
sub_02017350(&param1->unk_0C[1], v0.x + (FX32_CONST(8)), v0.y, v0.z);
sub_02017350(&param1->unk_0C[2], v0.x - (FX32_CONST(8)), v0.y, v0.z);
Easy3DObject_SetRotation(&param1->unk_0C[1], (((270 - 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[2], (((270 + 40) * 0xffff) / 360), 1);
Easy3DObject_SetPosition(&param1->unk_0C[1], v0.x + (FX32_CONST(8)), v0.y, v0.z);
Easy3DObject_SetPosition(&param1->unk_0C[2], v0.x - (FX32_CONST(8)), v0.y, v0.z);
break;
case 1:
v0.z += (FX32_CONST(24));
v1.z += (FX32_CONST(11));
sub_02017388(&param1->unk_0C[1], (((90 - 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[2], (((90 + 40) * 0xffff) / 360), 1);
sub_02017350(&param1->unk_0C[1], v0.x - (FX32_CONST(8)), v0.y, v0.z);
sub_02017350(&param1->unk_0C[2], v0.x + (FX32_CONST(8)), v0.y, v0.z);
Easy3DObject_SetRotation(&param1->unk_0C[1], (((90 - 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[2], (((90 + 40) * 0xffff) / 360), 1);
Easy3DObject_SetPosition(&param1->unk_0C[1], v0.x - (FX32_CONST(8)), v0.y, v0.z);
Easy3DObject_SetPosition(&param1->unk_0C[2], v0.x + (FX32_CONST(8)), v0.y, v0.z);
break;
case 2:
v0.x -= (FX32_CONST(23));
v1.x -= (FX32_CONST(7));
v1.z += (FX32_CONST(8));
sub_02017388(&param1->unk_0C[1], (((0 - 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[2], (((0 + 40) * 0xffff) / 360), 1);
sub_02017350(&param1->unk_0C[1], v0.x, v0.y, v0.z - (FX32_CONST(8)));
sub_02017350(&param1->unk_0C[2], v0.x, v0.y, v0.z + (FX32_CONST(8)));
Easy3DObject_SetRotation(&param1->unk_0C[1], (((0 - 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[2], (((0 + 40) * 0xffff) / 360), 1);
Easy3DObject_SetPosition(&param1->unk_0C[1], v0.x, v0.y, v0.z - (FX32_CONST(8)));
Easy3DObject_SetPosition(&param1->unk_0C[2], v0.x, v0.y, v0.z + (FX32_CONST(8)));
break;
case 3:
v0.x += (FX32_CONST(23));
v1.x += (FX32_CONST(7));
v1.z += (FX32_CONST(8));
sub_02017388(&param1->unk_0C[1], (((180 - 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[2], (((180 + 40) * 0xffff) / 360), 1);
sub_02017350(&param1->unk_0C[1], v0.x, v0.y, v0.z + (FX32_CONST(8)));
sub_02017350(&param1->unk_0C[2], v0.x, v0.y, v0.z - (FX32_CONST(8)));
Easy3DObject_SetRotation(&param1->unk_0C[1], (((180 - 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[2], (((180 + 40) * 0xffff) / 360), 1);
Easy3DObject_SetPosition(&param1->unk_0C[1], v0.x, v0.y, v0.z + (FX32_CONST(8)));
Easy3DObject_SetPosition(&param1->unk_0C[2], v0.x, v0.y, v0.z - (FX32_CONST(8)));
break;
default:
break;
}
sub_02017350(&param1->unk_0C[0], v1.x, v1.y, v1.z);
Easy3DObject_SetPosition(&param1->unk_0C[0], v1.x, v1.y, v1.z);
}
static void ov70_02269F30 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269800 * param1)
@ -1336,7 +1333,7 @@ static void ov70_02269F30 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
ov70_02269828(param0, param1, 2, &Unk_ov70_0226E5A4[10]);
ov70_02269828(param0, param1, 3, &Unk_ov70_0226E5A4[11]);
sub_02017348(&param1->unk_0C[1], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[1], 0);
param1->unk_954.val2.unk_04[0] = 8;
param1->unk_954.val2.unk_04[1] = 8;
@ -1355,53 +1352,53 @@ static void ov70_02269F30 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v0.z -= (FX32_CONST(28));
v1.z -= (FX32_CONST(14));
sub_02017388(&param1->unk_0C[1], (((270 - 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[2], (((270 + 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[3], ((270 * 0xffff) / 360), 1);
sub_02017350(&param1->unk_0C[1], v0.x + (FX32_CONST(8)), v0.y, v0.z);
sub_02017350(&param1->unk_0C[2], v0.x - (FX32_CONST(8)), v0.y, v0.z);
sub_02017350(&param1->unk_0C[3], v0.x, v0.y, v0.z);
Easy3DObject_SetRotation(&param1->unk_0C[1], (((270 - 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[2], (((270 + 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[3], ((270 * 0xffff) / 360), 1);
Easy3DObject_SetPosition(&param1->unk_0C[1], v0.x + (FX32_CONST(8)), v0.y, v0.z);
Easy3DObject_SetPosition(&param1->unk_0C[2], v0.x - (FX32_CONST(8)), v0.y, v0.z);
Easy3DObject_SetPosition(&param1->unk_0C[3], v0.x, v0.y, v0.z);
break;
case 1:
v0.z += (FX32_CONST(24));
v1.z += (FX32_CONST(11));
sub_02017388(&param1->unk_0C[1], (((90 - 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[2], (((90 + 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[3], ((90 * 0xffff) / 360), 1);
sub_02017350(&param1->unk_0C[1], v0.x - (FX32_CONST(8)), v0.y, v0.z);
sub_02017350(&param1->unk_0C[2], v0.x + (FX32_CONST(8)), v0.y, v0.z);
sub_02017350(&param1->unk_0C[3], v0.x, v0.y, v0.z);
Easy3DObject_SetRotation(&param1->unk_0C[1], (((90 - 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[2], (((90 + 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[3], ((90 * 0xffff) / 360), 1);
Easy3DObject_SetPosition(&param1->unk_0C[1], v0.x - (FX32_CONST(8)), v0.y, v0.z);
Easy3DObject_SetPosition(&param1->unk_0C[2], v0.x + (FX32_CONST(8)), v0.y, v0.z);
Easy3DObject_SetPosition(&param1->unk_0C[3], v0.x, v0.y, v0.z);
break;
case 2:
v0.x -= (FX32_CONST(23));
v1.x -= (FX32_CONST(7));
v1.z += (FX32_CONST(8));
sub_02017388(&param1->unk_0C[1], (((0 - 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[2], (((0 + 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[3], ((0 * 0xffff) / 360), 1);
sub_02017350(&param1->unk_0C[1], v0.x, v0.y, v0.z - (FX32_CONST(8)));
sub_02017350(&param1->unk_0C[2], v0.x, v0.y, v0.z + (FX32_CONST(8)));
sub_02017350(&param1->unk_0C[3], v0.x, v0.y, v0.z);
Easy3DObject_SetRotation(&param1->unk_0C[1], (((0 - 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[2], (((0 + 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[3], ((0 * 0xffff) / 360), 1);
Easy3DObject_SetPosition(&param1->unk_0C[1], v0.x, v0.y, v0.z - (FX32_CONST(8)));
Easy3DObject_SetPosition(&param1->unk_0C[2], v0.x, v0.y, v0.z + (FX32_CONST(8)));
Easy3DObject_SetPosition(&param1->unk_0C[3], v0.x, v0.y, v0.z);
break;
case 3:
v0.x += (FX32_CONST(23));
v1.x += (FX32_CONST(7));
v1.z += (FX32_CONST(8));
sub_02017388(&param1->unk_0C[1], (((180 - 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[2], (((180 + 40) * 0xffff) / 360), 1);
sub_02017388(&param1->unk_0C[3], ((180 * 0xffff) / 360), 1);
sub_02017350(&param1->unk_0C[1], v0.x, v0.y, v0.z + (FX32_CONST(8)));
sub_02017350(&param1->unk_0C[2], v0.x, v0.y, v0.z - (FX32_CONST(8)));
sub_02017350(&param1->unk_0C[3], v0.x, v0.y, v0.z);
Easy3DObject_SetRotation(&param1->unk_0C[1], (((180 - 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[2], (((180 + 40) * 0xffff) / 360), 1);
Easy3DObject_SetRotation(&param1->unk_0C[3], ((180 * 0xffff) / 360), 1);
Easy3DObject_SetPosition(&param1->unk_0C[1], v0.x, v0.y, v0.z + (FX32_CONST(8)));
Easy3DObject_SetPosition(&param1->unk_0C[2], v0.x, v0.y, v0.z - (FX32_CONST(8)));
Easy3DObject_SetPosition(&param1->unk_0C[3], v0.x, v0.y, v0.z);
break;
default:
break;
}
sub_02017350(&param1->unk_0C[0], v1.x, v1.y, v1.z);
Easy3DObject_SetPosition(&param1->unk_0C[0], v1.x, v1.y, v1.z);
}
static void ov70_0226A1FC (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_02269800 * param1)
@ -1555,7 +1552,7 @@ static BOOL ov70_0226A520 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v3 = v0 % 3;
if (v3 < param1->unk_954.val4.unk_00) {
sub_02017348(&param1->unk_0C[v3], 1);
Easy3DObject_SetVisibility(&param1->unk_0C[v3], 1);
}
}
@ -1564,11 +1561,11 @@ static BOOL ov70_0226A520 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v1 = 1;
for (v0 = 0; v0 < param1->unk_954.val4.unk_00; v0++) {
if (sub_0201734C(&param1->unk_0C[v0]) == 1) {
if (Easy3DObject_GetVisibility(&param1->unk_0C[v0]) == 1) {
v1 = ov70_022699D0(param0, param1, v0, 0);
if (v1) {
sub_02017348(&param1->unk_0C[v0], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[v0], 0);
ov70_02269A90(param0, param1, v0, 0, 0);
}
}
@ -1609,10 +1606,10 @@ static BOOL ov70_0226A614 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
if (param1->unk_954.val6.unk_02 > v0) {
if (v0 > 0) {
sub_02017348(&param1->unk_0C[v0 - 1], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[v0 - 1], 0);
}
sub_02017348(&param1->unk_0C[v0], 1);
Easy3DObject_SetVisibility(&param1->unk_0C[v0], 1);
}
}
@ -1623,7 +1620,7 @@ static BOOL ov70_0226A614 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v2 = 0;
for (v1 = 0; v1 < param1->unk_954.val6.unk_02; v1++) {
if (sub_0201734C(&param1->unk_0C[v1])) {
if (Easy3DObject_GetVisibility(&param1->unk_0C[v1])) {
if (v1 == param1->unk_954.val6.unk_02 - 1) {
v2 = ov70_022699D0(param0, param1, v1, 0);
} else {
@ -1645,11 +1642,11 @@ static BOOL ov70_0226A6C8 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
if (param1->unk_954.val2.unk_00 > 0) {
param1->unk_954.val2.unk_00--;
sub_02017348(&param1->unk_0C[0], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[0], 0);
} else {
if (param1->unk_02 < 3) {
if (ov70_02269810(param1, param1->unk_02 + 1) == 1) {
sub_02017348(&param1->unk_0C[0], 1);
Easy3DObject_SetVisibility(&param1->unk_0C[0], 1);
v0 = ov70_022699D0(param0, param1, 0, 0);
if (v0 == 1) {
@ -1659,7 +1656,7 @@ static BOOL ov70_0226A6C8 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
if (param1->unk_02 < 3) {
ov70_02269A90(param0, param1, 0, 0, 0);
} else {
sub_02017348(&param1->unk_0C[0], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[0], 0);
}
}
}
@ -1671,7 +1668,7 @@ static BOOL ov70_0226A6C8 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
for (v2 = 1; v2 <= 3; v2++) {
if (ov70_02269810(param1, v2) == 1) {
if (param1->unk_02 > (v2 - 1)) {
sub_02017348(&param1->unk_0C[v2], 1);
Easy3DObject_SetVisibility(&param1->unk_0C[v2], 1);
v0 = ov70_02269A3C(param0, param1, v2, 0, FX32_CONST(2.50f));
if (v0 == 0) {
@ -1683,12 +1680,12 @@ static BOOL ov70_0226A6C8 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v4 = v2 - 1;
if (param1->unk_954.val2.unk_04[v4] == 0) {
sub_02017348(&param1->unk_0C[v2], 0);
NNS_G3dMdlSetMdlAlphaAll(param0->unk_10550[param1->unk_87C[v2]->unk_00].unk_08, 31);
Easy3DObject_SetVisibility(&param1->unk_0C[v2], 0);
NNS_G3dMdlSetMdlAlphaAll(param0->unk_10550[param1->unk_87C[v2]->unk_00].model, 31);
} else {
param1->unk_954.val2.unk_04[v4]--;
v3 = (param1->unk_954.val2.unk_04[v4] * 20) / 8;
NNS_G3dMdlSetMdlAlphaAll(param0->unk_10550[param1->unk_87C[v2]->unk_00].unk_08, v3);
NNS_G3dMdlSetMdlAlphaAll(param0->unk_10550[param1->unk_87C[v2]->unk_00].model, v3);
v1 = 0;
}
}
@ -1744,18 +1741,18 @@ static BOOL ov70_0226A858 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v1 += param1->unk_954.val3.unk_01 * 4;
for (v2 = param1->unk_954.val3.unk_03; v2 < v1; v2++) {
sub_02017348(&param1->unk_0C[v2], 1);
Easy3DObject_SetVisibility(&param1->unk_0C[v2], 1);
}
param1->unk_954.val3.unk_03 = v1;
}
for (v2 = 0; v2 < param1->unk_954.val3.unk_03; v2++) {
if (sub_0201734C(&param1->unk_0C[v2]) == 1) {
if (Easy3DObject_GetVisibility(&param1->unk_0C[v2]) == 1) {
v0 = ov70_0226B8C4(param0, param1, v2);
if (v0 == 1) {
sub_02017348(&param1->unk_0C[v2], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[v2], 0);
}
}
}
@ -2011,7 +2008,7 @@ static void ov70_0226ADBC (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
param1->unk_954.val1.unk_00 = 0;
for (v2 = 0; v2 < param1->unk_954.val1.unk_01; v2++) {
sub_02017358(&param1->unk_0C[v2], &v0.x, &v0.y, &v0.z);
Easy3DObject_GetPosition(&param1->unk_0C[v2], &v0.x, &v0.y, &v0.z);
v3 = param1->unk_954.val1.unk_0C[v2];
switch (v3) {
@ -2162,13 +2159,13 @@ static BOOL ov70_0226AF7C (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
if (v7 == 0) {
ov70_022694D0(&param1->unk_954.val1.unk_14[v0]);
sub_02017358(&param1->unk_0C[v0], &v8.x, &v8.y, &v8.z);
Easy3DObject_GetPosition(&param1->unk_0C[v0], &v8.x, &v8.y, &v8.z);
ov70_02269488(&param1->unk_954.val1.unk_38[v0], &v8.x, &v8.y, &v8.z);
ov70_02269508(&param1->unk_954.val1.unk_14[v0], &v9);
v8.x += v9;
sub_02017350(&param1->unk_0C[v0], v8.x, v8.y, v8.z);
Easy3DObject_SetPosition(&param1->unk_0C[v0], v8.x, v8.y, v8.z);
} else {
v10 = ov70_0226B714(param0, param1, v0, 4);
@ -2265,17 +2262,17 @@ static void ov70_0226B324 (UnkStruct_ov70_02269800 * param0)
switch (param0->unk_954.val1.unk_01) {
case 1:
sub_02017350(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E328[2].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[2].unk_02), v0.z + (FX32_CONST(1)));
Easy3DObject_SetPosition(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E328[2].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[2].unk_02), v0.z + (FX32_CONST(1)));
break;
case 2:
sub_02017350(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E328[0].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[0].unk_02), v0.z + (FX32_CONST(1)));
sub_02017350(&param0->unk_0C[1], v0.x + FX32_CONST(Unk_ov70_0226E328[1].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[1].unk_02), v0.z + (FX32_CONST(1)));
Easy3DObject_SetPosition(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E328[0].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[0].unk_02), v0.z + (FX32_CONST(1)));
Easy3DObject_SetPosition(&param0->unk_0C[1], v0.x + FX32_CONST(Unk_ov70_0226E328[1].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[1].unk_02), v0.z + (FX32_CONST(1)));
break;
default:
case 3:
sub_02017350(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E328[2].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[2].unk_02), v0.z + (FX32_CONST(1)));
sub_02017350(&param0->unk_0C[1], v0.x + FX32_CONST(Unk_ov70_0226E328[0].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[0].unk_02), v0.z + (FX32_CONST(1)));
sub_02017350(&param0->unk_0C[2], v0.x + FX32_CONST(Unk_ov70_0226E328[1].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[1].unk_02), v0.z + (FX32_CONST(1)));
Easy3DObject_SetPosition(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E328[2].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[2].unk_02), v0.z + (FX32_CONST(1)));
Easy3DObject_SetPosition(&param0->unk_0C[1], v0.x + FX32_CONST(Unk_ov70_0226E328[0].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[0].unk_02), v0.z + (FX32_CONST(1)));
Easy3DObject_SetPosition(&param0->unk_0C[2], v0.x + FX32_CONST(Unk_ov70_0226E328[1].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E328[1].unk_02), v0.z + (FX32_CONST(1)));
break;
}
}
@ -2288,17 +2285,17 @@ static void ov70_0226B51C (UnkStruct_ov70_02269800 * param0)
switch (param0->unk_954.val1.unk_01) {
case 1:
sub_02017350(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E340[2].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[2].unk_02), v0.z + (-FX32_CONST(8)));
Easy3DObject_SetPosition(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E340[2].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[2].unk_02), v0.z + (-FX32_CONST(8)));
break;
case 2:
sub_02017350(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E340[0].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[0].unk_02), v0.z + (-FX32_CONST(8)));
sub_02017350(&param0->unk_0C[1], v0.x + FX32_CONST(Unk_ov70_0226E340[1].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[1].unk_02), v0.z + (-FX32_CONST(8)));
Easy3DObject_SetPosition(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E340[0].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[0].unk_02), v0.z + (-FX32_CONST(8)));
Easy3DObject_SetPosition(&param0->unk_0C[1], v0.x + FX32_CONST(Unk_ov70_0226E340[1].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[1].unk_02), v0.z + (-FX32_CONST(8)));
break;
default:
case 3:
sub_02017350(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E340[2].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[2].unk_02), v0.z + (-FX32_CONST(8)));
sub_02017350(&param0->unk_0C[1], v0.x + FX32_CONST(Unk_ov70_0226E340[0].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[0].unk_02), v0.z + (-FX32_CONST(8)));
sub_02017350(&param0->unk_0C[2], v0.x + FX32_CONST(Unk_ov70_0226E340[1].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[1].unk_02), v0.z + (-FX32_CONST(8)));
Easy3DObject_SetPosition(&param0->unk_0C[0], v0.x + FX32_CONST(Unk_ov70_0226E340[2].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[2].unk_02), v0.z + (-FX32_CONST(8)));
Easy3DObject_SetPosition(&param0->unk_0C[1], v0.x + FX32_CONST(Unk_ov70_0226E340[0].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[0].unk_02), v0.z + (-FX32_CONST(8)));
Easy3DObject_SetPosition(&param0->unk_0C[2], v0.x + FX32_CONST(Unk_ov70_0226E340[1].unk_00), v0.y + FX32_CONST(Unk_ov70_0226E340[1].unk_02), v0.z + (-FX32_CONST(8)));
break;
}
}
@ -2331,7 +2328,7 @@ static void ov70_0226B744 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
if (v1 != 4) {
v0 = (v1 * (FX32_ONE * 2));
} else {
sub_02017348(&param1->unk_0C[param2], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[param2], 0);
}
}
@ -2366,8 +2363,8 @@ static void ov70_0226B7B0 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
ov70_02269828(param0, param1, v5, &Unk_ov70_0226E5A4[v6]);
VEC_Add(&v2, &Unk_ov70_0226E370[v1], &v3);
VEC_Add(&v3, &Unk_ov70_0226E3A0[v1], &v4);
sub_02017350(&param1->unk_0C[v5], v3.x, v3.y, v3.z);
sub_02017348(&param1->unk_0C[v5], 0);
Easy3DObject_SetPosition(&param1->unk_0C[v5], v3.x, v3.y, v3.z);
Easy3DObject_SetVisibility(&param1->unk_0C[v5], 0);
param1->unk_954.val3.unk_04[v5] = 0;
ov70_022692B4(&param1->unk_954.val3.unk_14[v5], v3.x, v4.x, v3.y, v4.y, v3.z, v4.z, 14);
}
@ -2389,7 +2386,7 @@ static BOOL ov70_0226B8C4 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v0 = ov70_022692DC(&param1->unk_954.val3.unk_14[param2], param1->unk_954.val3.unk_04[param2]);
ov70_02269488(&param1->unk_954.val3.unk_14[param2], &v1.x, &v1.y, &v1.z);
sub_02017350(&param1->unk_0C[param2], v1.x, v1.y, v1.z);
Easy3DObject_SetPosition(&param1->unk_0C[param2], v1.x, v1.y, v1.z);
ov70_022699BC(param0, param1, param2, 0);
return v0;
@ -2407,8 +2404,8 @@ static void ov70_0226B92C (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v1.y += (FX32_CONST(8));
v1.z += (FX32_CONST(6));
sub_02017350(&param1->unk_0C[v0], v1.x, v1.y, v1.z);
sub_02017348(&param1->unk_0C[v0], 0);
Easy3DObject_SetPosition(&param1->unk_0C[v0], v1.x, v1.y, v1.z);
Easy3DObject_SetVisibility(&param1->unk_0C[v0], 0);
}
param1->unk_954.val4.unk_00 = param2;
@ -2427,7 +2424,7 @@ static BOOL ov70_0226B998 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
if (v1 > 0) {
v2 = Unk_ov70_0226E514[param2][v1 - 1];
sub_02017348(&param1->unk_0C[v2.unk_00], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[v2.unk_00], 0);
}
v2 = Unk_ov70_0226E514[param2][v1];
@ -2435,9 +2432,9 @@ static BOOL ov70_0226B998 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
if (0 != v2.unk_02) {
ov70_02269A90(param0, param1, v2.unk_00, 0, FX32_CONST(v2.unk_02));
ov70_02269A90(param0, param1, v2.unk_00, 1, FX32_CONST(v2.unk_02));
sub_02017348(&param1->unk_0C[v2.unk_00], 1);
Easy3DObject_SetVisibility(&param1->unk_0C[v2.unk_00], 1);
} else {
sub_02017348(&param1->unk_0C[v2.unk_00], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[v2.unk_00], 0);
}
}
@ -2463,8 +2460,8 @@ static void ov70_0226BAC8 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
v1.y += (FX32_CONST(8));
sub_02017350(&param1->unk_0C[v0], v1.x, v1.y, v1.z);
sub_02017348(&param1->unk_0C[v0], 0);
Easy3DObject_SetPosition(&param1->unk_0C[v0], v1.x, v1.y, v1.z);
Easy3DObject_SetVisibility(&param1->unk_0C[v0], 0);
}
param1->unk_954.val6.unk_00 = 0xff;
@ -2484,7 +2481,7 @@ static void ov70_0226BB34 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
for (v1 = 0; v1 < 2; v1++) {
ov70_02269828(param0, param1, 16 + v1, &Unk_ov70_0226E5A4[37 + v1]);
sub_02017350(&param1->unk_0C[v1 + 16], v0.x + (v1 * (FX32_CONST(24))), v0.y, v0.z);
Easy3DObject_SetPosition(&param1->unk_0C[v1 + 16], v0.x + (v1 * (FX32_CONST(24))), v0.y, v0.z);
}
}
@ -2496,7 +2493,7 @@ static void ov70_0226BBA8 (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
param1->unk_954.val7.unk_3BA = 0;
for (v0 = 0; v0 < 2; v0++) {
sub_02017348(&param1->unk_0C[v0 + 16], 1);
Easy3DObject_SetVisibility(&param1->unk_0C[v0 + 16], 1);
}
}
@ -2518,7 +2515,7 @@ static void ov70_0226BBDC (UnkStruct_ov70_02269204 * param0, UnkStruct_ov70_0226
if (param1->unk_954.val7.unk_3BA < 13) {
ov70_022699BC(param0, param1, v0 + 16, 0);
} else {
sub_02017348(&param1->unk_0C[v0 + 16], 0);
Easy3DObject_SetVisibility(&param1->unk_0C[v0 + 16], 0);
}
}
}
@ -2572,7 +2569,7 @@ static int ov70_0226BCC0 (UnkStruct_ov70_0226BC40 * param0, u32 param1)
return v4;
}
static void ov70_0226BD64 (UnkStruct_ov70_0226BD64 * param0, UnkStruct_02017294 * param1, UnkStruct_02017294 * param2, UnkStruct_02017294 * param3, UnkStruct_02017294 * param4, const UnkStruct_ov70_0225CC54 * param5, u32 param6)
static void ov70_0226BD64 (UnkStruct_ov70_0226BD64 * param0, Easy3DObject * param1, Easy3DObject * param2, Easy3DObject * param3, Easy3DObject * param4, const UnkStruct_ov70_0225CC54 * param5, u32 param6)
{
GF_ASSERT(param6 < 3);
@ -2593,7 +2590,7 @@ static void ov70_0226BDA0 (UnkStruct_ov70_0226BD64 * param0, u32 param1)
};
for (v0 = 0; v0 < param1; v0++) {
sub_02017348(param0->unk_D8[v0], 1);
Easy3DObject_SetVisibility(param0->unk_D8[v0], 1);
}
param0->unk_00 = 0;
@ -2622,7 +2619,7 @@ static BOOL ov70_0226BDE8 (UnkStruct_ov70_0226BD64 * param0)
if (v1 == 1) {
for (v0 = 0; v0 < param0->unk_04; v0++) {
sub_02017348(param0->unk_D8[v0], 0);
Easy3DObject_SetVisibility(param0->unk_D8[v0], 0);
}
param0->unk_06 = 0;
@ -2674,7 +2671,7 @@ static void ov70_0226BE3C (UnkStruct_ov70_0226BD64 * param0, const UnkStruct_ov7
ov70_022692B4(&param0->unk_08[v0], v1.x, v2.x, v1.y, v2.y, v1.z, v2.z, 18);
ov70_0226949C(&param0->unk_A8[v0], v3, (((18 * 0xffff) / 360)), (FX32_CONST(6)));
sub_02017350(param0->unk_D8[v0], v1.x, v1.y, v1.z);
Easy3DObject_SetPosition(param0->unk_D8[v0], v1.x, v1.y, v1.z);
}
}
@ -2695,7 +2692,7 @@ static BOOL ov70_0226BF5C (UnkStruct_ov70_0226BD64 * param0)
v2.x += v3;
sub_02017350(param0->unk_D8[v0], v2.x, v2.y, v2.z);
Easy3DObject_SetPosition(param0->unk_D8[v0], v2.x, v2.y, v2.z);
}
return v1;
@ -2770,7 +2767,7 @@ static BOOL ov70_0226C0D8 (UnkStruct_ov70_0226BD64 * param0)
v2.y += v3;
sub_02017350(param0->unk_D8[v0], v2.x, v2.y, v2.z);
Easy3DObject_SetPosition(param0->unk_D8[v0], v2.x, v2.y, v2.z);
}
if (param0->unk_00 >= (14 + 8)) {
@ -2807,7 +2804,7 @@ static BOOL ov70_0226C1DC (UnkStruct_ov70_0226BD64 * param0)
v1 = ov70_022692DC(&param0->unk_08[v0], param0->unk_00);
ov70_02269488(&param0->unk_08[v0], &v2.x, &v2.y, &v2.z);
sub_02017350(param0->unk_D8[v0], v2.x, v2.y, v2.z);
Easy3DObject_SetPosition(param0->unk_D8[v0], v2.x, v2.y, v2.z);
if (v1 == 1) {
if (param0->unk_07 == 0) {
@ -2858,5 +2855,5 @@ static void ov70_0226C2A4 (UnkStruct_ov70_0226BD64 * param0, u32 param1, const V
}
ov70_022692B4(&param0->unk_08[param1], param2->x, v0.x, param2->y, v0.y, param2->z, v0.z, param7);
sub_02017350(param0->unk_D8[param1], param2->x, param2->y, param2->z);
Easy3DObject_SetPosition(param0->unk_D8[param1], param2->x, param2->y, param2->z);
}

View File

@ -10,9 +10,6 @@
#include "overlay077/const_ov77_021D742C.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_defs/struct_0207C690.h"
#include "struct_defs/struct_02099F80.h"
@ -31,11 +28,11 @@
#include "unk_0200A9DC.h"
#include "message.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201D15C.h"
#include "unk_0201D670.h"
#include "unk_0201E190.h"
@ -66,14 +63,14 @@ typedef struct {
Camera * camera1;
Camera * camera2;
int unk_AC;
UnkStruct_02017294 unk_B0;
UnkStruct_02017248 unk_128;
UnkStruct_02017248 unk_13C;
UnkStruct_020170F4 unk_150;
UnkStruct_02017294 unk_160;
UnkStruct_02017248 unk_1D8;
UnkStruct_02017248 unk_1EC;
UnkStruct_020170F4 unk_200;
Easy3DObject unk_B0;
Easy3DAnim unk_128;
Easy3DAnim unk_13C;
Easy3DModel unk_150;
Easy3DObject unk_160;
Easy3DAnim unk_1D8;
Easy3DAnim unk_1EC;
Easy3DModel unk_200;
u32 unk_210;
int unk_214;
int unk_218;
@ -413,7 +410,7 @@ static void ov77_021D1208 (UnkStruct_ov77_021D1208 * param0, int param1, int par
param0->unk_60 = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_DEMO__TITLE__TITLEDEMO, param2, param3);
param0->unk_64 = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_DEMO__TITLE__TITLEDEMO, 2, param3);
sub_0201CA3C(&param0->unk_04, &param0->unk_58, &param0->unk_5C);
Easy3D_InitRenderObjFromResource(&param0->unk_04, &param0->unk_58, &param0->unk_5C);
v0 = NNS_G3dGetAnmByIdx(param0->unk_60, 0);
v1 = NNS_G3dGetAnmByIdx(param0->unk_64, 0);
@ -450,46 +447,46 @@ static void ov77_021D1300 (UnkStruct_ov77_021D1208 * param0, int param1)
v0 = NARC_ctor(NARC_INDEX_DEMO__TITLE__TITLEDEMO, param1);
{
sub_020170D8(&param0->unk_150, v0, 19, param1);
Easy3DModel_LoadFrom(&param0->unk_150, v0, 19, param1);
NNS_G3dMdlUseMdlAlpha(param0->unk_150.unk_08);
NNS_G3dMdlUseMdlPolygonID(param0->unk_150.unk_08);
NNS_G3dMdlUseMdlAlpha(param0->unk_150.model);
NNS_G3dMdlUseMdlPolygonID(param0->unk_150.model);
sub_02017164(&param0->unk_128, &param0->unk_150, v0, 21, param1, &param0->unk_70);
sub_02017240(&param0->unk_128, 0);
Easy3DAnim_LoadFrom(&param0->unk_128, &param0->unk_150, v0, 21, param1, &param0->unk_70);
Easy3DAnim_SetFrame(&param0->unk_128, 0);
sub_02017164(&param0->unk_13C, &param0->unk_150, v0, 20, param1, &param0->unk_70);
sub_02017240(&param0->unk_13C, 0);
Easy3DAnim_LoadFrom(&param0->unk_13C, &param0->unk_150, v0, 20, param1, &param0->unk_70);
Easy3DAnim_SetFrame(&param0->unk_13C, 0);
sub_02017258(&param0->unk_B0, &param0->unk_150);
Easy3DObject_Init(&param0->unk_B0, &param0->unk_150);
sub_02017350(&param0->unk_B0, 0, 0, 0);
sub_0201736C(&param0->unk_B0, (FX32_ONE), (FX32_ONE), (FX32_ONE));
sub_02017348(&param0->unk_B0, 1);
Easy3DObject_SetPosition(&param0->unk_B0, 0, 0, 0);
Easy3DObject_SetScale(&param0->unk_B0, (FX32_ONE), (FX32_ONE), (FX32_ONE));
Easy3DObject_SetVisibility(&param0->unk_B0, 1);
sub_0201727C(&param0->unk_B0, &param0->unk_128);
sub_0201727C(&param0->unk_B0, &param0->unk_13C);
Easy3DObject_AddAnim(&param0->unk_B0, &param0->unk_128);
Easy3DObject_AddAnim(&param0->unk_B0, &param0->unk_13C);
}
{
sub_020170D8(&param0->unk_200, v0, 16, param1);
NNS_G3dMdlUseMdlAlpha(param0->unk_200.unk_08);
NNS_G3dMdlUseMdlPolygonID(param0->unk_200.unk_08);
Easy3DModel_LoadFrom(&param0->unk_200, v0, 16, param1);
NNS_G3dMdlUseMdlAlpha(param0->unk_200.model);
NNS_G3dMdlUseMdlPolygonID(param0->unk_200.model);
sub_02017164(&param0->unk_1D8, &param0->unk_200, v0, 18, param1, &param0->unk_70);
sub_02017240(&param0->unk_1D8, 0);
Easy3DAnim_LoadFrom(&param0->unk_1D8, &param0->unk_200, v0, 18, param1, &param0->unk_70);
Easy3DAnim_SetFrame(&param0->unk_1D8, 0);
sub_02017164(&param0->unk_1EC, &param0->unk_200, v0, 17, param1, &param0->unk_70);
sub_02017240(&param0->unk_1EC, 0);
Easy3DAnim_LoadFrom(&param0->unk_1EC, &param0->unk_200, v0, 17, param1, &param0->unk_70);
Easy3DAnim_SetFrame(&param0->unk_1EC, 0);
sub_02017258(&param0->unk_160, &param0->unk_200);
Easy3DObject_Init(&param0->unk_160, &param0->unk_200);
sub_02017350(&param0->unk_160, 0, 0, 0);
sub_0201736C(&param0->unk_160, (FX32_ONE), (FX32_ONE), (FX32_ONE));
sub_02017348(&param0->unk_160, 1);
Easy3DObject_SetPosition(&param0->unk_160, 0, 0, 0);
Easy3DObject_SetScale(&param0->unk_160, (FX32_ONE), (FX32_ONE), (FX32_ONE));
Easy3DObject_SetVisibility(&param0->unk_160, 1);
sub_0201727C(&param0->unk_160, &param0->unk_1D8);
sub_0201727C(&param0->unk_160, &param0->unk_1EC);
Easy3DObject_AddAnim(&param0->unk_160, &param0->unk_1D8);
Easy3DObject_AddAnim(&param0->unk_160, &param0->unk_1EC);
}
NARC_dtor(v0);
@ -514,13 +511,13 @@ static void ov77_021D14E4 (UnkStruct_ov77_021D1208 * param0)
static void ov77_021D1514 (UnkStruct_ov77_021D1208 * param0)
{
sub_02017110(&param0->unk_150);
sub_020171A0(&param0->unk_128, &param0->unk_70);
sub_020171A0(&param0->unk_13C, &param0->unk_70);
Easy3DModel_Release(&param0->unk_150);
Easy3DAnim_Release(&param0->unk_128, &param0->unk_70);
Easy3DAnim_Release(&param0->unk_13C, &param0->unk_70);
sub_02017110(&param0->unk_200);
sub_020171A0(&param0->unk_1D8, &param0->unk_70);
sub_020171A0(&param0->unk_1EC, &param0->unk_70);
Easy3DModel_Release(&param0->unk_200);
Easy3DAnim_Release(&param0->unk_1D8, &param0->unk_70);
Easy3DAnim_Release(&param0->unk_1EC, &param0->unk_70);
}
static void ov77_021D1568 (UnkStruct_ov77_021D1568 * param0, UnkStruct_ov77_021D1208 * param1)
@ -569,7 +566,7 @@ static void ov77_021D1568 (UnkStruct_ov77_021D1568 * param0, UnkStruct_ov77_021D
}
} else {
DC_FlushAll();
sub_0201CA74(&param1->unk_04, &param1->unk_80, &v0, &param1->unk_8C);
Easy3D_DrawRenderObj(&param1->unk_04, &param1->unk_80, &v0, &param1->unk_8C);
}
switch (param1->unk_AC) {
@ -604,29 +601,29 @@ static void ov77_021D1568 (UnkStruct_ov77_021D1568 * param0, UnkStruct_ov77_021D
static void ov77_021D1704 (UnkStruct_ov77_021D1208 * param0)
{
if (param0->unk_224 == 1) {
if (sub_02017204(&param0->unk_128, FX32_ONE) == 1) {
if (Easy3DAnim_Update(&param0->unk_128, FX32_ONE) == 1) {
param0->unk_224 = 2;
}
}
if (param0->unk_225 == 1) {
if (sub_02017204(&param0->unk_13C, FX32_ONE) == 1) {
if (Easy3DAnim_Update(&param0->unk_13C, FX32_ONE) == 1) {
param0->unk_225 = 2;
}
}
sub_020171CC(&param0->unk_1D8, FX32_ONE);
sub_020171CC(&param0->unk_1EC, FX32_ONE);
Easy3DAnim_UpdateLooped(&param0->unk_1D8, FX32_ONE);
Easy3DAnim_UpdateLooped(&param0->unk_1EC, FX32_ONE);
NNS_G3dGePushMtx();
{
sub_02017294(&param0->unk_160);
Easy3DObject_Draw(&param0->unk_160);
if ((param0->unk_224 != 2) || (param0->unk_225 != 2)) {
sub_02017294(&param0->unk_B0);
Easy3DObject_Draw(&param0->unk_B0);
} else {
sub_02017348(&param0->unk_B0, 0);
Easy3DObject_SetVisibility(&param0->unk_B0, 0);
}
}

View File

@ -31,7 +31,7 @@
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201D15C.h"
#include "unk_0201DBEC.h"
#include "gx_layers.h"
@ -1677,7 +1677,7 @@ static void ov77_021D3EDC (UnkStruct_ov77_021D37C0 * param0, int param1)
{
BOOL v0;
v0 = sub_0201CBCC(param0->unk_20.unk_04);
v0 = Easy3D_UploadTextureToVRAM(param0->unk_20.unk_04);
GF_ASSERT(v0);
}
@ -1715,7 +1715,7 @@ static void ov77_021D3F24 (UnkStruct_ov77_021D37C0 * param0, int param1, int par
param0->unk_20.unk_0C[v0].unk_54 = NARC_AllocAndReadWholeMember(v1, Unk_ov77_021D779C[param1][v0], 76);
v2 = sub_0201CBB0(param0->unk_20.unk_0C[v0].unk_54, param0->unk_20.unk_04);
v2 = Easy3D_BindTextureToResource(param0->unk_20.unk_0C[v0].unk_54, param0->unk_20.unk_04);
GF_ASSERT(v2);
v3 = NNS_G3dGetMdlSet(param0->unk_20.unk_0C[v0].unk_54);
@ -1827,7 +1827,7 @@ static void ov77_021D4188 (UnkStruct_ov77_021D37C0 * param0)
if (param0->unk_25C == 1) {
for (v0 = 0; v0 < param0->unk_20.unk_21C; v0++) {
DC_FlushAll();
sub_0201CA74(&param0->unk_20.unk_0C[v0].unk_00, &v3, &v1, &v2);
Easy3D_DrawRenderObj(&param0->unk_20.unk_0C[v0].unk_00, &v3, &v1, &v2);
}
}

View File

@ -39,7 +39,7 @@
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201D15C.h"
#include "unk_0201D670.h"
#include "gx_layers.h"
@ -348,7 +348,7 @@ int ov92_021D0D80 (OverlayManager * param0, int * param1)
ov92_021D14F0();
ov92_021D1510();
sub_0201CAF4(v0->unk_00);
Easy3D_Init(v0->unk_00);
v0->unk_B810 = sub_02018340(v0->unk_00);
@ -706,7 +706,7 @@ int ov92_021D1478 (OverlayManager * param0, int * param1)
GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG3, 0);
Camera_Delete(v0->camera);
StringTemplate_Free(v0->unk_B870);
sub_0201CBA0();
Easy3D_Shutdown();
Heap_FreeToHeap(v0->unk_B810);
SetMainCallback(NULL, NULL);
OverlayManager_FreeData(param0);
@ -1229,19 +1229,19 @@ static void ov92_021D1F90 (UnkStruct_ov92_021D1B24 * param0)
static void ov92_021D2150 (UnkStruct_ov92_021D1B24 * param0, NARC * param1)
{
param0->unk_B8CC = NARC_AllocAndReadWholeMember(param1, 0, param0->unk_00);
sub_0201CA3C(&param0->unk_B874, &param0->unk_B8C8, &param0->unk_B8CC);
Easy3D_InitRenderObjFromResource(&param0->unk_B874, &param0->unk_B8C8, &param0->unk_B8CC);
param0->unk_BA88[3] = NARC_AllocAndReadWholeMember(param1, 1, param0->unk_00);
sub_0201CA3C(&param0->unk_B8D0[3], &param0->unk_BA74[3], &param0->unk_BA88[3]);
Easy3D_InitRenderObjFromResource(&param0->unk_B8D0[3], &param0->unk_BA74[3], &param0->unk_BA88[3]);
param0->unk_BA88[4] = NARC_AllocAndReadWholeMember(param1, 2, param0->unk_00);
sub_0201CA3C(&param0->unk_B8D0[4], &param0->unk_BA74[4], &param0->unk_BA88[4]);
Easy3D_InitRenderObjFromResource(&param0->unk_B8D0[4], &param0->unk_BA74[4], &param0->unk_BA88[4]);
param0->unk_BA88[1] = NARC_AllocAndReadWholeMember(param1, 3, param0->unk_00);
sub_0201CA3C(&param0->unk_B8D0[1], &param0->unk_BA74[1], &param0->unk_BA88[1]);
Easy3D_InitRenderObjFromResource(&param0->unk_B8D0[1], &param0->unk_BA74[1], &param0->unk_BA88[1]);
param0->unk_BA88[2] = NARC_AllocAndReadWholeMember(param1, 4, param0->unk_00);
sub_0201CA3C(&param0->unk_B8D0[2], &param0->unk_BA74[2], &param0->unk_BA88[2]);
Easy3D_InitRenderObjFromResource(&param0->unk_B8D0[2], &param0->unk_BA74[2], &param0->unk_BA88[2]);
}
static void ov92_021D2210 (UnkStruct_ov92_021D1B24 * param0)
@ -1483,11 +1483,11 @@ static void ov92_021D26D0 (UnkStruct_ov92_021D1B24 * param0)
{
ov92_021D2370(&v0, &param0->unk_BAB4);
sub_0201CA74(&param0->unk_B874, &param0->unk_BA9C, &v0, &param0->unk_BAA8);
Easy3D_DrawRenderObj(&param0->unk_B874, &param0->unk_BA9C, &v0, &param0->unk_BAA8);
{
MtxFx33 v1 = {FX32_ONE, 0, 0, 0, FX32_ONE, 0, 0, 0, FX32_ONE};
sub_0201CA74(&param0->unk_B8D0[4], &param0->unk_BA9C, &v1, &param0->unk_BAC0);
Easy3D_DrawRenderObj(&param0->unk_B8D0[4], &param0->unk_BA9C, &v1, &param0->unk_BAC0);
}
{
@ -1498,7 +1498,7 @@ static void ov92_021D26D0 (UnkStruct_ov92_021D1B24 * param0)
MTX_Concat33(&param0->unk_0C.unk_04[v3].unk_04, &v0, &v2);
if (param0->unk_0C.unk_04[v3].unk_28 != 0) {
sub_0201CA74(&param0->unk_B8D0[param0->unk_0C.unk_04[v3].unk_28], &param0->unk_BA9C, &v2, &param0->unk_BAC0);
Easy3D_DrawRenderObj(&param0->unk_B8D0[param0->unk_0C.unk_04[v3].unk_28], &param0->unk_BA9C, &v2, &param0->unk_BAC0);
}
}
}

View File

@ -13,7 +13,7 @@
#include "unk_0200F174.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "gx_layers.h"
#include "camera.h"
#include "unk_0202419C.h"
@ -173,7 +173,7 @@ int ov93_021D0E70 (OverlayManager * param0, int * param1)
sub_020241B4();
Camera_ComputeViewMatrix();
sub_0201CA74(&v5->unk_04, &v4, &v2, &v3);
Easy3D_DrawRenderObj(&v5->unk_04, &v4, &v2, &v3);
G3_RequestSwapBuffers(GX_SORTMODE_MANUAL, GX_BUFFERMODE_W);
return 0;
@ -192,7 +192,7 @@ int ov93_021D0F58 (OverlayManager * param0, int * param1)
Heap_FreeToHeap(v1->unk_5C);
Camera_Delete(v1->camera);
OverlayManager_FreeData(param0);
sub_0201CBA0();
Easy3D_Shutdown();
Heap_Destroy(72);
return 1;
@ -209,7 +209,7 @@ static void ov93_021D0FA8 (void)
GXS_SetVisiblePlane(0);
ov93_021D100C();
sub_0201CAF4(72);
Easy3D_Init(72);
G3X_EdgeMarking(1);
G3X_SetEdgeColorTable(Unk_ov93_021D14A8);
@ -246,7 +246,7 @@ static void ov93_021D102C (UnkStruct_ov93_021D102C * param0)
Heap_FndInitAllocatorForExpHeap(&param0->unk_70, 72, 4);
param0->unk_5C = NARC_AllocAndReadWholeMember(v3, Unk_ov93_021D15A0[param0->unk_9C].unk_00, 72);
sub_0201CA3C(&param0->unk_04, &param0->unk_58, &param0->unk_5C);
Easy3D_InitRenderObjFromResource(&param0->unk_04, &param0->unk_58, &param0->unk_5C);
v1 = NNS_G3dGetTex(param0->unk_5C);
NNS_G3dMdlUseGlbDiff(param0->unk_58);

View File

@ -13,7 +13,7 @@
#include "unk_0200F174.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "gx_layers.h"
#include "camera.h"
#include "unk_0202419C.h"
@ -173,7 +173,7 @@ int ov93_021D120C (OverlayManager * param0, int * param1)
sub_020241B4();
Camera_ComputeViewMatrix();
sub_0201CA74(&v5->unk_04, &v4, &v2, &v3);
Easy3D_DrawRenderObj(&v5->unk_04, &v4, &v2, &v3);
G3_RequestSwapBuffers(GX_SORTMODE_MANUAL, GX_BUFFERMODE_W);
return 0;
@ -192,7 +192,7 @@ int ov93_021D12F0 (OverlayManager * param0, int * param1)
Heap_FreeToHeap(v1->unk_5C);
Camera_Delete(v1->camera);
OverlayManager_FreeData(param0);
sub_0201CBA0();
Easy3D_Shutdown();
Heap_Destroy(72);
return 1;
@ -209,7 +209,7 @@ static void ov93_021D133C (void)
GXS_SetVisiblePlane(0);
ov93_021D13A0();
sub_0201CAF4(72);
Easy3D_Init(72);
G3X_EdgeMarking(1);
G3X_SetEdgeColorTable(Unk_ov93_021D1524);
@ -246,7 +246,7 @@ static void ov93_021D13C0 (UnkStruct_ov93_021D13C0 * param0)
Heap_FndInitAllocatorForExpHeap(&param0->unk_6C, 72, 4);
param0->unk_5C = NARC_AllocAndReadWholeMember(v3, Unk_ov93_021D15C8[param0->unk_94].unk_00, 72);
sub_0201CA3C(&param0->unk_04, &param0->unk_58, &param0->unk_5C);
Easy3D_InitRenderObjFromResource(&param0->unk_04, &param0->unk_58, &param0->unk_5C);
v1 = NNS_G3dGetTex(param0->unk_5C);
NNS_G3dMdlUseGlbDiff(param0->unk_58);

View File

@ -11,7 +11,7 @@
#include "narc.h"
#include "unk_02006E3C.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201CED8.h"
#include "camera.h"
#include "overlay095/ov95_022476F0.h"
@ -118,7 +118,7 @@ static void ov95_022477B8 (UnkStruct_ov95_02247958 * param0)
NNS_G3dGlbPolygonAttr(0, 0, 0, 0, param0->unk_88, 0);
}
sub_0201CA74(&param0->unk_04, &param0->unk_68, &v0, &param0->unk_74);
Easy3D_DrawRenderObj(&param0->unk_04, &param0->unk_68, &v0, &param0->unk_74);
}
static void ov95_02247868 (UnkStruct_ov95_02247958 * param0)
@ -151,8 +151,8 @@ UnkStruct_ov95_02247958 * ov95_022478B4 (UnkStruct_ov95_0224773C * param0, int p
v0->unk_5C = NNS_G3dGetMdlByIdx(v0->unk_58, 0);
v0->unk_60 = NNS_G3dGetTex(v0->unk_00);
sub_0201CBCC(v0->unk_60);
sub_0201CBB0(v0->unk_00, v0->unk_60);
Easy3D_UploadTextureToVRAM(v0->unk_60);
Easy3D_BindTextureToResource(v0->unk_00, v0->unk_60);
NNS_G3dRenderObjInit(&v0->unk_04, v0->unk_5C);

View File

@ -28,7 +28,7 @@
#include "unk_0200C6E4.h"
#include "sys_task.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
@ -745,7 +745,7 @@ static void ov99_021D1720 (UnkStruct_ov99_021D2CB0 * param0)
for (v3 = 0; v3 < 2; v3++) {
for (v4 = 0; v4 < 16; v4++) {
sub_02017294(&param0->unk_6C[v3][v4]);
Easy3DObject_Draw(&param0->unk_6C[v3][v4]);
}
}
}

View File

@ -19,7 +19,7 @@
#include "message.h"
#include "unk_0200C6E4.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201D670.h"
@ -547,32 +547,32 @@ static void ov99_021D1FD8 (UnkStruct_ov99_021D2CB0 * param0)
{
int v0;
sub_020170D8(&param0->unk_2C[0], param0->unk_10F8, 80, 75);
Easy3DModel_LoadFrom(&param0->unk_2C[0], param0->unk_10F8, 80, 75);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[0].model);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[0].model);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[0].model);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[0].model);
sub_020170D8(&param0->unk_2C[1], param0->unk_10F8, 81, 75);
Easy3DModel_LoadFrom(&param0->unk_2C[1], param0->unk_10F8, 81, 75);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[1].unk_08);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[1].unk_08);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[1].unk_08);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[1].unk_08);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[1].model);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[1].model);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[1].model);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[1].model);
for (v0 = 0; v0 < 16; v0++) {
sub_02017258(&param0->unk_6C[0][v0], &param0->unk_2C[0]);
sub_02017350(&param0->unk_6C[0][v0], 0, 0, 0);
sub_0201736C(&param0->unk_6C[0][v0], FX32_ONE, FX32_ONE, FX32_ONE);
sub_02017348(&param0->unk_6C[0][v0], 1);
Easy3DObject_Init(&param0->unk_6C[0][v0], &param0->unk_2C[0]);
Easy3DObject_SetPosition(&param0->unk_6C[0][v0], 0, 0, 0);
Easy3DObject_SetScale(&param0->unk_6C[0][v0], FX32_ONE, FX32_ONE, FX32_ONE);
Easy3DObject_SetVisibility(&param0->unk_6C[0][v0], 1);
}
for (v0 = 0; v0 < 16; v0++) {
sub_02017258(&param0->unk_6C[1][v0], &param0->unk_2C[1]);
sub_02017350(&param0->unk_6C[1][v0], 0, 0, 0);
sub_0201736C(&param0->unk_6C[1][v0], FX32_ONE, FX32_ONE, FX32_ONE);
sub_02017348(&param0->unk_6C[1][v0], 1);
Easy3DObject_Init(&param0->unk_6C[1][v0], &param0->unk_2C[1]);
Easy3DObject_SetPosition(&param0->unk_6C[1][v0], 0, 0, 0);
Easy3DObject_SetScale(&param0->unk_6C[1][v0], FX32_ONE, FX32_ONE, FX32_ONE);
Easy3DObject_SetVisibility(&param0->unk_6C[1][v0], 1);
}
param0->unk_1104 = 2;
@ -588,7 +588,7 @@ static void ov99_021D20F8 (UnkStruct_ov99_021D2CB0 * param0)
int v0;
for (v0 = 0; v0 < 4; v0++) {
sub_02017110(&param0->unk_2C[v0]);
Easy3DModel_Release(&param0->unk_2C[v0]);
}
param0->unk_1103 = 0;
@ -763,22 +763,22 @@ static void ov99_021D2410 (UnkStruct_ov99_021D2CB0 * param0)
{
int v0;
sub_020170D8(&param0->unk_2C[0], param0->unk_10F8, 78, 75);
Easy3DModel_LoadFrom(&param0->unk_2C[0], param0->unk_10F8, 78, 75);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[0].model);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[0].model);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[0].model);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[0].model);
for (v0 = 0; v0 < 16; v0++) {
sub_02017258(&param0->unk_6C[0][v0], &param0->unk_2C[0]);
sub_02017350(&param0->unk_6C[0][v0], 0, 0, 0);
sub_0201736C(&param0->unk_6C[0][v0], FX32_ONE, FX32_ONE, FX32_ONE);
sub_02017348(&param0->unk_6C[0][v0], 1);
Easy3DObject_Init(&param0->unk_6C[0][v0], &param0->unk_2C[0]);
Easy3DObject_SetPosition(&param0->unk_6C[0][v0], 0, 0, 0);
Easy3DObject_SetScale(&param0->unk_6C[0][v0], FX32_ONE, FX32_ONE, FX32_ONE);
Easy3DObject_SetVisibility(&param0->unk_6C[0][v0], 1);
}
for (v0 = 0; v0 < 16; v0++) {
sub_02017348(&param0->unk_6C[1][v0], 0);
Easy3DObject_SetVisibility(&param0->unk_6C[1][v0], 0);
}
param0->unk_1104 = 1;
@ -794,7 +794,7 @@ static void ov99_021D24CC (UnkStruct_ov99_021D2CB0 * param0)
int v0;
for (v0 = 0; v0 < 4; v0++) {
sub_02017110(&param0->unk_2C[v0]);
Easy3DModel_Release(&param0->unk_2C[v0]);
}
param0->unk_1103 = 0;
@ -931,43 +931,43 @@ static void ov99_021D28AC (UnkStruct_ov99_021D2CB0 * param0)
{
int v0;
sub_020170D8(&param0->unk_2C[0], param0->unk_10F8, 82, 75);
Easy3DModel_LoadFrom(&param0->unk_2C[0], param0->unk_10F8, 82, 75);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[0].unk_08);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[0].model);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[0].model);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[0].model);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[0].model);
sub_020170D8(&param0->unk_2C[1], param0->unk_10F8, 83, 75);
Easy3DModel_LoadFrom(&param0->unk_2C[1], param0->unk_10F8, 83, 75);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[1].unk_08);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[1].unk_08);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[1].unk_08);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[1].unk_08);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[1].model);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[1].model);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[1].model);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[1].model);
sub_020170D8(&param0->unk_2C[2], param0->unk_10F8, 84, 75);
Easy3DModel_LoadFrom(&param0->unk_2C[2], param0->unk_10F8, 84, 75);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[2].unk_08);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[2].unk_08);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[2].unk_08);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[2].unk_08);
NNS_G3dMdlUseGlbDiff(param0->unk_2C[2].model);
NNS_G3dMdlUseGlbAmb(param0->unk_2C[2].model);
NNS_G3dMdlUseGlbSpec(param0->unk_2C[2].model);
NNS_G3dMdlUseGlbEmi(param0->unk_2C[2].model);
sub_020170D8(&param0->unk_2C[3], param0->unk_10F8, 79, 75);
Easy3DModel_LoadFrom(&param0->unk_2C[3], param0->unk_10F8, 79, 75);
for (v0 = 0; v0 < 16; v0++) {
sub_02017258(&param0->unk_6C[0][v0], &param0->unk_2C[0]);
Easy3DObject_Init(&param0->unk_6C[0][v0], &param0->unk_2C[0]);
sub_02017350(&param0->unk_6C[0][v0], 0, 0, 0);
sub_0201736C(&param0->unk_6C[0][v0], FX32_ONE, FX32_ONE, FX32_ONE);
sub_02017348(&param0->unk_6C[0][v0], 1);
Easy3DObject_SetPosition(&param0->unk_6C[0][v0], 0, 0, 0);
Easy3DObject_SetScale(&param0->unk_6C[0][v0], FX32_ONE, FX32_ONE, FX32_ONE);
Easy3DObject_SetVisibility(&param0->unk_6C[0][v0], 1);
}
for (v0 = 0; v0 < 16; v0++) {
sub_02017258(&param0->unk_6C[1][v0], &param0->unk_2C[2]);
Easy3DObject_Init(&param0->unk_6C[1][v0], &param0->unk_2C[2]);
sub_02017350(&param0->unk_6C[1][v0], 0, 0, 0);
sub_0201736C(&param0->unk_6C[1][v0], FX32_ONE, FX32_ONE, FX32_ONE);
sub_02017348(&param0->unk_6C[1][v0], 1);
Easy3DObject_SetPosition(&param0->unk_6C[1][v0], 0, 0, 0);
Easy3DObject_SetScale(&param0->unk_6C[1][v0], FX32_ONE, FX32_ONE, FX32_ONE);
Easy3DObject_SetVisibility(&param0->unk_6C[1][v0], 1);
}
param0->unk_1104 = 2;
@ -983,7 +983,7 @@ static void ov99_021D2A14 (UnkStruct_ov99_021D2CB0 * param0)
int v0;
for (v0 = 0; v0 < 4; v0++) {
sub_02017110(&param0->unk_2C[v0]);
Easy3DModel_Release(&param0->unk_2C[v0]);
}
param0->unk_1103 = 0;

View File

@ -93,7 +93,7 @@ BOOL ov99_021D340C (UnkStruct_ov99_021D2CB0 * param0, UnkStruct_ov99_021D3A40 *
int v2;
for (v2 = 0; v2 < 16; v2++) {
MI_CpuClear8(&param0->unk_6C[0][v2].unk_00, sizeof(NNSG3dRenderObj));
MI_CpuClear8(&param0->unk_6C[0][v2].renderObj, sizeof(NNSG3dRenderObj));
if (v2 % 8 == 0) {
v1 = 3;
@ -103,7 +103,7 @@ BOOL ov99_021D340C (UnkStruct_ov99_021D2CB0 * param0, UnkStruct_ov99_021D3A40 *
v1 = Unk_ov99_021D4CAC[v2];
}
NNS_G3dRenderObjInit(&param0->unk_6C[0][v2].unk_00, param0->unk_2C[v1].unk_08);
NNS_G3dRenderObjInit(&param0->unk_6C[0][v2].renderObj, param0->unk_2C[v1].model);
}
v0->unk_120 = 16;

View File

@ -10,7 +10,7 @@
#include "unk_02002F38.h"
#include "unk_02006E3C.h"
#include "unk_0200C6E4.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201D15C.h"
@ -100,15 +100,15 @@ void ov99_021D4170 (UnkStruct_ov99_021D2CB0 * param0)
GF_ASSERT(v2->unk_00 <= 16);
for (v0 = 0; v0 < v2->unk_00; v0++) {
sub_02017350(&param0->unk_6C[v1][v0], v2->unk_04 - v2->unk_08 * v0, v2->unk_0C - v2->unk_10 * v0, v2->unk_14 - v2->unk_18 * v0);
sub_0201736C(&param0->unk_6C[v1][v0], FX32_ONE, FX32_ONE, FX32_ONE);
sub_02017348(&param0->unk_6C[v1][v0], 1);
Easy3DObject_SetPosition(&param0->unk_6C[v1][v0], v2->unk_04 - v2->unk_08 * v0, v2->unk_0C - v2->unk_10 * v0, v2->unk_14 - v2->unk_18 * v0);
Easy3DObject_SetScale(&param0->unk_6C[v1][v0], FX32_ONE, FX32_ONE, FX32_ONE);
Easy3DObject_SetVisibility(&param0->unk_6C[v1][v0], 1);
}
for ( ; v0 < 16; v0++) {
sub_02017350(&param0->unk_6C[v1][v0], 0, (-64 * FX32_ONE), (-50 * FX32_ONE));
sub_0201736C(&param0->unk_6C[v1][v0], FX32_ONE, FX32_ONE, FX32_ONE);
sub_02017348(&param0->unk_6C[v1][v0], 0);
Easy3DObject_SetPosition(&param0->unk_6C[v1][v0], 0, (-64 * FX32_ONE), (-50 * FX32_ONE));
Easy3DObject_SetScale(&param0->unk_6C[v1][v0], FX32_ONE, FX32_ONE, FX32_ONE);
Easy3DObject_SetVisibility(&param0->unk_6C[v1][v0], 0);
}
}
}
@ -128,23 +128,23 @@ BOOL ov99_021D425C (UnkStruct_ov99_021D2CB0 * param0, s32 param1)
v2 = v8->unk_18 * v8->unk_00 / v8->unk_02;
for (v7 = 0; v7 < v8->unk_00; v7++) {
sub_02017358(&param0->unk_6C[v6][v7], &v3, &v4, &v5);
Easy3DObject_GetPosition(&param0->unk_6C[v6][v7], &v3, &v4, &v5);
if (v3 + v0 >= v8->unk_04) {
sub_02017350(&param0->unk_6C[v6][v7], v3 + v0 - v8->unk_08 * v8->unk_00, v4 + v1 - v8->unk_10 * v8->unk_00, v5 + v2 - v8->unk_18 * v8->unk_00);
Easy3DObject_SetPosition(&param0->unk_6C[v6][v7], v3 + v0 - v8->unk_08 * v8->unk_00, v4 + v1 - v8->unk_10 * v8->unk_00, v5 + v2 - v8->unk_18 * v8->unk_00);
if ((param1 != -1) && (v6 == 0)) {
MI_CpuClear8(&param0->unk_6C[v6][v7].unk_00, sizeof(NNSG3dRenderObj));
MI_CpuClear8(&param0->unk_6C[v6][v7].renderObj, sizeof(NNSG3dRenderObj));
NNS_G3dRenderObjInit(
&param0->unk_6C[v6][v7].unk_00, param0->unk_2C[param1].unk_08);
&param0->unk_6C[v6][v7].renderObj, param0->unk_2C[param1].model);
}
v9 = 1;
} else {
sub_02017350(&param0->unk_6C[v6][v7], v3 + v0, v4 + v1, v5 + v2);
Easy3DObject_SetPosition(&param0->unk_6C[v6][v7], v3 + v0, v4 + v1, v5 + v2);
}
sub_02017348(&param0->unk_6C[v6][v7], 1);
Easy3DObject_SetVisibility(&param0->unk_6C[v6][v7], 1);
}
}

View File

@ -20,7 +20,7 @@
#include "unk_0200C6E4.h"
#include "sys_task.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_0201D15C.h"
#include "gx_layers.h"
@ -111,7 +111,7 @@ BOOL ov100_021D14A8 (void * param0)
v0->unk_00 = 2;
break;
case 2:
sub_02017348(&v0->unk_1A4.unk_00[v0->unk_08].unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_1A4.unk_00[v0->unk_08].unk_00, 1);
v0->unk_1A4.unk_00[v0->unk_08].unk_160 = 1;
v0->unk_1A4.unk_00[v0->unk_08].unk_16C = 1;
v0->unk_00++;
@ -137,7 +137,7 @@ BOOL ov100_021D14A8 (void * param0)
G2_SetBlendBrightness((GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_OBJ | GX_BLEND_PLANEMASK_BD), v0->unk_7C4->unk_50.unk_03);
} else {
v0->unk_0C.unk_0C[v0->unk_08].unk_3C = 1;
sub_02017348(&v0->unk_1A4.unk_00[v0->unk_08].unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_1A4.unk_00[v0->unk_08].unk_00, 0);
v0->unk_00++;
v0->unk_08++;
@ -266,9 +266,9 @@ static void ov100_021D1808 (UnkStruct_ov100_021D1808 * param0)
ov100_021D4B4C(0, &param0->unk_1A4.unk_00[2], 15, param0->unk_7C4->unk_00, &param0->unk_7C4->unk_1C);
ov100_021D4B4C(1, &param0->unk_1A4.unk_00[2], 16, param0->unk_7C4->unk_00, &param0->unk_7C4->unk_1C);
sub_02017348(&param0->unk_1A4.unk_00[0].unk_00, 1);
sub_02017348(&param0->unk_1A4.unk_00[1].unk_00, 0);
sub_02017348(&param0->unk_1A4.unk_00[2].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_1A4.unk_00[0].unk_00, 1);
Easy3DObject_SetVisibility(&param0->unk_1A4.unk_00[1].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_1A4.unk_00[2].unk_00, 0);
}
static void ov100_021D1A24 (UnkStruct_ov100_021D1808 * param0)

View File

@ -20,7 +20,7 @@
#include "unk_0200C6E4.h"
#include "sys_task.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_0201D15C.h"
#include "unk_0201D670.h"
@ -95,7 +95,7 @@ static void ov100_021D1C98 (UnkStruct_ov100_021D1C98 * param0)
for (v6 = 0; v6 < 4; v6++) {
ov100_021D4AC8(&param0->unk_1A0.unk_16FC[v6], 65, param0->unk_1EBC->unk_00);
sub_0201736C(&param0->unk_1A0.unk_16FC[v6].unk_00, FX32_CONST(1.2), FX32_CONST(1.0), FX32_CONST(1.2));
Easy3DObject_SetScale(&param0->unk_1A0.unk_16FC[v6].unk_00, FX32_CONST(1.2), FX32_CONST(1.0), FX32_CONST(1.2));
}
}
@ -112,7 +112,7 @@ static void ov100_021D1C98 (UnkStruct_ov100_021D1C98 * param0)
ov100_021D4B4C(1, &param0->unk_1A0.unk_18C, 56, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
ov100_021D4AC8(&param0->unk_1A0.unk_624[0], 66, param0->unk_1EBC->unk_00);
sub_02017350(&param0->unk_1A0.unk_624[0].unk_00, FX32_CONST(-50), FX32_CONST(+0), FX32_CONST(-50));
Easy3DObject_SetPosition(&param0->unk_1A0.unk_624[0].unk_00, FX32_CONST(-50), FX32_CONST(+0), FX32_CONST(-50));
ov100_021D4B4C(0, &param0->unk_1A0.unk_624[0], 67, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
param0->unk_1A0.unk_624[0].unk_160 = 1;
@ -120,7 +120,7 @@ static void ov100_021D1C98 (UnkStruct_ov100_021D1C98 * param0)
param0->unk_1A0.unk_624[0].unk_154 = FX32_HALF;
ov100_021D4AC8(&param0->unk_1A0.unk_624[1], 68, param0->unk_1EBC->unk_00);
sub_02017350(&param0->unk_1A0.unk_624[1].unk_00, FX32_CONST(+50), FX32_CONST(+0), FX32_CONST(-50));
Easy3DObject_SetPosition(&param0->unk_1A0.unk_624[1].unk_00, FX32_CONST(+50), FX32_CONST(+0), FX32_CONST(-50));
ov100_021D4B4C(0, &param0->unk_1A0.unk_624[1], 69, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
param0->unk_1A0.unk_624[1].unk_160 = 1;
@ -128,46 +128,46 @@ static void ov100_021D1C98 (UnkStruct_ov100_021D1C98 * param0)
param0->unk_1A0.unk_624[1].unk_154 = FX32_HALF;
ov100_021D4AC8(&param0->unk_1A0.unk_934[0], 26, param0->unk_1EBC->unk_00);
sub_02017350(&param0->unk_1A0.unk_934[0].unk_00, FX32_CONST(0), FX32_CONST(-90), FX32_CONST(0));
sub_02017348(&param0->unk_1A0.unk_934[0].unk_00, 0);
Easy3DObject_SetPosition(&param0->unk_1A0.unk_934[0].unk_00, FX32_CONST(0), FX32_CONST(-90), FX32_CONST(0));
Easy3DObject_SetVisibility(&param0->unk_1A0.unk_934[0].unk_00, 0);
ov100_021D4B4C(0, &param0->unk_1A0.unk_934[0], 25, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
ov100_021D4B4C(1, &param0->unk_1A0.unk_934[0], 27, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
param0->unk_1A0.unk_934[0].unk_168 = 1;
ov100_021D4AC8(&param0->unk_1A0.unk_934[1], 29, param0->unk_1EBC->unk_00);
sub_02017348(&param0->unk_1A0.unk_934[1].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_1A0.unk_934[1].unk_00, 0);
ov100_021D4B4C(0, &param0->unk_1A0.unk_934[1], 28, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
ov100_021D4B4C(1, &param0->unk_1A0.unk_934[1], 30, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
param0->unk_1A0.unk_934[1].unk_168 = 1;
ov100_021D4AC8(&param0->unk_1A0.unk_934[2], 32, param0->unk_1EBC->unk_00);
sub_02017348(&param0->unk_1A0.unk_934[2].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_1A0.unk_934[2].unk_00, 0);
ov100_021D4B4C(0, &param0->unk_1A0.unk_934[2], 31, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
ov100_021D4B4C(1, &param0->unk_1A0.unk_934[2], 33, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
param0->unk_1A0.unk_934[2].unk_168 = 1;
ov100_021D4AC8(&param0->unk_1A0.unk_934[3], 35, param0->unk_1EBC->unk_00);
sub_02017348(&param0->unk_1A0.unk_934[3].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_1A0.unk_934[3].unk_00, 0);
ov100_021D4B4C(0, &param0->unk_1A0.unk_934[3], 34, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
ov100_021D4B4C(1, &param0->unk_1A0.unk_934[3], 36, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
param0->unk_1A0.unk_934[3].unk_168 = 1;
ov100_021D4AC8(&param0->unk_1A0.unk_934[4], 38, param0->unk_1EBC->unk_00);
sub_02017348(&param0->unk_1A0.unk_934[4].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_1A0.unk_934[4].unk_00, 0);
ov100_021D4B4C(0, &param0->unk_1A0.unk_934[4], 37, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
ov100_021D4B4C(1, &param0->unk_1A0.unk_934[4], 39, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
param0->unk_1A0.unk_934[4].unk_168 = 1;
ov100_021D4AC8(&param0->unk_1A0.unk_10DC[0], 41, param0->unk_1EBC->unk_00);
sub_02017348(&param0->unk_1A0.unk_10DC[0].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_1A0.unk_10DC[0].unk_00, 0);
ov100_021D4B4C(0, &param0->unk_1A0.unk_10DC[0], 40, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
ov100_021D4AC8(&param0->unk_1A0.unk_10DC[1], 42, param0->unk_1EBC->unk_00);
sub_02017348(&param0->unk_1A0.unk_10DC[1].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_1A0.unk_10DC[1].unk_00, 0);
if (TrainerInfo_Gender(param0->unk_1EC0->unk_08) != 1) {
ov100_021D4AC8(&param0->unk_1A0.unk_13EC[0], 61, param0->unk_1EBC->unk_00);
@ -177,14 +177,14 @@ static void ov100_021D1C98 (UnkStruct_ov100_021D1C98 * param0)
ov100_021D4B4C(0, &param0->unk_1A0.unk_13EC[0], 64, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
}
sub_02017350(&param0->unk_1A0.unk_13EC[0].unk_00, FX32_CONST(1), FX32_CONST(+0), FX32_CONST(+140));
Easy3DObject_SetPosition(&param0->unk_1A0.unk_13EC[0].unk_00, FX32_CONST(1), FX32_CONST(+0), FX32_CONST(+140));
param0->unk_1A0.unk_13EC[0].unk_164 = 1;
param0->unk_1A0.unk_13EC[0].unk_154 = (FX32_HALF >> 1);
param0->unk_1A0.unk_13EC[0].unk_158 = 2;
ov100_021D4AC8(&param0->unk_1A0.unk_13EC[1], 13, param0->unk_1EBC->unk_00);
sub_02017350(&param0->unk_1A0.unk_13EC[1].unk_00, FX32_CONST(1), FX32_CONST(+0), FX32_CONST(+60));
Easy3DObject_SetPosition(&param0->unk_1A0.unk_13EC[1].unk_00, FX32_CONST(1), FX32_CONST(+0), FX32_CONST(+60));
ov100_021D4B4C(0, &param0->unk_1A0.unk_13EC[1], 14, param0->unk_1EBC->unk_00, &param0->unk_1EBC->unk_1C);
param0->unk_1A0.unk_13EC[1].unk_164 = 1;
@ -453,7 +453,7 @@ BOOL ov100_021D2428 (void * param0)
break;
case 11:
v0->unk_1A0.unk_10DC[0].unk_160 = 1;
sub_02017348(&v0->unk_1A0.unk_10DC[0].unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_10DC[0].unk_00, 1);
Sound_PlayBGM(1214);
sub_02004550(63, 0, 0);
v0->unk_00++;
@ -469,9 +469,9 @@ BOOL ov100_021D2428 (void * param0)
}
if (v0->unk_1A0.unk_10DC[0].unk_160 == 0) {
sub_02017348(&v0->unk_1A0.unk_10DC[0].unk_00, 0);
sub_02017348(&v0->unk_1A0.unk_10DC[1].unk_00, 1);
sub_02017348(&v0->unk_1A0.unk_934[0].unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_10DC[0].unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_10DC[1].unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_934[0].unk_00, 1);
v0->unk_1A0.unk_934[0].unk_160 = 1;
v0->unk_04 = 0;
@ -479,8 +479,8 @@ BOOL ov100_021D2428 (void * param0)
}
break;
case 13:
if (v0->unk_1A0.unk_934[0].unk_00.unk_54.y < FX32_CONST(-50)) {
v0->unk_1A0.unk_934[0].unk_00.unk_54.y += FX32_HALF;
if (v0->unk_1A0.unk_934[0].unk_00.position.y < FX32_CONST(-50)) {
v0->unk_1A0.unk_934[0].unk_00.position.y += FX32_HALF;
} else {
v0->unk_04 = 0;
v0->unk_00++;
@ -488,7 +488,7 @@ BOOL ov100_021D2428 (void * param0)
break;
case 14:
if (v0->unk_1A0.unk_934[0].unk_160 == 0) {
v0->unk_1A0.unk_934[1].unk_00.unk_54.y = v0->unk_1A0.unk_934[0].unk_00.unk_54.y;
v0->unk_1A0.unk_934[1].unk_00.position.y = v0->unk_1A0.unk_934[0].unk_00.position.y;
v0->unk_1A0.unk_934[1].unk_160 = 1;
v0->unk_1A0.unk_934[1].unk_164 = 1;
v0->unk_1A0.unk_314.unk_160 = 1;
@ -496,8 +496,8 @@ BOOL ov100_021D2428 (void * param0)
v0->unk_1A0.unk_18C.unk_160 = 1;
v0->unk_1A0.unk_18C.unk_168 = 1;
sub_02017348(&v0->unk_1A0.unk_934[0].unk_00, 0);
sub_02017348(&v0->unk_1A0.unk_934[1].unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_934[0].unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_934[1].unk_00, 1);
v0->unk_00++;
}
@ -522,21 +522,21 @@ BOOL ov100_021D2428 (void * param0)
}
if (v0->unk_04 < 15 + 25) {
v0->unk_1A0.unk_624[0].unk_00.unk_54.z -= FX32_HALF >> 1;
v0->unk_1A0.unk_624[0].unk_00.position.z -= FX32_HALF >> 1;
} else {
v0->unk_1A0.unk_624[0].unk_00.unk_54.z -= FX32_HALF;
v0->unk_1A0.unk_624[0].unk_00.position.z -= FX32_HALF;
}
if (v0->unk_04 < 40 + 25) {
v0->unk_1A0.unk_624[1].unk_00.unk_54.z -= FX32_HALF >> 1;
v0->unk_1A0.unk_624[1].unk_00.position.z -= FX32_HALF >> 1;
} else {
v0->unk_1A0.unk_624[1].unk_00.unk_54.z -= FX32_HALF;
v0->unk_1A0.unk_624[1].unk_00.position.z -= FX32_HALF;
}
if (v0->unk_1A0.unk_934[1].unk_00.unk_54.y < FX32_CONST(0)) {
v0->unk_1A0.unk_934[1].unk_00.unk_54.y += FX32_HALF;
if (v0->unk_1A0.unk_934[1].unk_00.position.y < FX32_CONST(0)) {
v0->unk_1A0.unk_934[1].unk_00.position.y += FX32_HALF;
} else {
v0->unk_1A0.unk_934[1].unk_00.unk_54.y = FX32_CONST(0);
v0->unk_1A0.unk_934[1].unk_00.position.y = FX32_CONST(0);
v0->unk_04 = 0;
ov100_021D46C8(v0->unk_1EBC, v0->unk_1EC0, 24);
v0->unk_00++;
@ -554,8 +554,8 @@ BOOL ov100_021D2428 (void * param0)
v0->unk_1A0.unk_49C.unk_16C = 1;
v0->unk_1A0.unk_934[2].unk_160 = 1;
sub_02017348(&v0->unk_1A0.unk_934[1].unk_00, 0);
sub_02017348(&v0->unk_1A0.unk_934[2].unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_934[1].unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_934[2].unk_00, 1);
Sound_PlayPokemonCry(2, 487, 0, 127, 111, 0);
v0->unk_04 = 0;
@ -569,9 +569,9 @@ BOOL ov100_021D2428 (void * param0)
v0->unk_1A0.unk_934[3].unk_164 = 1;
v0->unk_1A0.unk_49C.unk_160 = 0;
sub_02017348(&v0->unk_1A0.unk_49C.unk_00, 0);
sub_02017348(&v0->unk_1A0.unk_934[2].unk_00, 0);
sub_02017348(&v0->unk_1A0.unk_934[3].unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_49C.unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_934[2].unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_934[3].unk_00, 1);
v0->unk_00++;
}
@ -589,8 +589,8 @@ BOOL ov100_021D2428 (void * param0)
v0->unk_1A0.unk_934[4].unk_160 = 1;
sub_02017348(&v0->unk_1A0.unk_934[3].unk_00, 0);
sub_02017348(&v0->unk_1A0.unk_934[4].unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_934[3].unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_1A0.unk_934[4].unk_00, 1);
v0->unk_04 = 0;
v0->unk_00++;
break;
@ -663,16 +663,16 @@ BOOL ov100_021D2428 (void * param0)
break;
}
v0->unk_1A0.unk_16FC[0].unk_00.unk_54 = v0->unk_1A0.unk_624[0].unk_00.unk_54;
v0->unk_1A0.unk_16FC[1].unk_00.unk_54 = v0->unk_1A0.unk_624[1].unk_00.unk_54;
v0->unk_1A0.unk_16FC[2].unk_00.unk_54 = v0->unk_1A0.unk_13EC[0].unk_00.unk_54;
v0->unk_1A0.unk_16FC[3].unk_00.unk_54 = v0->unk_1A0.unk_13EC[1].unk_00.unk_54;
v0->unk_1A0.unk_16FC[0].unk_00.unk_54.z -= (FX32_ONE * 2);
v0->unk_1A0.unk_16FC[1].unk_00.unk_54.z -= (FX32_ONE * 2);
v0->unk_1A0.unk_16FC[2].unk_00.unk_54.z -= (FX32_ONE * 2);
v0->unk_1A0.unk_16FC[3].unk_00.unk_54.z -= (FX32_ONE * 2);
v0->unk_1A0.unk_16FC[2].unk_00.unk_54.x -= FX32_ONE;
v0->unk_1A0.unk_16FC[3].unk_00.unk_54.x -= FX32_ONE;
v0->unk_1A0.unk_16FC[0].unk_00.position = v0->unk_1A0.unk_624[0].unk_00.position;
v0->unk_1A0.unk_16FC[1].unk_00.position = v0->unk_1A0.unk_624[1].unk_00.position;
v0->unk_1A0.unk_16FC[2].unk_00.position = v0->unk_1A0.unk_13EC[0].unk_00.position;
v0->unk_1A0.unk_16FC[3].unk_00.position = v0->unk_1A0.unk_13EC[1].unk_00.position;
v0->unk_1A0.unk_16FC[0].unk_00.position.z -= (FX32_ONE * 2);
v0->unk_1A0.unk_16FC[1].unk_00.position.z -= (FX32_ONE * 2);
v0->unk_1A0.unk_16FC[2].unk_00.position.z -= (FX32_ONE * 2);
v0->unk_1A0.unk_16FC[3].unk_00.position.z -= (FX32_ONE * 2);
v0->unk_1A0.unk_16FC[2].unk_00.position.x -= FX32_ONE;
v0->unk_1A0.unk_16FC[3].unk_00.position.x -= FX32_ONE;
ov100_021D2E0C(v0);
ov100_021D4BF0(v0->unk_1EBC);

View File

@ -21,7 +21,7 @@
#include "unk_02006E3C.h"
#include "sys_task.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_0201D670.h"
#include "camera.h"
@ -65,21 +65,21 @@ static void ov100_021D2F64 (UnkStruct_ov100_021D3084 * param0)
ov100_021D4AC8(&param0->unk_0C.unk_934[0], 84, param0->unk_1D28->unk_00);
ov100_021D4B4C(0, &param0->unk_0C.unk_934[0], 82, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
ov100_021D4B4C(1, &param0->unk_0C.unk_934[0], 83, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
sub_02017350(&param0->unk_0C.unk_934[0].unk_00, FX32_CONST(-48), FX32_CONST(-5), FX32_CONST(-70));
Easy3DObject_SetPosition(&param0->unk_0C.unk_934[0].unk_00, FX32_CONST(-48), FX32_CONST(-5), FX32_CONST(-70));
param0->unk_0C.unk_934[0].unk_160 = 0;
ov100_021D4B10(&param0->unk_0C.unk_934[0], &param0->unk_0C.unk_934[1], 84, param0->unk_1D28->unk_00);
ov100_021D4BA0(0, &param0->unk_0C.unk_934[0], &param0->unk_0C.unk_934[1], 82, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
ov100_021D4BA0(1, &param0->unk_0C.unk_934[0], &param0->unk_0C.unk_934[1], 83, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
sub_02017350(&param0->unk_0C.unk_934[1].unk_00, FX32_CONST(+48), FX32_CONST(-5), FX32_CONST(-70));
Easy3DObject_SetPosition(&param0->unk_0C.unk_934[1].unk_00, FX32_CONST(+48), FX32_CONST(-5), FX32_CONST(-70));
param0->unk_0C.unk_934[1].unk_160 = 0;
param0->unk_0C.unk_934[0].unk_150 = FX32_CONST(0.1);
param0->unk_0C.unk_934[1].unk_150 = FX32_CONST(0.1);
sub_0201736C(&param0->unk_0C.unk_934[0].unk_00, param0->unk_0C.unk_934[0].unk_150, FX32_CONST(1.0), param0->unk_0C.unk_934[0].unk_150);
sub_0201736C(&param0->unk_0C.unk_934[1].unk_00, param0->unk_0C.unk_934[1].unk_150, FX32_CONST(1.0), param0->unk_0C.unk_934[1].unk_150);
Easy3DObject_SetScale(&param0->unk_0C.unk_934[0].unk_00, param0->unk_0C.unk_934[0].unk_150, FX32_CONST(1.0), param0->unk_0C.unk_934[0].unk_150);
Easy3DObject_SetScale(&param0->unk_0C.unk_934[1].unk_00, param0->unk_0C.unk_934[1].unk_150, FX32_CONST(1.0), param0->unk_0C.unk_934[1].unk_150);
}
static void ov100_021D3084 (UnkStruct_ov100_021D3084 * param0)
@ -100,7 +100,7 @@ static void ov100_021D3084 (UnkStruct_ov100_021D3084 * param0)
ov100_021D4B4C(1, &param0->unk_0C.unk_10DC[0], 78, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
ov100_021D4B4C(2, &param0->unk_0C.unk_10DC[0], 80, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
ov100_021D4B4C(3, &param0->unk_0C.unk_10DC[0], 81, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
sub_02017350(&param0->unk_0C.unk_10DC[0].unk_00, FX32_CONST(-48), FX32_CONST(-10), FX32_CONST(-70));
Easy3DObject_SetPosition(&param0->unk_0C.unk_10DC[0].unk_00, FX32_CONST(-48), FX32_CONST(-10), FX32_CONST(-70));
param0->unk_0C.unk_10DC[0].unk_160 = 0;
param0->unk_0C.unk_10DC[0].unk_170 = 0;
@ -110,7 +110,7 @@ static void ov100_021D3084 (UnkStruct_ov100_021D3084 * param0)
ov100_021D4B4C(1, &param0->unk_0C.unk_10DC[1], 78, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
ov100_021D4B4C(2, &param0->unk_0C.unk_10DC[1], 80, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
ov100_021D4B4C(3, &param0->unk_0C.unk_10DC[1], 81, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
sub_02017350(&param0->unk_0C.unk_10DC[1].unk_00, FX32_CONST(+48), FX32_CONST(-10), FX32_CONST(-70));
Easy3DObject_SetPosition(&param0->unk_0C.unk_10DC[1].unk_00, FX32_CONST(+48), FX32_CONST(-10), FX32_CONST(-70));
param0->unk_0C.unk_10DC[1].unk_160 = 0;
param0->unk_0C.unk_10DC[1].unk_170 = 0;
@ -121,31 +121,31 @@ static void ov100_021D3084 (UnkStruct_ov100_021D3084 * param0)
for (v5 = 0; v5 < 4; v5++) {
ov100_021D4AC8(&param0->unk_0C.unk_16FC[v5], 65, param0->unk_1D28->unk_00);
sub_0201736C(&param0->unk_0C.unk_16FC[v5].unk_00, FX32_CONST(1.2), FX32_CONST(1.0), FX32_CONST(1.2));
Easy3DObject_SetScale(&param0->unk_0C.unk_16FC[v5].unk_00, FX32_CONST(1.2), FX32_CONST(1.0), FX32_CONST(1.2));
}
}
ov100_021D4AC8(&param0->unk_0C.unk_624[0], 66, param0->unk_1D28->unk_00);
sub_02017350(&param0->unk_0C.unk_624[0].unk_00, FX32_CONST(-50), FX32_CONST(+0), FX32_CONST(-50));
Easy3DObject_SetPosition(&param0->unk_0C.unk_624[0].unk_00, FX32_CONST(-50), FX32_CONST(+0), FX32_CONST(-50));
ov100_021D4B4C(0, &param0->unk_0C.unk_624[0], 67, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
param0->unk_0C.unk_624[0].unk_160 = 1;
param0->unk_0C.unk_624[0].unk_164 = 1;
param0->unk_0C.unk_624[0].unk_154 = FX32_HALF;
sub_02017348(&param0->unk_0C.unk_624[0].unk_00, 0);
sub_02017348(&param0->unk_0C.unk_16FC[0].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_0C.unk_624[0].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_0C.unk_16FC[0].unk_00, 0);
ov100_021D4AC8(&param0->unk_0C.unk_624[1], 68, param0->unk_1D28->unk_00);
sub_02017350(&param0->unk_0C.unk_624[1].unk_00, FX32_CONST(+50), FX32_CONST(+0), FX32_CONST(-50));
Easy3DObject_SetPosition(&param0->unk_0C.unk_624[1].unk_00, FX32_CONST(+50), FX32_CONST(+0), FX32_CONST(-50));
ov100_021D4B4C(0, &param0->unk_0C.unk_624[1], 69, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
param0->unk_0C.unk_624[1].unk_160 = 1;
param0->unk_0C.unk_624[1].unk_164 = 1;
param0->unk_0C.unk_624[1].unk_154 = FX32_HALF;
sub_02017348(&param0->unk_0C.unk_624[1].unk_00, 0);
sub_02017348(&param0->unk_0C.unk_16FC[1].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_0C.unk_624[1].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_0C.unk_16FC[1].unk_00, 0);
if (TrainerInfo_Gender(param0->unk_1D2C->unk_08) != 1) {
ov100_021D4AC8(&param0->unk_0C.unk_13EC[0], 61, param0->unk_1D28->unk_00);
@ -155,14 +155,14 @@ static void ov100_021D3084 (UnkStruct_ov100_021D3084 * param0)
ov100_021D4B4C(0, &param0->unk_0C.unk_13EC[0], 64, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
}
sub_02017350(&param0->unk_0C.unk_13EC[0].unk_00, FX32_CONST(1), FX32_CONST(+0), FX32_CONST(+140));
Easy3DObject_SetPosition(&param0->unk_0C.unk_13EC[0].unk_00, FX32_CONST(1), FX32_CONST(+0), FX32_CONST(+140));
param0->unk_0C.unk_13EC[0].unk_164 = 1;
param0->unk_0C.unk_13EC[0].unk_154 = (FX32_HALF >> 1);
param0->unk_0C.unk_13EC[0].unk_158 = 2;
ov100_021D4AC8(&param0->unk_0C.unk_13EC[1], 13, param0->unk_1D28->unk_00);
sub_02017350(&param0->unk_0C.unk_13EC[1].unk_00, FX32_CONST(1), FX32_CONST(+0), FX32_CONST(+60));
Easy3DObject_SetPosition(&param0->unk_0C.unk_13EC[1].unk_00, FX32_CONST(1), FX32_CONST(+0), FX32_CONST(+60));
ov100_021D4B4C(0, &param0->unk_0C.unk_13EC[1], 14, param0->unk_1D28->unk_00, &param0->unk_1D28->unk_1C);
param0->unk_0C.unk_13EC[1].unk_164 = 1;
@ -357,13 +357,13 @@ static void ov100_021D37F4 (SysTask * param0, void * param1)
switch (v0->unk_00) {
case 0:
sub_0201736C(&v0->unk_10->unk_00, FX32_CONST(v1[v0->unk_04]), FX32_CONST(1.00f), FX32_CONST(1.00f));
sub_0201736C(&v0->unk_14->unk_00, FX32_CONST(v1[v0->unk_04]), FX32_CONST(1.00f), FX32_CONST(1.00f));
Easy3DObject_SetScale(&v0->unk_10->unk_00, FX32_CONST(v1[v0->unk_04]), FX32_CONST(1.00f), FX32_CONST(1.00f));
Easy3DObject_SetScale(&v0->unk_14->unk_00, FX32_CONST(v1[v0->unk_04]), FX32_CONST(1.00f), FX32_CONST(1.00f));
v0->unk_04++;
sub_02017348(&v0->unk_10->unk_00, 1);
sub_02017348(&v0->unk_14->unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_10->unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_14->unk_00, 1);
v0->unk_00++;
break;
@ -372,8 +372,8 @@ static void ov100_021D37F4 (SysTask * param0, void * param1)
Sound_PlayPokemonCry(0, v0->unk_08, v0->unk_0C, 80, 111, 0);
v0->unk_00++;
} else {
sub_0201736C(&v0->unk_10->unk_00, FX32_CONST(v1[v0->unk_04]), FX32_CONST(1.00f), FX32_CONST(1.00f));
sub_0201736C(&v0->unk_14->unk_00, FX32_CONST(v1[v0->unk_04]), FX32_CONST(1.00f), FX32_CONST(1.00f));
Easy3DObject_SetScale(&v0->unk_10->unk_00, FX32_CONST(v1[v0->unk_04]), FX32_CONST(1.00f), FX32_CONST(1.00f));
Easy3DObject_SetScale(&v0->unk_14->unk_00, FX32_CONST(v1[v0->unk_04]), FX32_CONST(1.00f), FX32_CONST(1.00f));
}
break;
default:
@ -615,8 +615,8 @@ BOOL ov100_021D39E4 (void * param0)
if (v0->unk_0C.unk_934[0].unk_150 < FX32_CONST(0.80)) {
v0->unk_0C.unk_934[0].unk_150 += FX32_CONST(0.02);
v0->unk_0C.unk_934[1].unk_150 += FX32_CONST(0.02);
sub_0201736C(&v0->unk_0C.unk_934[0].unk_00, v0->unk_0C.unk_934[0].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[0].unk_150);
sub_0201736C(&v0->unk_0C.unk_934[1].unk_00, v0->unk_0C.unk_934[1].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[1].unk_150);
Easy3DObject_SetScale(&v0->unk_0C.unk_934[0].unk_00, v0->unk_0C.unk_934[0].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[0].unk_150);
Easy3DObject_SetScale(&v0->unk_0C.unk_934[1].unk_00, v0->unk_0C.unk_934[1].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[1].unk_150);
} else {
ov100_021D46C8(v0->unk_1D28, v0->unk_1D2C, 18);
v0->unk_00++;
@ -640,8 +640,8 @@ BOOL ov100_021D39E4 (void * param0)
if (v0->unk_0C.unk_934[0].unk_150 > FX32_CONST(0.10)) {
v0->unk_0C.unk_934[0].unk_150 -= FX32_CONST(0.02);
v0->unk_0C.unk_934[1].unk_150 -= FX32_CONST(0.02);
sub_0201736C(&v0->unk_0C.unk_934[0].unk_00, v0->unk_0C.unk_934[0].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[0].unk_150);
sub_0201736C(&v0->unk_0C.unk_934[1].unk_00, v0->unk_0C.unk_934[1].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[1].unk_150);
Easy3DObject_SetScale(&v0->unk_0C.unk_934[0].unk_00, v0->unk_0C.unk_934[0].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[0].unk_150);
Easy3DObject_SetScale(&v0->unk_0C.unk_934[1].unk_00, v0->unk_0C.unk_934[1].unk_150, FX32_CONST(1.0), v0->unk_0C.unk_934[1].unk_150);
} else {
sub_0200F174(0, 0, 0, 0x0, 6, 1, 111);
v0->unk_00++;
@ -662,18 +662,18 @@ BOOL ov100_021D39E4 (void * param0)
break;
}
v0->unk_0C.unk_16FC[0].unk_00.unk_54 = v0->unk_0C.unk_624[0].unk_00.unk_54;
v0->unk_0C.unk_16FC[1].unk_00.unk_54 = v0->unk_0C.unk_624[1].unk_00.unk_54;
v0->unk_0C.unk_16FC[2].unk_00.unk_54 = v0->unk_0C.unk_13EC[0].unk_00.unk_54;
v0->unk_0C.unk_16FC[3].unk_00.unk_54 = v0->unk_0C.unk_13EC[1].unk_00.unk_54;
v0->unk_0C.unk_16FC[0].unk_00.position = v0->unk_0C.unk_624[0].unk_00.position;
v0->unk_0C.unk_16FC[1].unk_00.position = v0->unk_0C.unk_624[1].unk_00.position;
v0->unk_0C.unk_16FC[2].unk_00.position = v0->unk_0C.unk_13EC[0].unk_00.position;
v0->unk_0C.unk_16FC[3].unk_00.position = v0->unk_0C.unk_13EC[1].unk_00.position;
v0->unk_0C.unk_16FC[0].unk_00.unk_54.z -= (FX32_ONE * 2);
v0->unk_0C.unk_16FC[1].unk_00.unk_54.z -= (FX32_ONE * 2);
v0->unk_0C.unk_16FC[2].unk_00.unk_54.z -= (FX32_ONE * 2);
v0->unk_0C.unk_16FC[3].unk_00.unk_54.z -= (FX32_ONE * 2);
v0->unk_0C.unk_16FC[0].unk_00.position.z -= (FX32_ONE * 2);
v0->unk_0C.unk_16FC[1].unk_00.position.z -= (FX32_ONE * 2);
v0->unk_0C.unk_16FC[2].unk_00.position.z -= (FX32_ONE * 2);
v0->unk_0C.unk_16FC[3].unk_00.position.z -= (FX32_ONE * 2);
v0->unk_0C.unk_16FC[2].unk_00.unk_54.x -= FX32_ONE;
v0->unk_0C.unk_16FC[3].unk_00.unk_54.x -= FX32_ONE;
v0->unk_0C.unk_16FC[2].unk_00.position.x -= FX32_ONE;
v0->unk_0C.unk_16FC[3].unk_00.position.x -= FX32_ONE;
ov100_021D3558(v0);

View File

@ -4,7 +4,7 @@
#include "overlay100/struct_ov100_021D49B4.h"
#include "overlay100/struct_ov100_021D54D0.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "overlay100/ov100_021D44C0.h"
void ov100_021D44C0(UnkStruct_ov100_021D49B4 * param0, UnkStruct_ov100_021D54D0 * param1);
@ -43,7 +43,7 @@ void ov100_021D4510 (UnkStruct_ov100_021D49B4 * param0)
int v1;
int v2;
fx32 v3;
fx32 v4 = sub_02017248(&param0->unk_88[0]);
fx32 v4 = Easy3DAnim_GetFrame(&param0->unk_88[0]);
fx32 v5;
v0 = v4 >> FX32_SHIFT;
@ -64,7 +64,7 @@ void ov100_021D4510 (UnkStruct_ov100_021D49B4 * param0)
v3 = v5;
}
sub_02017240(&param0->unk_88[0], v3);
Easy3DAnim_SetFrame(&param0->unk_88[0], v3);
}
void ov100_021D45A4 (UnkStruct_ov100_021D49B4 * param0)
@ -110,11 +110,11 @@ void ov100_021D45A4 (UnkStruct_ov100_021D49B4 * param0)
case 1:
case 2:
case 9:
param0->unk_00.unk_54.z -= v1[param0->unk_180].unk_08;
param0->unk_00.position.z -= v1[param0->unk_180].unk_08;
break;
case 4:
case 3:
param0->unk_00.unk_54.x += v1[param0->unk_180].unk_08;
param0->unk_00.position.x += v1[param0->unk_180].unk_08;
break;
}
}

View File

@ -18,7 +18,7 @@
#include "message.h"
#include "string_template.h"
#include "unk_0200DA60.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "unk_02018340.h"
#include "unk_0201D670.h"
#include "gx_layers.h"
@ -159,7 +159,7 @@ void ov100_021D49B4 (UnkStruct_ov100_021D49B4 * param0)
if (param0->unk_164) {
if (param0->unk_158 == 0) {
sub_020171CC(&param0->unk_88[0], param0->unk_154);
Easy3DAnim_UpdateLooped(&param0->unk_88[0], param0->unk_154);
} else {
ov100_021D45A4(param0);
ov100_021D4510(param0);
@ -169,19 +169,19 @@ void ov100_021D49B4 (UnkStruct_ov100_021D49B4 * param0)
int v1;
for (v1 = 0; v1 < 4; v1++) {
v0 = sub_02017204(&param0->unk_88[v1], param0->unk_154);
v0 = Easy3DAnim_Update(&param0->unk_88[v1], param0->unk_154);
}
} else {
v0 = sub_02017204(&param0->unk_88[0], param0->unk_154);
v0 = Easy3DAnim_Update(&param0->unk_88[0], param0->unk_154);
}
}
if (param0->unk_168) {
sub_020171CC(&param0->unk_88[1], param0->unk_154);
Easy3DAnim_UpdateLooped(&param0->unk_88[1], param0->unk_154);
}
if (param0->unk_16C) {
sub_02017204(&param0->unk_88[1], param0->unk_154);
Easy3DAnim_Update(&param0->unk_88[1], param0->unk_154);
}
if (v0 == 1) {
@ -190,18 +190,18 @@ void ov100_021D49B4 (UnkStruct_ov100_021D49B4 * param0)
}
NNS_G3dGePushMtx();
sub_02017294(&param0->unk_00);
Easy3DObject_Draw(&param0->unk_00);
NNS_G3dGePopMtx(1);
}
void ov100_021D4A84 (UnkStruct_ov100_021D49B4 * param0)
{
sub_02017110(&param0->unk_78);
Easy3DModel_Release(&param0->unk_78);
}
void ov100_021D4A90 (int param0, UnkStruct_ov100_021D49B4 * param1, NNSFndAllocator * param2)
{
sub_020171A0(&param1->unk_88[param0], param2);
Easy3DAnim_Release(&param1->unk_88[param0], param2);
}
void ov100_021D4AA4 (UnkStruct_ov100_021D49B4 * param0, NNSFndAllocator * param1, int param2)
@ -217,30 +217,30 @@ void ov100_021D4AA4 (UnkStruct_ov100_021D49B4 * param0, NNSFndAllocator * param1
void ov100_021D4AC8 (UnkStruct_ov100_021D49B4 * param0, int param1, NARC * param2)
{
sub_020170D8(&param0->unk_78, param2, param1, 111);
sub_02017258(&param0->unk_00, &param0->unk_78);
sub_02017350(&param0->unk_00, 0, 0, 0);
sub_0201736C(&param0->unk_00, FX32_CONST(1.00f), FX32_CONST(1.00f), FX32_CONST(1.00f));
sub_02017348(&param0->unk_00, 1);
Easy3DModel_LoadFrom(&param0->unk_78, param2, param1, 111);
Easy3DObject_Init(&param0->unk_00, &param0->unk_78);
Easy3DObject_SetPosition(&param0->unk_00, 0, 0, 0);
Easy3DObject_SetScale(&param0->unk_00, FX32_CONST(1.00f), FX32_CONST(1.00f), FX32_CONST(1.00f));
Easy3DObject_SetVisibility(&param0->unk_00, 1);
param0->unk_174 = 1;
}
void ov100_021D4B10 (UnkStruct_ov100_021D49B4 * param0, UnkStruct_ov100_021D49B4 * param1, int param2, NARC * param3)
{
sub_02017258(&param1->unk_00, &param0->unk_78);
sub_02017350(&param1->unk_00, 0, 0, 0);
sub_0201736C(&param1->unk_00, FX32_CONST(1.00f), FX32_CONST(1.00f), FX32_CONST(1.00f));
sub_02017348(&param1->unk_00, 1);
Easy3DObject_Init(&param1->unk_00, &param0->unk_78);
Easy3DObject_SetPosition(&param1->unk_00, 0, 0, 0);
Easy3DObject_SetScale(&param1->unk_00, FX32_CONST(1.00f), FX32_CONST(1.00f), FX32_CONST(1.00f));
Easy3DObject_SetVisibility(&param1->unk_00, 1);
param1->unk_174 = 1;
}
void ov100_021D4B4C (int param0, UnkStruct_ov100_021D49B4 * param1, int param2, NARC * param3, NNSFndAllocator * param4)
{
sub_02017164(&param1->unk_88[param0], &param1->unk_78, param3, param2, 111, param4);
sub_02017240(&param1->unk_88[param0], 0);
sub_0201727C(&param1->unk_00, &param1->unk_88[param0]);
Easy3DAnim_LoadFrom(&param1->unk_88[param0], &param1->unk_78, param3, param2, 111, param4);
Easy3DAnim_SetFrame(&param1->unk_88[param0], 0);
Easy3DObject_AddAnim(&param1->unk_00, &param1->unk_88[param0]);
param1->unk_154 = FX32_CONST(1);
param1->unk_180 = 0xFF;
@ -249,9 +249,9 @@ void ov100_021D4B4C (int param0, UnkStruct_ov100_021D49B4 * param1, int param2,
void ov100_021D4BA0 (int param0, UnkStruct_ov100_021D49B4 * param1, UnkStruct_ov100_021D49B4 * param2, int param3, NARC * param4, NNSFndAllocator * param5)
{
sub_02017164(&param2->unk_88[param0], &param1->unk_78, param4, param3, 111, param5);
sub_02017240(&param2->unk_88[param0], 0);
sub_0201727C(&param2->unk_00, &param2->unk_88[param0]);
Easy3DAnim_LoadFrom(&param2->unk_88[param0], &param1->unk_78, param4, param3, 111, param5);
Easy3DAnim_SetFrame(&param2->unk_88[param0], 0);
Easy3DObject_AddAnim(&param2->unk_00, &param2->unk_88[param0]);
param2->unk_154 = FX32_CONST(1);
param2->unk_180 = 0xFF;

View File

@ -24,8 +24,6 @@
#include "struct_defs/struct_0200D0F4.h"
#include "struct_defs/struct_020127E8.h"
#include "struct_defs/struct_02015958.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017294.h"
#include "struct_defs/sprite_manager_allocation.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_defs/struct_0207C690.h"
@ -61,7 +59,7 @@
#include "unk_0200F174.h"
#include "unk_02012744.h"
#include "unk_02015920.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
@ -90,8 +88,8 @@
#include "overlay113/ov113_022607D8.h"
typedef struct {
UnkStruct_020170F4 unk_00;
UnkStruct_02017294 unk_10;
Easy3DModel unk_00;
Easy3DObject unk_10;
} UnkStruct_ov113_0225DBCC_sub1;
typedef struct {
@ -1208,16 +1206,16 @@ static void ov113_0225DAA8 (UnkStruct_ov113_0225DBCC * param0, NARC * param1)
v0 = 27;
}
sub_020170D8(&param0->unk_D8.unk_00, param1, v0, 118);
sub_02017258(&param0->unk_D8.unk_10, &param0->unk_D8.unk_00);
sub_02017350(&param0->unk_D8.unk_10, (FX32_CONST(0)), (FX32_CONST(0)), (FX32_CONST(0)));
sub_0201736C(&param0->unk_D8.unk_10, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
sub_02017348(&param0->unk_D8.unk_10, 1);
Easy3DModel_LoadFrom(&param0->unk_D8.unk_00, param1, v0, 118);
Easy3DObject_Init(&param0->unk_D8.unk_10, &param0->unk_D8.unk_00);
Easy3DObject_SetPosition(&param0->unk_D8.unk_10, (FX32_CONST(0)), (FX32_CONST(0)), (FX32_CONST(0)));
Easy3DObject_SetScale(&param0->unk_D8.unk_10, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
Easy3DObject_SetVisibility(&param0->unk_D8.unk_10, 1);
}
static void ov113_0225DAFC (UnkStruct_ov113_0225DBCC * param0)
{
sub_02017110(&param0->unk_D8.unk_00);
Easy3DModel_Release(&param0->unk_D8.unk_00);
}
static void ov113_0225DB08 (UnkStruct_ov113_0225DBCC * param0)
@ -1250,7 +1248,7 @@ static void ov113_0225DB08 (UnkStruct_ov113_0225DBCC * param0)
NNS_G3dGePushMtx();
{
sub_02017294(&param0->unk_D8.unk_10);
Easy3DObject_Draw(&param0->unk_D8.unk_10);
ov113_0225E4A0(&param0->unk_194);
}

View File

@ -6,8 +6,6 @@
#include "struct_decls/struct_02006C24_decl.h"
#include "overlay113/struct_ov113_0225DBCC_decl.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017294.h"
#include "overlay113/struct_ov113_0225EB20.h"
#include "overlay113/struct_ov113_0225EB20_sub1.h"
#include "overlay113/struct_ov113_0225EDCC.h"
@ -28,9 +26,9 @@
#include "unk_02005474.h"
#include "unk_02006E3C.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201D15C.h"
#include "camera.h"
#include "pokemon.h"
@ -81,7 +79,7 @@ typedef struct {
} UnkStruct_ov113_0225EF78;
typedef struct {
UnkStruct_02017294 unk_00[3];
Easy3DObject unk_00[3];
u16 unk_168;
u8 unk_16A;
UnkStruct_ov113_0225EDA4 unk_16C[4];
@ -103,7 +101,7 @@ typedef struct {
} UnkStruct_ov113_0225F368;
typedef struct {
UnkStruct_02017294 unk_00[3];
Easy3DObject unk_00[3];
u16 unk_168;
u8 unk_16A;
u8 unk_16B;
@ -127,7 +125,7 @@ typedef struct {
} UnkStruct_ov113_0225F818;
typedef struct {
UnkStruct_02017294 unk_00[2];
Easy3DObject unk_00[2];
fx32 unk_F0;
u16 unk_F4;
u8 unk_F6;
@ -136,7 +134,7 @@ typedef struct {
} UnkStruct_ov113_0225F890;
typedef struct {
UnkStruct_02017294 unk_00[2];
Easy3DObject unk_00[2];
fx32 unk_F0;
u16 unk_F4;
u8 unk_F6;
@ -167,8 +165,8 @@ typedef union {
typedef struct UnkStruct_ov113_0225E6B8_t {
UnkStruct_ov113_02260818 unk_00;
UnkStruct_020170F4 unk_0C;
UnkStruct_02017294 unk_1C;
Easy3DModel unk_0C;
Easy3DObject unk_1C;
UnkStruct_ov113_0225E6B8_sub1 unk_94;
u32 unk_240_0 : 4;
u32 unk_240_4 : 4;
@ -181,7 +179,7 @@ static UnkStruct_ov113_0225E6B8 * ov113_0225E6B8(UnkStruct_ov113_0225DBCC * para
static void ov113_0225EB0C(UnkStruct_ov113_0225E6B8 * param0);
static void ov113_0225EB20(UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0225E6B8 * param1, int param2);
static void ov113_0225EB64(UnkStruct_ov113_0225DBCC * param0, int param1, int param2, fx32 * param3, fx32 * param4);
static BOOL ov113_0225E774(UnkStruct_ov113_0225EB20 * param0, UnkStruct_020170F4 * param1, NARC * param2, NARC * param3, const UnkStruct_ov113_02260818 * param4, BOOL param5);
static BOOL ov113_0225E774(UnkStruct_ov113_0225EB20 * param0, Easy3DModel * param1, NARC * param2, NARC * param3, const UnkStruct_ov113_02260818 * param4, BOOL param5);
static void ov113_0225E920(NNSG3dResTex * param0, NARC * param1, NARC * param2, const UnkStruct_ov113_02260818 * param3, BOOL param4);
static void ov113_0225EA60(NNSG3dResTex * param0, int param1);
static BOOL ov113_0225E8B0(NNSG3dResTex * param0);
@ -191,7 +189,7 @@ static BOOL ov113_0225EEBC(UnkStruct_ov113_0225E6B8 * param0, int param1);
static u8 ov113_0225EEF8(const UnkStruct_ov113_02260818 * param0);
static int ov113_0225EBFC(UnkStruct_ov113_0225EB20 * param0);
static void ov113_0225EC60(UnkStruct_ov113_0225EB20 * param0, int param1);
static void ov113_0225ECA0(UnkStruct_02017294 * param0, const UnkStruct_ov113_02260818 * param1, UnkStruct_ov113_0225EDA4 * param2, int param3);
static void ov113_0225ECA0(Easy3DObject * param0, const UnkStruct_ov113_02260818 * param1, UnkStruct_ov113_0225EDA4 * param2, int param3);
static BOOL ov113_0225EDA4(const UnkStruct_ov113_0225EDA4 * param0, const UnkStruct_ov113_0225EDA4 * param1);
static void ov113_0225EDCC(UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0225E6B8 * param1);
static int ov113_0225EE0C(UnkStruct_ov113_0225EB20 * param0, int param1, int param2);
@ -448,7 +446,7 @@ void ov113_0225E4A0 (UnkStruct_ov113_0225EB20 * param0)
if (Unk_ov113_02260CAC[v1->unk_240_8].unk_04 != NULL) {
Unk_ov113_02260CAC[v1->unk_240_8].unk_04(param0, v1);
} else {
sub_02017294(&v1->unk_1C);
Easy3DObject_Draw(&v1->unk_1C);
}
}
}
@ -565,54 +563,54 @@ static UnkStruct_ov113_0225E6B8 * ov113_0225E6B8 (UnkStruct_ov113_0225DBCC * par
return NULL;
}
sub_02017258(&v0->unk_1C, &v0->unk_0C);
Easy3DObject_Init(&v0->unk_1C, &v0->unk_0C);
ov113_0225EB64(param0, param2->unk_09, param2->unk_0A, &v1, &v2);
sub_02017350(&v0->unk_1C, v1, v2, (FX32_ONE * 16));
sub_0201736C(&v0->unk_1C, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
sub_02017348(&v0->unk_1C, 0);
Easy3DObject_SetPosition(&v0->unk_1C, v1, v2, (FX32_ONE * 16));
Easy3DObject_SetScale(&v0->unk_1C, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
Easy3DObject_SetVisibility(&v0->unk_1C, 0);
return v0;
}
static BOOL ov113_0225E774 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_020170F4 * param1, NARC * param2, NARC * param3, const UnkStruct_ov113_02260818 * param4, BOOL param5)
static BOOL ov113_0225E774 (UnkStruct_ov113_0225EB20 * param0, Easy3DModel * param1, NARC * param2, NARC * param3, const UnkStruct_ov113_02260818 * param4, BOOL param5)
{
param1->unk_00 = sub_0200723C(param2, 29, 0, 118, 0);
param1->data = sub_0200723C(param2, 29, 0, 118, 0);
{
BOOL v0;
GF_ASSERT(param1->unk_00);
GF_ASSERT(param1->data);
param1->unk_04 = NNS_G3dGetMdlSet(param1->unk_00);
param1->unk_08 = NNS_G3dGetMdlByIdx(param1->unk_04, 0);
param1->unk_0C = NNS_G3dGetTex(param1->unk_00);
param1->set = NNS_G3dGetMdlSet(param1->data);
param1->model = NNS_G3dGetMdlByIdx(param1->set, 0);
param1->texture = NNS_G3dGetTex(param1->data);
if (param1->unk_0C) {
ov113_0225E920(param1->unk_0C, param2, param3, param4, param5);
v0 = ov113_0225E8B0(param1->unk_0C);
if (param1->texture) {
ov113_0225E920(param1->texture, param2, param3, param4, param5);
v0 = ov113_0225E8B0(param1->texture);
if ((v0 == 0) || (ov113_0225E854(param0, param1->unk_0C) == 0)) {
if ((v0 == 0) || (ov113_0225E854(param0, param1->texture) == 0)) {
NNSG3dTexKey v1;
NNSG3dTexKey v2;
NNSG3dPlttKey v3;
if (v0 == 1) {
NNS_G3dTexReleaseTexKey(param1->unk_0C, &v1, &v2);
NNS_G3dTexReleaseTexKey(param1->texture, &v1, &v2);
NNS_GfdFreeTexVram(v1);
NNS_GfdFreeTexVram(v2);
v3 = NNS_G3dPlttReleasePlttKey(param1->unk_0C);
v3 = NNS_G3dPlttReleasePlttKey(param1->texture);
NNS_GfdFreePlttVram(v3);
}
if (param1->unk_00) {
Heap_FreeToHeap(param1->unk_00);
if (param1->data) {
Heap_FreeToHeap(param1->data);
}
memset(param1, 0, sizeof(UnkStruct_020170F4));
memset(param1, 0, sizeof(Easy3DModel));
return 0;
}
sub_0201CBB0(param1->unk_00, param1->unk_0C);
Easy3D_BindTextureToResource(param1->data, param1->texture);
}
}
@ -829,14 +827,14 @@ static void ov113_0225EA60 (NNSG3dResTex * param0, int param1)
static void ov113_0225EB0C (UnkStruct_ov113_0225E6B8 * param0)
{
sub_02017110(&param0->unk_0C);
Easy3DModel_Release(&param0->unk_0C);
Heap_FreeToHeap(param0);
}
static void ov113_0225EB20 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0225E6B8 * param1, int param2)
{
if ((param1->unk_240_0 == 0) || (param1->unk_240_4 == 1)) {
ov113_0225E884(param0, param1->unk_0C.unk_0C);
ov113_0225E884(param0, param1->unk_0C.texture);
}
ov113_0225EE78(param0, param1->unk_240_24);
@ -912,7 +910,7 @@ static void ov113_0225EC60 (UnkStruct_ov113_0225EB20 * param0, int param1)
}
}
static void ov113_0225ECA0 (UnkStruct_02017294 * param0, const UnkStruct_ov113_02260818 * param1, UnkStruct_ov113_0225EDA4 * param2, int param3)
static void ov113_0225ECA0 (Easy3DObject * param0, const UnkStruct_ov113_02260818 * param1, UnkStruct_ov113_0225EDA4 * param2, int param3)
{
fx32 v0, v1, v2;
fx32 v3, v4, v5;
@ -922,7 +920,7 @@ static void ov113_0225ECA0 (UnkStruct_02017294 * param0, const UnkStruct_ov113_0
v6 = PokemonOverworldFootprintSize(param1->unk_02, param1->unk_08);
GF_ASSERT(v6 < NELEMS(Unk_ov113_02260C38));
sub_02017358(param0, &v0, &v1, &v2);
Easy3DObject_GetPosition(param0, &v0, &v1, &v2);
param2->unk_00 = v0 + Unk_ov113_02260C38[v6].unk_00;
param2->unk_04 = v0 + Unk_ov113_02260C38[v6].unk_04;
@ -930,7 +928,7 @@ static void ov113_0225ECA0 (UnkStruct_02017294 * param0, const UnkStruct_ov113_0
param2->unk_0C = v1 + Unk_ov113_02260C38[v6].unk_0C;
if (param3 == 1) {
sub_02017374(param0, &v3, &v4, &v5);
Easy3DObject_GetScale(param0, &v3, &v4, &v5);
v7 = ((fx64)v3) * 100 / FX32_ONE;
v9 = (param2->unk_04 - param2->unk_00) * v7 / 100 - (param2->unk_04 - param2->unk_00);
@ -1049,7 +1047,7 @@ static int ov113_0225EF0C (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
if (v0->unk_00 == 2) {
ov113_0225ECA0(&param1->unk_1C, &param1->unk_00, &v0->unk_04, 0);
sub_02017348(&param1->unk_1C, 1);
Easy3DObject_SetVisibility(&param1->unk_1C, 1);
param1->unk_240_0 = 1;
}
@ -1080,13 +1078,13 @@ static int ov113_0225EF78 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
v0->unk_04 += 0xc0;
if (v0->unk_00 - 0xc0 < 0x100) {
sub_02017348(&param1->unk_1C, 0);
Easy3DObject_SetVisibility(&param1->unk_1C, 0);
v0->unk_08++;
break;
}
v0->unk_00 -= 0xc0;
sub_0201736C(&param1->unk_1C, v0->unk_04, v0->unk_04, FX32_ONE);
Easy3DObject_SetScale(&param1->unk_1C, v0->unk_04, v0->unk_04, FX32_ONE);
break;
default:
ov113_0225EC60(param0, v0->unk_09);
@ -1103,11 +1101,11 @@ static void ov113_0225EFFC (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0
if (v0->unk_09 != 0xff) {
NNS_G3dGlbPolygonAttr(0, 0, 0, v0->unk_09, v0->unk_00 >> 8, 0);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.model);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.model);
}
sub_02017294(&param1->unk_1C);
Easy3DObject_Draw(&param1->unk_1C);
}
static BOOL ov113_0225F044 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0225E6B8 * param1, UnkStruct_ov113_0225E6B8 * param2)
@ -1130,23 +1128,23 @@ static int ov113_0225F060 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
switch (v0->unk_16A) {
case 0:
sub_02017358(&param1->unk_1C, &v2, &v3, &v4);
Easy3DObject_GetPosition(&param1->unk_1C, &v2, &v3, &v4);
for (v1 = 0; v1 < 3; v1++) {
sub_02017258(&v0->unk_00[v1], &param1->unk_0C);
sub_02017350(&v0->unk_00[v1], v2, v3, v4);
Easy3DObject_Init(&v0->unk_00[v1], &param1->unk_0C);
Easy3DObject_SetPosition(&v0->unk_00[v1], v2, v3, v4);
}
v0->unk_16A++;
case 1:
sub_02017358(&param1->unk_1C, &v2, &v3, &v4);
sub_02017350(&param1->unk_1C, v2 - 0x2000, v3 - 0x2000, v4);
sub_02017358(&v0->unk_00[0], &v2, &v3, &v4);
sub_02017350(&v0->unk_00[0], v2 + 0x2000, v3 - 0x2000, v4);
sub_02017358(&v0->unk_00[1], &v2, &v3, &v4);
sub_02017350(&v0->unk_00[1], v2 - 0x2000, v3 + 0x2000, v4);
sub_02017358(&v0->unk_00[2], &v2, &v3, &v4);
sub_02017350(&v0->unk_00[2], v2 + 0x2000, v3 + 0x2000, v4);
Easy3DObject_GetPosition(&param1->unk_1C, &v2, &v3, &v4);
Easy3DObject_SetPosition(&param1->unk_1C, v2 - 0x2000, v3 - 0x2000, v4);
Easy3DObject_GetPosition(&v0->unk_00[0], &v2, &v3, &v4);
Easy3DObject_SetPosition(&v0->unk_00[0], v2 + 0x2000, v3 - 0x2000, v4);
Easy3DObject_GetPosition(&v0->unk_00[1], &v2, &v3, &v4);
Easy3DObject_SetPosition(&v0->unk_00[1], v2 - 0x2000, v3 + 0x2000, v4);
Easy3DObject_GetPosition(&v0->unk_00[2], &v2, &v3, &v4);
Easy3DObject_SetPosition(&v0->unk_00[2], v2 + 0x2000, v3 + 0x2000, v4);
v0->unk_168++;
@ -1170,10 +1168,10 @@ static void ov113_0225F194 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0
int v1;
for (v1 = 0; v1 < 3; v1++) {
sub_02017294(&v0->unk_00[v1]);
Easy3DObject_Draw(&v0->unk_00[v1]);
}
sub_02017294(&param1->unk_1C);
Easy3DObject_Draw(&param1->unk_1C);
}
static BOOL ov113_0225F1B8 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0225E6B8 * param1, UnkStruct_ov113_0225E6B8 * param2)
@ -1199,23 +1197,23 @@ static int ov113_0225F1E4 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
switch (v0->unk_00) {
case 0:
v1 = sub_02017394(&param1->unk_1C, 2);
v1 = Easy3DObject_GetRotation(&param1->unk_1C, 2);
v1 -= 65536 / 4 / 6;
if (v1 <= 65536 / 8 * 7) {
ov113_0225EA60(param1->unk_0C.unk_0C, param1->unk_240_8);
ov113_0225E854(param0, param1->unk_0C.unk_0C);
ov113_0225EA60(param1->unk_0C.texture, param1->unk_240_8);
ov113_0225E854(param0, param1->unk_0C.texture);
param1->unk_240_4 = 1;
v1 += 65536 / 4;
v0->unk_00++;
}
sub_02017388(&param1->unk_1C, v1, 2);
Easy3DObject_SetRotation(&param1->unk_1C, v1, 2);
break;
case 1:
param1->unk_240_4 = 0;
v1 = sub_02017394(&param1->unk_1C, 2);
v1 = Easy3DObject_GetRotation(&param1->unk_1C, 2);
v1 -= 65536 / 4 / 6;
if (v1 >= 65536 / 4 * 3) {
@ -1223,7 +1221,7 @@ static int ov113_0225F1E4 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
v0->unk_00++;
}
sub_02017388(&param1->unk_1C, v1, 2);
Easy3DObject_SetRotation(&param1->unk_1C, v1, 2);
break;
case 2:
v0->unk_04++;
@ -1235,16 +1233,16 @@ static int ov113_0225F1E4 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
v0->unk_04 = 0;
v0->unk_00++;
case 3:
sub_02017358(&param1->unk_1C, &v3, &v4, &v5);
Easy3DObject_GetPosition(&param1->unk_1C, &v3, &v4, &v5);
if ((v3 < Unk_ov113_02260BBC.unk_00) || (v3 > Unk_ov113_02260BBC.unk_04) || (v4 > Unk_ov113_02260BBC.unk_08) || (v4 < Unk_ov113_02260BBC.unk_0C)) {
return 1;
}
if (v0->unk_08 < 5) {
sub_02017350(&param1->unk_1C, v3 + 0x3000, v4 - 0x3000, v5);
Easy3DObject_SetPosition(&param1->unk_1C, v3 + 0x3000, v4 - 0x3000, v5);
} else {
sub_02017350(&param1->unk_1C, v3 + 0x3000, v4 + 0x3000, v5);
Easy3DObject_SetPosition(&param1->unk_1C, v3 + 0x3000, v4 + 0x3000, v5);
}
v0->unk_08++;
@ -1281,23 +1279,23 @@ static int ov113_0225F368 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
switch (v0->unk_00) {
case 0:
v1 = sub_02017394(&param1->unk_1C, 2);
v1 = Easy3DObject_GetRotation(&param1->unk_1C, 2);
v1 += 65536 / 4 / 6;
if (v1 >= 65536 / 4 / 2) {
ov113_0225EA60(param1->unk_0C.unk_0C, param1->unk_240_8);
ov113_0225EA60(param1->unk_0C.texture, param1->unk_240_8);
v1 -= 65536 / 4;
ov113_0225E854(param0, param1->unk_0C.unk_0C);
ov113_0225E854(param0, param1->unk_0C.texture);
param1->unk_240_4 = 1;
v0->unk_00++;
}
sub_02017388(&param1->unk_1C, v1, 2);
Easy3DObject_SetRotation(&param1->unk_1C, v1, 2);
break;
case 1:
param1->unk_240_4 = 0;
v1 = sub_02017394(&param1->unk_1C, 2);
v1 = Easy3DObject_GetRotation(&param1->unk_1C, 2);
v1 += 65536 / 4 / 6;
if ((v1 >= 0) && (v1 < 65536 / 4 * 1)) {
@ -1305,7 +1303,7 @@ static int ov113_0225F368 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
v0->unk_00++;
}
sub_02017388(&param1->unk_1C, v1, 2);
Easy3DObject_SetRotation(&param1->unk_1C, v1, 2);
break;
case 2:
v0->unk_08++;
@ -1314,13 +1312,13 @@ static int ov113_0225F368 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
break;
}
sub_02017358(&param1->unk_1C, &v2, &v3, &v4);
Easy3DObject_GetPosition(&param1->unk_1C, &v2, &v3, &v4);
v0->unk_0C = v3;
v0->unk_08 = 0;
v0->unk_00++;
case 3:
sub_02017358(&param1->unk_1C, &v2, &v3, &v4);
Easy3DObject_GetPosition(&param1->unk_1C, &v2, &v3, &v4);
if ((v2 < Unk_ov113_02260BBC.unk_00) || (v2 > Unk_ov113_02260BBC.unk_04) || (v3 > Unk_ov113_02260BBC.unk_08) || (v3 < Unk_ov113_02260BBC.unk_0C)) {
return 1;
@ -1333,7 +1331,7 @@ static int ov113_0225F368 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
}
v5 = FX_Mul(sub_0201D2B8(v0->unk_04), 0x8000);
sub_02017350(&param1->unk_1C, v2 - 0x1000, v0->unk_0C + v5, v4);
Easy3DObject_SetPosition(&param1->unk_1C, v2 - 0x1000, v0->unk_0C + v5, v4);
break;
}
@ -1363,33 +1361,33 @@ static int ov113_0225F51C (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
case 0:
v0->unk_16C = ov113_0225EBFC(param0);
sub_02017358(&param1->unk_1C, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param1->unk_1C, &v1, &v2, &v3);
for (v4 = 0; v4 < 3; v4++) {
sub_02017258(&v0->unk_00[v4], &param1->unk_0C);
sub_02017350(&v0->unk_00[v4], v1, v2, v3);
sub_02017348(&v0->unk_00[v4], 0);
Easy3DObject_Init(&v0->unk_00[v4], &param1->unk_0C);
Easy3DObject_SetPosition(&v0->unk_00[v4], v1, v2, v3);
Easy3DObject_SetVisibility(&v0->unk_00[v4], 0);
}
v0->unk_16D++;
case 1:
sub_02017358(&param1->unk_1C, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param1->unk_1C, &v1, &v2, &v3);
if ((v1 < Unk_ov113_02260BBC.unk_00) || (v1 > Unk_ov113_02260BBC.unk_04) || (v2 > Unk_ov113_02260BBC.unk_08) || (v2 < Unk_ov113_02260BBC.unk_0C) || (v0->unk_16B == 1)) {
for (v4 = 0; v4 < 3; v4++) {
sub_02017348(&v0->unk_00[v4], 0);
Easy3DObject_SetVisibility(&v0->unk_00[v4], 0);
}
sub_02017348(&param1->unk_1C, 0);
Easy3DObject_SetVisibility(&param1->unk_1C, 0);
v0->unk_16D++;
break;
}
sub_02017350(&param1->unk_1C, v1, v2 + 0x2800, v3);
Easy3DObject_SetPosition(&param1->unk_1C, v1, v2 + 0x2800, v3);
if (v0->unk_168 % 3 == 0) {
sub_02017350(&v0->unk_00[v0->unk_16A], v1, v2 + 0x2800, v3);
sub_02017348(&v0->unk_00[v0->unk_16A], 1);
Easy3DObject_SetPosition(&v0->unk_00[v0->unk_16A], v1, v2 + 0x2800, v3);
Easy3DObject_SetVisibility(&v0->unk_00[v0->unk_16A], 1);
v0->unk_16A++;
@ -1416,21 +1414,21 @@ static void ov113_0225F680 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0
if (v0->unk_16C != 0xff) {
NNS_G3dGlbPolygonAttr(0, 0, 0, v0->unk_16C, 8, 0);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.model);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.model);
}
for (v1 = 0; v1 < 3; v1++) {
sub_02017294(&v0->unk_00[v1]);
Easy3DObject_Draw(&v0->unk_00[v1]);
}
if (v0->unk_16C != 0xff) {
NNS_G3dGlbPolygonAttr(0, 0, 0, v0->unk_16C, 31, 0);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.model);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.model);
}
sub_02017294(&param1->unk_1C);
Easy3DObject_Draw(&param1->unk_1C);
}
static BOOL ov113_0225F70C (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0225E6B8 * param1, UnkStruct_ov113_0225E6B8 * param2)
@ -1454,12 +1452,12 @@ static int ov113_0225F728 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
switch (v0->unk_00) {
case 0:
sub_02017358(&param1->unk_1C, &v2, &v3, &v4);
Easy3DObject_GetPosition(&param1->unk_1C, &v2, &v3, &v4);
v0->unk_08 = v2;
v0->unk_00++;
case 1:
sub_02017358(&param1->unk_1C, &v2, &v3, &v4);
Easy3DObject_GetPosition(&param1->unk_1C, &v2, &v3, &v4);
if ((v2 < Unk_ov113_02260BBC.unk_00) || (v2 > Unk_ov113_02260BBC.unk_04) || (v3 > Unk_ov113_02260BBC.unk_08) || (v3 < Unk_ov113_02260BBC.unk_0C)) {
return 1;
@ -1472,7 +1470,7 @@ static int ov113_0225F728 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
}
v5 = FX_Mul(sub_0201D2B8(v0->unk_04), 0x8000);
sub_02017350(&param1->unk_1C, v0->unk_08 + v5, v3 - 0x1000, v4);
Easy3DObject_SetPosition(&param1->unk_1C, v0->unk_08 + v5, v3 - 0x1000, v4);
break;
}
@ -1508,7 +1506,7 @@ static int ov113_0225F818 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
}
v0->unk_00 += 0x300;
sub_0201736C(&param1->unk_1C, v0->unk_00, v0->unk_00, FX32_ONE);
Easy3DObject_SetScale(&param1->unk_1C, v0->unk_00, v0->unk_00, FX32_ONE);
break;
}
@ -1538,12 +1536,12 @@ static int ov113_0225F890 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
switch (v0->unk_F7) {
case 0:
v0->unk_F6 = ov113_0225EBFC(param0);
sub_02017358(&param1->unk_1C, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param1->unk_1C, &v1, &v2, &v3);
for (v5 = 0; v5 < 2; v5++) {
sub_02017258(&v0->unk_00[v5], &param1->unk_0C);
sub_02017350(&v0->unk_00[v5], v1, v2, v3);
sub_02017348(&v0->unk_00[v5], 1);
Easy3DObject_Init(&v0->unk_00[v5], &param1->unk_0C);
Easy3DObject_SetPosition(&v0->unk_00[v5], v1, v2, v3);
Easy3DObject_SetVisibility(&v0->unk_00[v5], 1);
}
v0->unk_F4 = 31 << 8;
@ -1551,10 +1549,10 @@ static int ov113_0225F890 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
case 1:
if (v0->unk_F4 - 0xa0 < 0x100) {
for (v5 = 0; v5 < 2; v5++) {
sub_02017348(&v0->unk_00[v5], 0);
Easy3DObject_SetVisibility(&v0->unk_00[v5], 0);
}
sub_02017348(&param1->unk_1C, 0);
Easy3DObject_SetVisibility(&param1->unk_1C, 0);
v0->unk_F7++;
break;
}
@ -1568,13 +1566,13 @@ static int ov113_0225F890 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
v4 = FX_Mul(sub_0201D2B8(v0->unk_F0), 0x10000);
sub_02017358(&param1->unk_1C, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param1->unk_1C, &v1, &v2, &v3);
for (v5 = 0; v5 < 2; v5++) {
if (v5 & 1) {
sub_02017350(&v0->unk_00[v5], v1 + v4, v2, v3);
Easy3DObject_SetPosition(&v0->unk_00[v5], v1 + v4, v2, v3);
} else {
sub_02017350(&v0->unk_00[v5], v1 - v4, v2, v3);
Easy3DObject_SetPosition(&v0->unk_00[v5], v1 - v4, v2, v3);
}
}
break;
@ -1599,15 +1597,15 @@ static void ov113_0225FA24 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0
if (v0->unk_F6 != 0xff) {
NNS_G3dGlbPolygonAttr(0, 0, 0, v0->unk_F6, v0->unk_F4 >> 8, 0);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.model);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.model);
}
for (v1 = 0; v1 < 2; v1++) {
sub_02017294(&v0->unk_00[v1]);
Easy3DObject_Draw(&v0->unk_00[v1]);
}
sub_02017294(&param1->unk_1C);
Easy3DObject_Draw(&param1->unk_1C);
}
static BOOL ov113_0225FA84 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0225E6B8 * param1, UnkStruct_ov113_0225E6B8 * param2)
@ -1636,12 +1634,12 @@ static int ov113_0225FAB0 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
case 0:
v0->unk_F6 = ov113_0225EBFC(param0);
sub_02017358(&param1->unk_1C, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param1->unk_1C, &v1, &v2, &v3);
for (v5 = 0; v5 < 2; v5++) {
sub_02017258(&v0->unk_00[v5], &param1->unk_0C);
sub_02017350(&v0->unk_00[v5], v1, v2, v3);
sub_02017348(&v0->unk_00[v5], 1);
Easy3DObject_Init(&v0->unk_00[v5], &param1->unk_0C);
Easy3DObject_SetPosition(&v0->unk_00[v5], v1, v2, v3);
Easy3DObject_SetVisibility(&v0->unk_00[v5], 1);
}
v0->unk_F4 = 31 << 8;
@ -1649,10 +1647,10 @@ static int ov113_0225FAB0 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
case 1:
if (v0->unk_F4 - 0xa0 < 0x100) {
for (v5 = 0; v5 < 2; v5++) {
sub_02017348(&v0->unk_00[v5], 0);
Easy3DObject_SetVisibility(&v0->unk_00[v5], 0);
}
sub_02017348(&param1->unk_1C, 0);
Easy3DObject_SetVisibility(&param1->unk_1C, 0);
v0->unk_F7++;
break;
}
@ -1666,13 +1664,13 @@ static int ov113_0225FAB0 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
v4 = FX_Mul(sub_0201D2B8(v0->unk_F0), 0x10000);
sub_02017358(&param1->unk_1C, &v1, &v2, &v3);
Easy3DObject_GetPosition(&param1->unk_1C, &v1, &v2, &v3);
for (v5 = 0; v5 < 2; v5++) {
if (v5 & 1) {
sub_02017350(&v0->unk_00[v5], v1, v2 + v4, v3);
Easy3DObject_SetPosition(&v0->unk_00[v5], v1, v2 + v4, v3);
} else {
sub_02017350(&v0->unk_00[v5], v1, v2 - v4, v3);
Easy3DObject_SetPosition(&v0->unk_00[v5], v1, v2 - v4, v3);
}
}
break;
@ -1697,15 +1695,15 @@ static void ov113_0225FC44 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0
if (v0->unk_F6 != 0xff) {
NNS_G3dGlbPolygonAttr(0, 0, 0, v0->unk_F6, v0->unk_F4 >> 8, 0);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.unk_08);
NNS_G3dMdlUseGlbPolygonID(param1->unk_0C.model);
NNS_G3dMdlUseGlbAlpha(param1->unk_0C.model);
}
for (v1 = 0; v1 < 2; v1++) {
sub_02017294(&v0->unk_00[v1]);
Easy3DObject_Draw(&v0->unk_00[v1]);
}
sub_02017294(&param1->unk_1C);
Easy3DObject_Draw(&param1->unk_1C);
}
static BOOL ov113_0225FCA4 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_0225E6B8 * param1, UnkStruct_ov113_0225E6B8 * param2)
@ -1741,11 +1739,11 @@ static int ov113_0225FCD0 (UnkStruct_ov113_0225EB20 * param0, UnkStruct_ov113_02
}
v0->unk_00 += 0x180;
sub_0201736C(&param1->unk_1C, FX32_ONE, v0->unk_00, FX32_ONE);
Easy3DObject_SetScale(&param1->unk_1C, FX32_ONE, v0->unk_00, FX32_ONE);
v4 = -(FX32_ONE * 2 / 2 * (v0->unk_00 - FX32_ONE) / FX32_ONE);
sub_02017358(&param1->unk_1C, &v1, &v2, &v3);
sub_02017350(&param1->unk_1C, v1, v2 + v4, v3);
Easy3DObject_GetPosition(&param1->unk_1C, &v1, &v2, &v3);
Easy3DObject_SetPosition(&param1->unk_1C, v1, v2 + v4, v3);
break;
}

View File

@ -19,9 +19,6 @@
#include "struct_defs/struct_0200C738.h"
#include "struct_defs/struct_020127E8.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "struct_defs/sprite_manager_allocation.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_defs/struct_0207C690.h"
@ -55,7 +52,7 @@
#include "string_template.h"
#include "unk_0200DA60.h"
#include "unk_02012744.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201D15C.h"
@ -124,12 +121,12 @@ typedef struct {
} UnkStruct_ov115_02261C18;
typedef struct {
UnkStruct_02017294 unk_00[3];
UnkStruct_020170F4 unk_168[3];
UnkStruct_02017248 unk_198[6];
Easy3DObject unk_00[3];
Easy3DModel unk_168[3];
Easy3DAnim unk_198[6];
u16 unk_210;
u16 unk_212;
UnkStruct_02017248 unk_214[1];
Easy3DAnim unk_214[1];
fx32 unk_228;
u16 unk_22C;
u16 unk_22E;
@ -166,16 +163,16 @@ typedef struct {
} UnkStruct_ov115_02262CA4;
typedef struct {
UnkStruct_020170F4 unk_00[5];
UnkStruct_020170F4 unk_50;
Easy3DModel unk_00[5];
Easy3DModel unk_50;
UnkStruct_02009DC8 * unk_60[4];
UnkStruct_ov19_021DA864 unk_70;
} UnkStruct_ov115_02264A40;
typedef struct {
GraphicElementData * unk_00;
UnkStruct_02017294 unk_04;
UnkStruct_02017294 unk_7C;
Easy3DObject unk_04;
Easy3DObject unk_7C;
BOOL unk_F4;
const UnkStruct_ov115_022622F8 * unk_F8;
u16 unk_FC;
@ -220,9 +217,9 @@ typedef struct {
} UnkStruct_ov115_02261ADC_sub1;
typedef struct {
UnkStruct_02017294 unk_00[3];
UnkStruct_020170F4 unk_168[3];
UnkStruct_02017248 unk_198[3];
Easy3DObject unk_00[3];
Easy3DModel unk_168[3];
Easy3DAnim unk_198[3];
fx32 unk_1D4;
u8 unk_1D8;
u8 unk_1D9;
@ -494,7 +491,7 @@ static void ov115_02264924(UnkStruct_ov115_022647A0 * param0);
static UnkStruct_ov115_022647A0 * ov115_02264948(UnkStruct_ov115_02261ADC * param0);
static BOOL ov115_02264980(UnkStruct_ov115_022647A0 * param0, const UnkStruct_ov115_022622F8 * param1, u32 param2);
static void ov115_022649F0(UnkStruct_ov115_022647A0 * param0, UnkStruct_ov115_02261ADC * param1);
static UnkStruct_020170F4 * ov115_02264A40(const UnkStruct_ov115_022622F8 * param0, UnkStruct_ov115_02264A40 * param1);
static Easy3DModel * ov115_02264A40(const UnkStruct_ov115_022622F8 * param0, UnkStruct_ov115_02264A40 * param1);
static void ov115_02264A54(UnkStruct_ov115_022647A0 * param0);
static void ov115_02264B40(UnkStruct_ov115_02261ADC * param0, UnkStruct_ov115_02264BA0 * param1, u32 param2, u32 param3);
static void ov115_02264BA0(UnkStruct_ov115_02264BA0 * param0);
@ -1541,7 +1538,7 @@ static void ov115_02261A54 (UnkStruct_ov115_022617E8 * param0, UnkStruct_ov115_0
static void ov115_02261A74 (UnkStruct_ov115_022617E8 * param0, UnkStruct_ov115_02261ADC * param1)
{
ov115_02264190(&param1->unk_524, 1);
sub_02017240(&param1->unk_524.unk_198[1], (FX32_CONST(180)));
Easy3DAnim_SetFrame(&param1->unk_524.unk_198[1], (FX32_CONST(180)));
ov115_0226422C(&param1->unk_524, 1);
}
@ -1584,7 +1581,7 @@ static BOOL ov115_02261AEC (UnkStruct_ov115_02261ADC * param0)
param0->unk_504.unk_04++;
if (param0->unk_504.unk_04 >= 60) {
v0 = sub_02017204(&param0->unk_524.unk_198[5], (FX32_CONST(2)));
v0 = Easy3DAnim_Update(&param0->unk_524.unk_198[5], (FX32_CONST(2)));
if (v0 == 1) {
return 1;
@ -3355,22 +3352,22 @@ static void ov115_02263DF8 (UnkStruct_ov115_02263DF8 * param0, NARC * param1, u3
memset(param0, 0, sizeof(UnkStruct_ov115_02263DF8));
for (v2 = 0; v2 < 3; v2++) {
sub_020170D8(&param0->unk_168[v2], param1, v1[v2], param2);
sub_02017258(&param0->unk_00[v2], &param0->unk_168[v2]);
sub_02017348(&param0->unk_00[v2], 0);
sub_02017350(&param0->unk_00[v2], Unk_ov115_02265B20.x, Unk_ov115_02265B20.y + (-FX32_CONST(200)), Unk_ov115_02265B20.z);
sub_0201736C(&param0->unk_00[v2], (FX32_CONST(1.50f)), (FX32_CONST(1.50f)), (FX32_CONST(1.50f)));
Easy3DModel_LoadFrom(&param0->unk_168[v2], param1, v1[v2], param2);
Easy3DObject_Init(&param0->unk_00[v2], &param0->unk_168[v2]);
Easy3DObject_SetVisibility(&param0->unk_00[v2], 0);
Easy3DObject_SetPosition(&param0->unk_00[v2], Unk_ov115_02265B20.x, Unk_ov115_02265B20.y + (-FX32_CONST(200)), Unk_ov115_02265B20.z);
Easy3DObject_SetScale(&param0->unk_00[v2], (FX32_CONST(1.50f)), (FX32_CONST(1.50f)), (FX32_CONST(1.50f)));
}
for (v2 = 0; v2 < 6; v2++) {
sub_02017164(&param0->unk_198[v2], &param0->unk_168[Unk_ov115_02266644[v2]], param1, v0[v2], param2, param3);
sub_02017240(&param0->unk_198[v2], 0);
Easy3DAnim_LoadFrom(&param0->unk_198[v2], &param0->unk_168[Unk_ov115_02266644[v2]], param1, v0[v2], param2, param3);
Easy3DAnim_SetFrame(&param0->unk_198[v2], 0);
v3 = 0;
v7 = NNS_G3dGetNodeInfo(param0->unk_168[Unk_ov115_02266644[v2]].unk_08);
v7 = NNS_G3dGetNodeInfo(param0->unk_168[Unk_ov115_02266644[v2]].model);
while ((v6 = NNS_G3dGetNodeNameByIdx(v7, v3)) != NULL) {
NNS_G3dAnmObjDisableID(param0->unk_198[v2].unk_08, v3);
NNS_G3dAnmObjDisableID(param0->unk_198[v2].animObj, v3);
v3++;
}
@ -3378,14 +3375,14 @@ static void ov115_02263DF8 (UnkStruct_ov115_02263DF8 * param0, NARC * param1, u3
v5 = NNS_G3dGetNodeIdxByName(v7, &Unk_ov115_022660A4[v2][v3]);
if (v5 != -1) {
NNS_G3dAnmObjEnableID(param0->unk_198[v2].unk_08, v5);
NNS_G3dAnmObjEnableID(param0->unk_198[v2].animObj, v5);
}
}
}
for (v2 = 0; v2 < 1; v2++) {
sub_02017164(&param0->unk_214[v2], &param0->unk_168[Unk_ov115_02265AE0[v2]], param1, 32, param2, param3);
sub_0201727C(&param0->unk_00[Unk_ov115_02265AE0[v2]], &param0->unk_214[v2]);
Easy3DAnim_LoadFrom(&param0->unk_214[v2], &param0->unk_168[Unk_ov115_02265AE0[v2]], param1, 32, param2, param3);
Easy3DObject_AddAnim(&param0->unk_00[Unk_ov115_02265AE0[v2]], &param0->unk_214[v2]);
}
param0->unk_22C = 4;
@ -3393,9 +3390,9 @@ static void ov115_02263DF8 (UnkStruct_ov115_02263DF8 * param0, NARC * param1, u3
ov115_0226422C(param0, 0);
sub_0201727C(&param0->unk_00[1], &param0->unk_198[4]);
sub_02017240(&param0->unk_198[4], 0);
sub_02017348(&param0->unk_00[1], 1);
Easy3DObject_AddAnim(&param0->unk_00[1], &param0->unk_198[4]);
Easy3DAnim_SetFrame(&param0->unk_198[4], 0);
Easy3DObject_SetVisibility(&param0->unk_00[1], 1);
param0->unk_210 = 4;
}
@ -3405,15 +3402,15 @@ static void ov115_02263FF4 (UnkStruct_ov115_02263DF8 * param0, NNSFndAllocator *
int v0;
for (v0 = 0; v0 < 3; v0++) {
sub_02017110(&param0->unk_168[v0]);
Easy3DModel_Release(&param0->unk_168[v0]);
}
for (v0 = 0; v0 < 6; v0++) {
sub_020171A0(&param0->unk_198[v0], param1);
Easy3DAnim_Release(&param0->unk_198[v0], param1);
}
for (v0 = 0; v0 < 1; v0++) {
sub_020171A0(&param0->unk_214[v0], param1);
Easy3DAnim_Release(&param0->unk_214[v0], param1);
}
memset(param0, 0, sizeof(UnkStruct_ov115_02263DF8));
@ -3442,7 +3439,7 @@ static void ov115_02264044 (UnkStruct_ov115_02263DF8 * param0, const UnkStruct_o
static void ov115_022640A4 (UnkStruct_ov115_02263DF8 * param0, const UnkStruct_ov115_02261C18 * param1, int param2)
{
sub_020171CC(&param0->unk_198[0], (FX32_CONST(1)));
Easy3DAnim_UpdateLooped(&param0->unk_198[0], (FX32_CONST(1)));
ov115_02264270(param0);
}
@ -3451,7 +3448,7 @@ static void ov115_022640C0 (UnkStruct_ov115_02263DF8 * param0, const UnkStruct_o
int v0;
for (v0 = 0; v0 < 3; v0++) {
sub_02017350(&param0->unk_00[v0], param1->unk_D8.x, param1->unk_D8.y, param1->unk_D8.z);
Easy3DObject_SetPosition(&param0->unk_00[v0], param1->unk_D8.x, param1->unk_D8.y, param1->unk_D8.z);
}
}
@ -3464,7 +3461,7 @@ static void ov115_022640EC (UnkStruct_ov115_02263DF8 * param0, const UnkStruct_o
v2 = param1->unk_02 + (((0 * 0xffff) / 360));
for (v0 = 0; v0 < 3; v0++) {
sub_02017388(&param0->unk_00[v0], (u16)v2, 1);
Easy3DObject_SetRotation(&param0->unk_00[v0], (u16)v2, 1);
}
}
@ -3473,7 +3470,7 @@ static void ov115_02264110 (UnkStruct_ov115_02263DF8 * param0, const UnkStruct_o
int v0;
for (v0 = 0; v0 < 3; v0++) {
sub_0201736C(&param0->unk_00[v0], param1->unk_D4, param1->unk_D4, param1->unk_D4);
Easy3DObject_SetScale(&param0->unk_00[v0], param1->unk_D4, param1->unk_D4, param1->unk_D4);
}
}
@ -3482,7 +3479,7 @@ static void ov115_02264134 (UnkStruct_ov115_02263DF8 * param0, const UnkStruct_o
int v0;
for (v0 = 0; v0 < 3; v0++) {
sub_02017294(&param0->unk_00[v0]);
Easy3DObject_Draw(&param0->unk_00[v0]);
}
}
@ -3495,7 +3492,7 @@ static void ov115_0226414C (UnkStruct_ov115_02263DF8 * param0, u32 param1)
v0 = (v0 * (FX32_CONST(180))) / 90;
v0 = (FX32_CONST(180)) - v0;
sub_02017240(&param0->unk_198[1], v0);
Easy3DAnim_SetFrame(&param0->unk_198[1], v0);
}
static void ov115_02264190 (UnkStruct_ov115_02263DF8 * param0, u32 param1)
@ -3503,27 +3500,27 @@ static void ov115_02264190 (UnkStruct_ov115_02263DF8 * param0, u32 param1)
GF_ASSERT(param1 < 6);
if (param0->unk_210 != param1) {
sub_02017288(&param0->unk_00[Unk_ov115_02266644[param0->unk_210]], &param0->unk_198[param0->unk_210]);
sub_0201727C(&param0->unk_00[Unk_ov115_02266644[param1]], &param0->unk_198[param1]);
sub_02017240(&param0->unk_198[param1], 0);
sub_02017348(&param0->unk_00[Unk_ov115_02266644[param0->unk_210]], 0);
sub_02017348(&param0->unk_00[Unk_ov115_02266644[param1]], 1);
Easy3DObject_RemoveAnim(&param0->unk_00[Unk_ov115_02266644[param0->unk_210]], &param0->unk_198[param0->unk_210]);
Easy3DObject_AddAnim(&param0->unk_00[Unk_ov115_02266644[param1]], &param0->unk_198[param1]);
Easy3DAnim_SetFrame(&param0->unk_198[param1], 0);
Easy3DObject_SetVisibility(&param0->unk_00[Unk_ov115_02266644[param0->unk_210]], 0);
Easy3DObject_SetVisibility(&param0->unk_00[Unk_ov115_02266644[param1]], 1);
param0->unk_210 = param1;
}
}
static BOOL ov115_02264214 (UnkStruct_ov115_02263DF8 * param0, fx32 param1)
{
return sub_02017204(&param0->unk_198[param0->unk_210], param1);
return Easy3DAnim_Update(&param0->unk_198[param0->unk_210], param1);
}
static void ov115_0226422C (UnkStruct_ov115_02263DF8 * param0, BOOL param1)
{
if (param0->unk_212 != param1) {
if (param1 == 1) {
sub_0201727C(&param0->unk_00[Unk_ov115_02266644[0]], &param0->unk_198[0]);
Easy3DObject_AddAnim(&param0->unk_00[Unk_ov115_02266644[0]], &param0->unk_198[0]);
} else {
sub_02017288(&param0->unk_00[Unk_ov115_02266644[0]], &param0->unk_198[0]);
Easy3DObject_RemoveAnim(&param0->unk_00[Unk_ov115_02266644[0]], &param0->unk_198[0]);
}
param0->unk_212 = param1;
@ -3569,7 +3566,7 @@ static void ov115_02264270 (UnkStruct_ov115_02263DF8 * param0)
}
for (v0 = 0; v0 < 1; v0++) {
sub_02017240(&param0->unk_214[v0], param0->unk_228);
Easy3DAnim_SetFrame(&param0->unk_214[v0], param0->unk_228);
}
}
@ -3613,11 +3610,11 @@ static void ov115_022643EC (UnkStruct_ov115_02261ADC * param0, NARC * param1, u3
};
for (v1 = 0; v1 < 5; v1++) {
sub_020170D8(&param0->unk_760.unk_00[v1], param1, v2[v1], param2);
Easy3DModel_LoadFrom(&param0->unk_760.unk_00[v1], param1, v2[v1], param2);
}
sub_020170D8(&param0->unk_760.unk_50, param1, 46, param2);
NNS_G3dMdlUseGlbAlpha(param0->unk_760.unk_50.unk_08);
Easy3DModel_LoadFrom(&param0->unk_760.unk_50, param1, 46, param2);
NNS_G3dMdlUseGlbAlpha(param0->unk_760.unk_50.model);
{
param0->unk_760.unk_60[0] = sub_02009A4C(param0->unk_1AC[0], param1, 7, 0, 100, NNS_G2D_VRAM_TYPE_2DSUB, param2);
@ -3659,10 +3656,10 @@ static void ov115_02264564 (UnkStruct_ov115_02261ADC * param0)
}
for (v0 = 0; v0 < 5; v0++) {
sub_02017110(&param0->unk_760.unk_00[v0]);
Easy3DModel_Release(&param0->unk_760.unk_00[v0]);
}
sub_02017110(&param0->unk_760.unk_50);
Easy3DModel_Release(&param0->unk_760.unk_50);
memset(&param0->unk_760, 0, sizeof(UnkStruct_ov115_02264A40));
memset(&param0->unk_7F4, 0, sizeof(UnkStruct_ov115_022647A0) * 96);
@ -3724,8 +3721,8 @@ static void ov115_022646BC (UnkStruct_ov115_02261ADC * param0, UnkStruct_ov115_0
sub_02021CAC(param1->unk_00, 0);
}
sub_02017258(&param1->unk_7C, &param0->unk_760.unk_50);
sub_02017348(&param1->unk_7C, 0);
Easy3DObject_Init(&param1->unk_7C, &param0->unk_760.unk_50);
Easy3DObject_SetVisibility(&param1->unk_7C, 0);
}
static void ov115_02264728 (UnkStruct_ov115_02261ADC * param0, UnkStruct_ov115_022647A0 * param1)
@ -3757,7 +3754,7 @@ static void ov115_0226477C (UnkStruct_ov115_02261ADC * param0, UnkStruct_ov115_0
static void ov115_022647A0 (UnkStruct_ov115_022647A0 * param0, UnkStruct_ov115_02261ADC * param1, u32 param2)
{
BOOL v0;
UnkStruct_020170F4 * v1;
Easy3DModel * v1;
if (param0->unk_F4 == 1) {
v0 = ov115_02264980(param0, param0->unk_F8, param2);
@ -3771,18 +3768,18 @@ static void ov115_022647A0 (UnkStruct_ov115_022647A0 * param0, UnkStruct_ov115_0
v1 = ov115_02264A40(param0->unk_F8, &param1->unk_760);
if (param0->unk_F8->unk_00 == 5) {
NNS_G3dMdlSetMdlAmbAll(v1->unk_08, GX_RGB(31, 31, 31));
NNS_G3dMdlSetMdlAmbAll(v1->model, GX_RGB(31, 31, 31));
} else {
NNS_G3dMdlSetMdlAmbAll(v1->unk_08, GX_RGB(18, 18, 18));
NNS_G3dMdlSetMdlAmbAll(v1->model, GX_RGB(18, 18, 18));
}
ov115_02264A54(param0);
sub_02017350(&param0->unk_04, param0->unk_F8->unk_2C.x, param0->unk_F8->unk_2C.y, param0->unk_F8->unk_2C.z);
sub_02017294(&param0->unk_04);
Easy3DObject_SetPosition(&param0->unk_04, param0->unk_F8->unk_2C.x, param0->unk_F8->unk_2C.y, param0->unk_F8->unk_2C.z);
Easy3DObject_Draw(&param0->unk_04);
if (sub_0201734C(&param0->unk_7C) == 1) {
if (Easy3DObject_GetVisibility(&param0->unk_7C) == 1) {
ov115_02264848(param0);
sub_02017294(&param0->unk_7C);
Easy3DObject_Draw(&param0->unk_7C);
ov115_02264908(param0);
}
}
@ -3810,12 +3807,12 @@ static void ov115_02264848 (UnkStruct_ov115_022647A0 * param0)
}
}
sub_02017350(&param0->unk_7C, param0->unk_F8->unk_2C.x, v2, param0->unk_F8->unk_2C.z);
Easy3DObject_SetPosition(&param0->unk_7C, param0->unk_F8->unk_2C.x, v2, param0->unk_F8->unk_2C.z);
v1 = param0->unk_F8->unk_2C.y - v2;
v3 = FX32_ONE + (FX_Div(FX_Mul(v1, (FX32_CONST(1))), (FX32_CONST(300))));
sub_0201736C(&param0->unk_7C, v3, v3, v3);
Easy3DObject_SetScale(&param0->unk_7C, v3, v3, v3);
v4 = (FX_Div(FX_Mul(v1, FX32_CONST(16)), (FX32_CONST(300)))) >> FX32_SHIFT;
v4 = 8 + 16 - v4;
@ -3834,7 +3831,7 @@ static void ov115_02264924 (UnkStruct_ov115_022647A0 * param0)
param0->unk_F4 = 0;
sub_02021CAC(param0->unk_00, 0);
sub_02017348(&param0->unk_7C, 0);
Easy3DObject_SetVisibility(&param0->unk_7C, 0);
}
static UnkStruct_ov115_022647A0 * ov115_02264948 (UnkStruct_ov115_02261ADC * param0)
@ -3876,22 +3873,22 @@ static BOOL ov115_02264980 (UnkStruct_ov115_022647A0 * param0, const UnkStruct_o
static void ov115_022649F0 (UnkStruct_ov115_022647A0 * param0, UnkStruct_ov115_02261ADC * param1)
{
UnkStruct_020170F4 * v0;
Easy3DModel * v0;
sub_02021CAC(param0->unk_00, 0);
param0->unk_F4 = 0;
v0 = ov115_02264A40(param0->unk_F8, &param1->unk_760);
sub_02017258(&param0->unk_04, v0);
sub_02017348(&param0->unk_04, 1);
Easy3DObject_Init(&param0->unk_04, v0);
Easy3DObject_SetVisibility(&param0->unk_04, 1);
if (param0->unk_F8->unk_00 == 1) {
sub_02017348(&param0->unk_7C, 1);
Easy3DObject_SetVisibility(&param0->unk_7C, 1);
}
}
static UnkStruct_020170F4 * ov115_02264A40 (const UnkStruct_ov115_022622F8 * param0, UnkStruct_ov115_02264A40 * param1)
static Easy3DModel * ov115_02264A40 (const UnkStruct_ov115_022622F8 * param0, UnkStruct_ov115_02264A40 * param1)
{
u32 v0;
@ -3925,8 +3922,8 @@ static void ov115_02264A54 (UnkStruct_ov115_022647A0 * param0)
param0->unk_FC += param0->unk_100;
param0->unk_FE += param0->unk_102;
sub_02017388(&param0->unk_04, param0->unk_FC, 0);
sub_02017388(&param0->unk_04, param0->unk_FE, 2);
Easy3DObject_SetRotation(&param0->unk_04, param0->unk_FC, 0);
Easy3DObject_SetRotation(&param0->unk_04, param0->unk_FE, 2);
}
static void ov115_02264B40 (UnkStruct_ov115_02261ADC * param0, UnkStruct_ov115_02264BA0 * param1, u32 param2, u32 param3)
@ -4134,25 +4131,25 @@ static void ov115_02264E48 (UnkStruct_ov115_02264FA0 * param0, UnkStruct_ov115_0
v3 = v0[param3 - 1];
}
sub_020170D8(&param0->unk_168[v4], param2, v3, param5);
sub_02017258(&param0->unk_00[v4], &param0->unk_168[v4]);
sub_02017350(&param0->unk_00[v4], 0, ((FX32_CONST(-90)) - FX32_CONST(8)), 0);
sub_0201736C(&param0->unk_00[v4], (FX32_CONST(1.50f)), (FX32_CONST(1.50f)), (FX32_CONST(1.50f)));
Easy3DModel_LoadFrom(&param0->unk_168[v4], param2, v3, param5);
Easy3DObject_Init(&param0->unk_00[v4], &param0->unk_168[v4]);
Easy3DObject_SetPosition(&param0->unk_00[v4], 0, ((FX32_CONST(-90)) - FX32_CONST(8)), 0);
Easy3DObject_SetScale(&param0->unk_00[v4], (FX32_CONST(1.50f)), (FX32_CONST(1.50f)), (FX32_CONST(1.50f)));
if (v4 == 1) {
sub_02017348(&param0->unk_00[v4], 0);
Easy3DObject_SetVisibility(&param0->unk_00[v4], 0);
}
if ((v4 == 0) || (v4 == 1)) {
sub_02017388(&param0->unk_00[v4], Unk_ov115_02265C5C[param3 - 1][param4], 1);
Easy3DObject_SetRotation(&param0->unk_00[v4], Unk_ov115_02265C5C[param3 - 1][param4], 1);
} else {
sub_02017388(&param0->unk_00[v4], (sub_0201D278(180)), 1);
Easy3DObject_SetRotation(&param0->unk_00[v4], (sub_0201D278(180)), 1);
}
}
for (v4 = 0; v4 < 3; v4++) {
sub_02017164(&param0->unk_198[v4], &param0->unk_168[v2[v4]], param2, v1[v4], param5, param6);
sub_0201727C(&param0->unk_00[v2[v4]], &param0->unk_198[v4]);
Easy3DAnim_LoadFrom(&param0->unk_198[v4], &param0->unk_168[v2[v4]], param2, v1[v4], param5, param6);
Easy3DObject_AddAnim(&param0->unk_00[v2[v4]], &param0->unk_198[v4]);
}
param0->unk_1D4 = (FX32_CONST(1));
@ -4163,11 +4160,11 @@ static void ov115_02264F68 (UnkStruct_ov115_02264FA0 * param0, UnkStruct_ov115_0
int v0;
for (v0 = 0; v0 < 3; v0++) {
sub_020171A0(&param0->unk_198[v0], param2);
Easy3DAnim_Release(&param0->unk_198[v0], param2);
}
for (v0 = 0; v0 < 3; v0++) {
sub_02017110(&param0->unk_168[v0]);
Easy3DModel_Release(&param0->unk_168[v0]);
}
}
@ -4175,7 +4172,7 @@ static void ov115_02264FA0 (UnkStruct_ov115_02264FA0 * param0)
{
int v0;
sub_020171CC(&param0->unk_198[0], param0->unk_1D4);
Easy3DAnim_UpdateLooped(&param0->unk_198[0], param0->unk_1D4);
if (param0->unk_1D8) {
switch (param0->unk_1D9) {
@ -4221,19 +4218,19 @@ static void ov115_02264FA0 (UnkStruct_ov115_02264FA0 * param0)
break;
}
sub_02017240(&param0->unk_198[1], param0->unk_1DC);
sub_02017240(&param0->unk_198[2], param0->unk_1DC);
Easy3DAnim_SetFrame(&param0->unk_198[1], param0->unk_1DC);
Easy3DAnim_SetFrame(&param0->unk_198[2], param0->unk_1DC);
}
for (v0 = 0; v0 < 3; v0++) {
sub_02017294(&param0->unk_00[v0]);
Easy3DObject_Draw(&param0->unk_00[v0]);
}
}
static void ov115_022650C8 (UnkStruct_ov115_02264FA0 * param0)
{
sub_02017348(&param0->unk_00[0], 0);
sub_02017348(&param0->unk_00[1], 1);
Easy3DObject_SetVisibility(&param0->unk_00[0], 0);
Easy3DObject_SetVisibility(&param0->unk_00[1], 1);
param0->unk_1DC = 0;
param0->unk_1E0 = (FX32_CONST(1.0));

View File

@ -25,7 +25,7 @@
#include "unk_020093B4.h"
#include "unk_0200C6E4.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
@ -138,10 +138,10 @@ static void ov116_022604C4 (UnkStruct_ov116_0226139C * param0)
ov116_022618A8(&param0->unk_04->unk_B38[v4], param0->unk_48.unk_00, v5[v4][0]);
ov116_022618B4(&param0->unk_04->unk_B38[v4], param0->unk_14.unk_00);
sub_02017164(&param0->unk_04->unk_B38[v4].unk_88[0], &param0->unk_04->unk_B38[v4].unk_78, param0->unk_48.unk_00, v5[v4][1], 106, &param0->unk_48.unk_24);
sub_0201727C(&param0->unk_04->unk_B38[v4].unk_00, &param0->unk_04->unk_B38[v4].unk_88[0]);
sub_02017240(&param0->unk_04->unk_B38[v4].unk_88[0], 0);
sub_02017348(&param0->unk_04->unk_B38[v4].unk_00, 0);
Easy3DAnim_LoadFrom(&param0->unk_04->unk_B38[v4].unk_88[0], &param0->unk_04->unk_B38[v4].unk_78, param0->unk_48.unk_00, v5[v4][1], 106, &param0->unk_48.unk_24);
Easy3DObject_AddAnim(&param0->unk_04->unk_B38[v4].unk_00, &param0->unk_04->unk_B38[v4].unk_88[0]);
Easy3DAnim_SetFrame(&param0->unk_04->unk_B38[v4].unk_88[0], 0);
Easy3DObject_SetVisibility(&param0->unk_04->unk_B38[v4].unk_00, 0);
{
int v6 = 5;
@ -167,7 +167,7 @@ static void ov116_022604C4 (UnkStruct_ov116_0226139C * param0)
ov116_022618A8(&param0->unk_04->unk_92C, param0->unk_48.unk_00, 71);
ov116_022618B4(&param0->unk_04->unk_92C, param0->unk_14.unk_00);
sub_02017348(&param0->unk_04->unk_92C.unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_04->unk_92C.unk_00, 0);
{
int v7[] = {
@ -195,29 +195,29 @@ static void ov116_022604C4 (UnkStruct_ov116_0226139C * param0)
v9 = &param0->unk_04->unk_308[0];
v10 = 53;
sub_02017164(&v9->unk_88[0], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
sub_0201727C(&v9->unk_00, &v9->unk_88[0]);
sub_02017240(&v9->unk_88[0], 0);
Easy3DAnim_LoadFrom(&v9->unk_88[0], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
Easy3DObject_AddAnim(&v9->unk_00, &v9->unk_88[0]);
Easy3DAnim_SetFrame(&v9->unk_88[0], 0);
v10 = 52;
sub_02017164(&v9->unk_88[1], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
sub_02017240(&v9->unk_88[1], 0);
Easy3DAnim_LoadFrom(&v9->unk_88[1], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
Easy3DAnim_SetFrame(&v9->unk_88[1], 0);
v10 = 58;
sub_02017164(&v9->unk_88[2], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
sub_02017240(&v9->unk_88[2], 0);
Easy3DAnim_LoadFrom(&v9->unk_88[2], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
Easy3DAnim_SetFrame(&v9->unk_88[2], 0);
v9 = &param0->unk_04->unk_308[1];
v10 = 56;
sub_02017164(&v9->unk_88[0], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
sub_0201727C(&v9->unk_00, &v9->unk_88[0]);
sub_02017240(&v9->unk_88[0], 0);
Easy3DAnim_LoadFrom(&v9->unk_88[0], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
Easy3DObject_AddAnim(&v9->unk_00, &v9->unk_88[0]);
Easy3DAnim_SetFrame(&v9->unk_88[0], 0);
v9 = &param0->unk_04->unk_308[2];
v10 = 54;
sub_02017164(&v9->unk_88[0], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
sub_0201727C(&v9->unk_00, &v9->unk_88[0]);
sub_02017240(&v9->unk_88[0], 0);
Easy3DAnim_LoadFrom(&v9->unk_88[0], &v9->unk_78, param0->unk_48.unk_00, v10, 106, &param0->unk_48.unk_24);
Easy3DObject_AddAnim(&v9->unk_00, &v9->unk_88[0]);
Easy3DAnim_SetFrame(&v9->unk_88[0], 0);
}
}
@ -692,19 +692,19 @@ static void ov116_022610FC (UnkStruct_ov116_0226139C * param0)
ov116_0226192C(&param0->unk_04->unk_308[2]);
ov116_0226192C(&param0->unk_04->unk_92C);
sub_020171A0(&param0->unk_04->unk_308[0].unk_88[0], &param0->unk_48.unk_24);
sub_020171A0(&param0->unk_04->unk_308[0].unk_88[1], &param0->unk_48.unk_24);
sub_020171A0(&param0->unk_04->unk_308[0].unk_88[2], &param0->unk_48.unk_24);
sub_020171A0(&param0->unk_04->unk_308[1].unk_88[0], &param0->unk_48.unk_24);
sub_020171A0(&param0->unk_04->unk_308[2].unk_88[0], &param0->unk_48.unk_24);
Easy3DAnim_Release(&param0->unk_04->unk_308[0].unk_88[0], &param0->unk_48.unk_24);
Easy3DAnim_Release(&param0->unk_04->unk_308[0].unk_88[1], &param0->unk_48.unk_24);
Easy3DAnim_Release(&param0->unk_04->unk_308[0].unk_88[2], &param0->unk_48.unk_24);
Easy3DAnim_Release(&param0->unk_04->unk_308[1].unk_88[0], &param0->unk_48.unk_24);
Easy3DAnim_Release(&param0->unk_04->unk_308[2].unk_88[0], &param0->unk_48.unk_24);
{
int v1;
for (v1 = 0; v1 < 8; v1++) {
ov116_0226192C(&param0->unk_04->unk_B38[v1]);
sub_020171A0(&param0->unk_04->unk_B38[v1].unk_88[0], &param0->unk_48.unk_24);
sub_020171A0(&param0->unk_04->unk_B38[v1].unk_88[1], &param0->unk_48.unk_24);
Easy3DAnim_Release(&param0->unk_04->unk_B38[v1].unk_88[0], &param0->unk_48.unk_24);
Easy3DAnim_Release(&param0->unk_04->unk_B38[v1].unk_88[1], &param0->unk_48.unk_24);
}
}

View File

@ -13,7 +13,6 @@
#include "trainer_info.h"
#include "struct_defs/struct_0200D0F4.h"
#include "struct_defs/struct_02017294.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_defs/sprite_template.h"
#include "overlay116/struct_ov116_0226139C.h"
@ -27,7 +26,7 @@
#include "message.h"
#include "unk_0200C6E4.h"
#include "unk_0200DA60.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "unk_02018340.h"
#include "unk_0201D670.h"
#include "camera.h"
@ -43,14 +42,14 @@ static inline void inline_ov116_02261940_1(void);
static void ov116_02261CD8(SpriteTemplate * param0, s16 param1, s16 param2, int param3, int param4, int param5);
void include_ov116_02261870(void);
void ov116_02261870 (UnkStruct_02017294 * param0, MtxFx43 * param1, VecFx32 * param2)
void ov116_02261870 (Easy3DObject * param0, MtxFx43 * param1, VecFx32 * param2)
{
if (param0->unk_6C) {
if (param0->visible) {
NNS_G3dGlbFlush();
NNS_G3dGeTranslateVec(param2);
NNS_G3dGeMultMtx43(param1);
NNS_G3dGlbSetBaseScale(&param0->unk_60);
NNS_G3dDraw(&param0->unk_00);
NNS_G3dGlbSetBaseScale(&param0->scale);
NNS_G3dDraw(&param0->renderObj);
}
}
@ -82,21 +81,21 @@ static inline void inline_ov116_02261940_1 (void)
void ov116_022618A8 (UnkStruct_ov116_0226501C * param0, NARC * param1, int param2)
{
sub_020170D8(&param0->unk_78, param1, param2, 106);
Easy3DModel_LoadFrom(&param0->unk_78, param1, param2, 106);
}
void ov116_022618B4 (UnkStruct_ov116_0226501C * param0, int param1)
{
sub_02017258(&param0->unk_00, &param0->unk_78);
sub_02017350(&param0->unk_00, (0 * FX32_ONE), (-20 * FX32_ONE), (0 * FX32_ONE));
Easy3DObject_Init(&param0->unk_00, &param0->unk_78);
Easy3DObject_SetPosition(&param0->unk_00, (0 * FX32_ONE), (-20 * FX32_ONE), (0 * FX32_ONE));
if (param1 == 0) {
sub_0201736C(&param0->unk_00, FX32_CONST(1.00f), FX32_CONST(1.00f), FX32_CONST(1.00f));
Easy3DObject_SetScale(&param0->unk_00, FX32_CONST(1.00f), FX32_CONST(1.00f), FX32_CONST(1.00f));
} else {
sub_0201736C(&param0->unk_00, FX32_CONST(1.50f), FX32_CONST(1.50f), FX32_CONST(1.50f));
Easy3DObject_SetScale(&param0->unk_00, FX32_CONST(1.50f), FX32_CONST(1.50f), FX32_CONST(1.50f));
}
sub_02017348(&param0->unk_00, 1);
Easy3DObject_SetVisibility(&param0->unk_00, 1);
param0->unk_1E0.x = (0 * FX32_ONE);
param0->unk_1E0.y = (-20 * FX32_ONE);
@ -110,7 +109,7 @@ void ov116_022618B4 (UnkStruct_ov116_0226501C * param0, int param1)
void ov116_0226192C (UnkStruct_ov116_0226501C * param0)
{
param0->unk_1F0 = 0;
sub_02017110(&param0->unk_78);
Easy3DModel_Release(&param0->unk_78);
}
void ov116_02261940 (UnkStruct_ov116_0226139C * param0)
@ -125,28 +124,28 @@ void ov116_02261940 (UnkStruct_ov116_0226139C * param0)
for (v0 = 0; v0 < 8; v0++) {
inline_ov116_02261940(&param0->unk_04->unk_B38[v0]);
sub_020171CC(&param0->unk_04->unk_B38[v0].unk_88[0], FX32_CONST(1));
Easy3DAnim_UpdateLooped(&param0->unk_04->unk_B38[v0].unk_88[0], FX32_CONST(1));
}
}
switch (param0->unk_04->unk_F8) {
case 0:
sub_02017348(&param0->unk_04->unk_308[0].unk_00, 1);
sub_02017348(&param0->unk_04->unk_308[1].unk_00, 0);
sub_02017348(&param0->unk_04->unk_308[2].unk_00, 0);
sub_020171CC(&param0->unk_04->unk_308[0].unk_88[param0->unk_04->unk_308[0].unk_1F4], FX32_CONST(1));
Easy3DObject_SetVisibility(&param0->unk_04->unk_308[0].unk_00, 1);
Easy3DObject_SetVisibility(&param0->unk_04->unk_308[1].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_04->unk_308[2].unk_00, 0);
Easy3DAnim_UpdateLooped(&param0->unk_04->unk_308[0].unk_88[param0->unk_04->unk_308[0].unk_1F4], FX32_CONST(1));
break;
case 1:
sub_02017348(&param0->unk_04->unk_308[0].unk_00, 0);
sub_02017348(&param0->unk_04->unk_308[1].unk_00, 1);
sub_02017348(&param0->unk_04->unk_308[2].unk_00, 0);
sub_02017204(&param0->unk_04->unk_308[1].unk_88[0], FX32_CONST(1));
Easy3DObject_SetVisibility(&param0->unk_04->unk_308[0].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_04->unk_308[1].unk_00, 1);
Easy3DObject_SetVisibility(&param0->unk_04->unk_308[2].unk_00, 0);
Easy3DAnim_Update(&param0->unk_04->unk_308[1].unk_88[0], FX32_CONST(1));
break;
case 2:
sub_02017348(&param0->unk_04->unk_308[0].unk_00, 0);
sub_02017348(&param0->unk_04->unk_308[1].unk_00, 0);
sub_02017348(&param0->unk_04->unk_308[2].unk_00, 1);
sub_02017204(&param0->unk_04->unk_308[2].unk_88[0], FX32_CONST(1));
Easy3DObject_SetVisibility(&param0->unk_04->unk_308[0].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_04->unk_308[1].unk_00, 0);
Easy3DObject_SetVisibility(&param0->unk_04->unk_308[2].unk_00, 1);
Easy3DAnim_Update(&param0->unk_04->unk_308[2].unk_88[0], FX32_CONST(1));
break;
}
@ -159,8 +158,8 @@ void ov116_02261940 (UnkStruct_ov116_0226139C * param0)
if (param0->unk_04->unk_1DA4.unk_1EC) {
BOOL v1[2];
v1[0] = sub_02017204(&param0->unk_04->unk_1DA4.unk_88[0], FX32_CONST(1));
v1[1] = sub_02017204(&param0->unk_04->unk_1DA4.unk_88[1], FX32_CONST(1));
v1[0] = Easy3DAnim_Update(&param0->unk_04->unk_1DA4.unk_88[0], FX32_CONST(1));
v1[1] = Easy3DAnim_Update(&param0->unk_04->unk_1DA4.unk_88[1], FX32_CONST(1));
if (v1[0] && v1[1]) {
param0->unk_04->unk_1DA4.unk_1EC = 0;
@ -171,7 +170,7 @@ void ov116_02261940 (UnkStruct_ov116_0226139C * param0)
inline_ov116_02261940(&param0->unk_04->unk_1B98);
if (param0->unk_04->unk_1B98.unk_1EC) {
sub_020171CC(&param0->unk_04->unk_1B98.unk_88[1], FX32_CONST(1));
Easy3DAnim_UpdateLooped(&param0->unk_04->unk_1B98.unk_88[1], FX32_CONST(1));
}
}
@ -188,9 +187,9 @@ void ov116_02261C48 (UnkStruct_ov116_02262A8C * param0, int param1)
return;
}
sub_02017288(&param0->unk_308[0].unk_00, &param0->unk_308[0].unk_88[v0]);
Easy3DObject_RemoveAnim(&param0->unk_308[0].unk_00, &param0->unk_308[0].unk_88[v0]);
param0->unk_308[0].unk_1F4 = param1;
sub_0201727C(&param0->unk_308[0].unk_00, &param0->unk_308[0].unk_88[v1]);
Easy3DObject_AddAnim(&param0->unk_308[0].unk_00, &param0->unk_308[0].unk_88[v1]);
}
void ov116_02261C88 (UnkStruct_ov116_0226139C * param0)

View File

@ -18,7 +18,7 @@
#include "unk_0200C6E4.h"
#include "sys_task.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_0201D15C.h"
#include "communication_system.h"
@ -364,9 +364,9 @@ static void ov116_02262DC0 (UnkStruct_ov116_02262A8C * param0)
ov116_02261C48(param0, 0);
sub_02017240(&param0->unk_308[0].unk_88[0], 0);
sub_02017240(&param0->unk_308[1].unk_88[0], 0);
sub_02017240(&param0->unk_308[2].unk_88[0], 0);
Easy3DAnim_SetFrame(&param0->unk_308[0].unk_88[0], 0);
Easy3DAnim_SetFrame(&param0->unk_308[1].unk_88[0], 0);
Easy3DAnim_SetFrame(&param0->unk_308[2].unk_88[0], 0);
SysTask_Start(ov116_02262E50, v0, 4096);
}
@ -687,10 +687,10 @@ static void ov116_02263434 (SysTask * param0, void * param1)
ov116_0226192C(v2);
ov116_0226192C(v3);
sub_020171A0(&v2->unk_88[0], &v1->unk_3C->unk_24);
sub_020171A0(&v2->unk_88[1], &v1->unk_3C->unk_24);
sub_020171A0(&v3->unk_88[0], &v1->unk_3C->unk_24);
sub_020171A0(&v3->unk_88[1], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v2->unk_88[0], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v2->unk_88[1], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v3->unk_88[0], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v3->unk_88[1], &v1->unk_3C->unk_24);
v1->unk_30 = 0;
@ -711,13 +711,13 @@ static void ov116_02263434 (SysTask * param0, void * param1)
v1->unk_00++;
break;
case 1:
sub_02017164(&v2->unk_88[0], &v2->unk_78, v1->unk_3C->unk_00, Unk_ov116_02267B9C[0][0], 106, &v1->unk_3C->unk_24);
sub_02017164(&v2->unk_88[1], &v2->unk_78, v1->unk_3C->unk_00, Unk_ov116_02267B9C[0][1], 106, &v1->unk_3C->unk_24);
sub_0201727C(&v2->unk_00, &v2->unk_88[0]);
sub_0201727C(&v2->unk_00, &v2->unk_88[1]);
sub_02017240(&v2->unk_88[0], 0);
sub_02017240(&v2->unk_88[1], 0);
sub_02017348(&v2->unk_00, 0);
Easy3DAnim_LoadFrom(&v2->unk_88[0], &v2->unk_78, v1->unk_3C->unk_00, Unk_ov116_02267B9C[0][0], 106, &v1->unk_3C->unk_24);
Easy3DAnim_LoadFrom(&v2->unk_88[1], &v2->unk_78, v1->unk_3C->unk_00, Unk_ov116_02267B9C[0][1], 106, &v1->unk_3C->unk_24);
Easy3DObject_AddAnim(&v2->unk_00, &v2->unk_88[0]);
Easy3DObject_AddAnim(&v2->unk_00, &v2->unk_88[1]);
Easy3DAnim_SetFrame(&v2->unk_88[0], 0);
Easy3DAnim_SetFrame(&v2->unk_88[1], 0);
Easy3DObject_SetVisibility(&v2->unk_00, 0);
v2->unk_1EC = 0;
@ -735,13 +735,13 @@ static void ov116_02263434 (SysTask * param0, void * param1)
break;
case 3:
sub_02017164(&v3->unk_88[0], &v3->unk_78, v1->unk_3C->unk_00, Unk_ov116_02267B9C[1][0], 106, &v1->unk_3C->unk_24);
sub_02017164(&v3->unk_88[1], &v3->unk_78, v1->unk_3C->unk_00, Unk_ov116_02267B9C[1][1], 106, &v1->unk_3C->unk_24);
sub_0201727C(&v3->unk_00, &v3->unk_88[0]);
sub_0201727C(&v3->unk_00, &v3->unk_88[1]);
sub_02017240(&v3->unk_88[0], 0);
sub_02017240(&v3->unk_88[1], 0);
sub_02017348(&v3->unk_00, 1);
Easy3DAnim_LoadFrom(&v3->unk_88[0], &v3->unk_78, v1->unk_3C->unk_00, Unk_ov116_02267B9C[1][0], 106, &v1->unk_3C->unk_24);
Easy3DAnim_LoadFrom(&v3->unk_88[1], &v3->unk_78, v1->unk_3C->unk_00, Unk_ov116_02267B9C[1][1], 106, &v1->unk_3C->unk_24);
Easy3DObject_AddAnim(&v3->unk_00, &v3->unk_88[0]);
Easy3DObject_AddAnim(&v3->unk_00, &v3->unk_88[1]);
Easy3DAnim_SetFrame(&v3->unk_88[0], 0);
Easy3DAnim_SetFrame(&v3->unk_88[1], 0);
Easy3DObject_SetVisibility(&v3->unk_00, 1);
v3->unk_1EC = 1;
@ -751,8 +751,8 @@ static void ov116_02263434 (SysTask * param0, void * param1)
ov116_0226432C(v3, 0, 0, -5, -5, (0.80), 0);
if (v1->unk_40) {
sub_02017350(&v2->unk_00, 0, (-8 * FX32_ONE), 0);
sub_02017350(&v3->unk_00, 0, (-8 * FX32_ONE), 0);
Easy3DObject_SetPosition(&v2->unk_00, 0, (-8 * FX32_ONE), 0);
Easy3DObject_SetPosition(&v3->unk_00, 0, (-8 * FX32_ONE), 0);
v2->unk_1E0.y = (-8 * FX32_ONE);
v3->unk_1E0.y = (-8 * FX32_ONE);
}
@ -761,8 +761,8 @@ static void ov116_02263434 (SysTask * param0, void * param1)
break;
case 4:
if (v3->unk_1EC == 0) {
sub_02017348(&v2->unk_00, 1);
sub_02017348(&v3->unk_00, 0);
Easy3DObject_SetVisibility(&v2->unk_00, 1);
Easy3DObject_SetVisibility(&v3->unk_00, 0);
v2->unk_1EC = 1;
v1->unk_00++;
}
@ -773,10 +773,10 @@ static void ov116_02263434 (SysTask * param0, void * param1)
} else if (v1->unk_28 != *v1->unk_2C) {
ov116_0226192C(v2);
ov116_0226192C(v3);
sub_020171A0(&v2->unk_88[0], &v1->unk_3C->unk_24);
sub_020171A0(&v2->unk_88[1], &v1->unk_3C->unk_24);
sub_020171A0(&v3->unk_88[0], &v1->unk_3C->unk_24);
sub_020171A0(&v3->unk_88[1], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v2->unk_88[0], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v2->unk_88[1], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v3->unk_88[0], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v3->unk_88[1], &v1->unk_3C->unk_24);
v1->unk_00 = 0;
}
v1->unk_28 = *v1->unk_2C;
@ -785,10 +785,10 @@ static void ov116_02263434 (SysTask * param0, void * param1)
ov116_0226192C(v2);
ov116_0226192C(v3);
sub_020171A0(&v2->unk_88[0], &v1->unk_3C->unk_24);
sub_020171A0(&v2->unk_88[1], &v1->unk_3C->unk_24);
sub_020171A0(&v3->unk_88[0], &v1->unk_3C->unk_24);
sub_020171A0(&v3->unk_88[1], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v2->unk_88[0], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v2->unk_88[1], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v3->unk_88[0], &v1->unk_3C->unk_24);
Easy3DAnim_Release(&v3->unk_88[1], &v1->unk_3C->unk_24);
v1->unk_30 = 0;
SysTask_Done(param0);

View File

@ -25,7 +25,7 @@
#include "unk_0200C6E4.h"
#include "sys_task.h"
#include "unk_0200F174.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "heap.h"
#include "unk_02018340.h"
#include "unk_0201D15C.h"
@ -637,7 +637,7 @@ static void ov116_0226501C (UnkStruct_ov116_02265470 * param0)
break;
case 1:
sub_02017348(&v0->unk_00, 1);
Easy3DObject_SetVisibility(&v0->unk_00, 1);
param0->unk_28[0] = 0;
param0->unk_00++;
break;
@ -668,7 +668,7 @@ static void ov116_0226501C (UnkStruct_ov116_02265470 * param0)
param0->unk_04 = 0;
param0->unk_00 = 0;
sub_02017348(&v0->unk_00, 0);
Easy3DObject_SetVisibility(&v0->unk_00, 0);
break;
}
@ -769,8 +769,8 @@ static void ov116_02265260 (UnkStruct_ov116_02265470 * param0)
for (v0 = 0; v0 < 8; v0++) {
UnkStruct_ov116_0226501C * v1 = param0->unk_08[v0];
sub_02017240(&v1->unk_88[0], (v0 * 20) % 40);
sub_02017348(&v1->unk_00, 1);
Easy3DAnim_SetFrame(&v1->unk_88[0], (v0 * 20) % 40);
Easy3DObject_SetVisibility(&v1->unk_00, 1);
}
param0->unk_28[9] = 0;
@ -787,7 +787,7 @@ static void ov116_02265260 (UnkStruct_ov116_02265470 * param0)
for (v0 = 0; v0 < 8; v0++) {
UnkStruct_ov116_0226501C * v2 = param0->unk_08[v0];
sub_02017348(&v2->unk_00, 0);
Easy3DObject_SetVisibility(&v2->unk_00, 0);
}
param0->unk_50[0] = 0;

View File

@ -11,7 +11,6 @@
#include "strbuf.h"
#include "trainer_info.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_0207C690.h"
#include "struct_defs/struct_02099F80.h"
#include "overlay084/struct_ov84_0223BA5C.h"
@ -42,7 +41,7 @@
#include "unk_0200F174.h"
#include "unk_02012744.h"
#include "unk_02014000.h"
#include "unk_020170BC.h"
#include "easy3d_object.h"
#include "unk_02017728.h"
#include "heap.h"
#include "unk_02018340.h"
@ -611,8 +610,8 @@ static void ov117_02260F7C (SysTask * param0, void * param1)
NNS_G3dGePushMtx();
{
sub_02017294(&v0->unk_13A0.unk_10);
sub_02017294(&v0->unk_D8.unk_10);
Easy3DObject_Draw(&v0->unk_13A0.unk_10);
Easy3DObject_Draw(&v0->unk_D8.unk_10);
ov117_02261FA4(v0);
}
@ -1352,34 +1351,34 @@ static void ov117_02261C2C (UnkStruct_ov117_02261280 * param0, NARC * param1)
v4 = ov117_0226235C(param0, CommSys_CurNetId());
sub_020170D8(&v2->unk_00, param1, Unk_ov117_022669F0[v4].unk_00, 110);
sub_02017258(&v2->unk_10, &v2->unk_00);
sub_02017350(&v2->unk_10, (FX32_CONST(0)), (FX32_CONST(-25)), (FX32_CONST(0)));
sub_0201736C(&v2->unk_10, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
sub_02017348(&v2->unk_10, 1);
sub_020170D8(&v2->unk_88[0], param1, Unk_ov117_022669F0[v4].unk_04, 110);
sub_020170D8(&v2->unk_88[1], param1, Unk_ov117_022669F0[v4].unk_08, 110);
sub_020170D8(&v2->unk_88[2], param1, Unk_ov117_022669F0[v4].unk_0C, 110);
sub_020170D8(&v2->unk_88[3], param1, Unk_ov117_022669F0[v4].unk_10, 110);
Easy3DModel_LoadFrom(&v2->unk_00, param1, Unk_ov117_022669F0[v4].unk_00, 110);
Easy3DObject_Init(&v2->unk_10, &v2->unk_00);
Easy3DObject_SetPosition(&v2->unk_10, (FX32_CONST(0)), (FX32_CONST(-25)), (FX32_CONST(0)));
Easy3DObject_SetScale(&v2->unk_10, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
Easy3DObject_SetVisibility(&v2->unk_10, 1);
Easy3DModel_LoadFrom(&v2->unk_88[0], param1, Unk_ov117_022669F0[v4].unk_04, 110);
Easy3DModel_LoadFrom(&v2->unk_88[1], param1, Unk_ov117_022669F0[v4].unk_08, 110);
Easy3DModel_LoadFrom(&v2->unk_88[2], param1, Unk_ov117_022669F0[v4].unk_0C, 110);
Easy3DModel_LoadFrom(&v2->unk_88[3], param1, Unk_ov117_022669F0[v4].unk_10, 110);
for (v0 = 0; v0 < 8; v0++) {
for (v1 = 0; v1 < 4; v1++) {
if (v5 == NULL) {
sub_02017164(&v2->unk_C8[v0][v1].unk_7C, &v2->unk_88[v1], param1, 35 + v1, 110, &param0->unk_A8);
v5 = v2->unk_C8[v0][v1].unk_7C.unk_00;
Easy3DAnim_LoadFrom(&v2->unk_C8[v0][v1].unk_7C, &v2->unk_88[v1], param1, 35 + v1, 110, &param0->unk_A8);
v5 = v2->unk_C8[v0][v1].unk_7C.data;
} else {
sub_02017190(&v2->unk_C8[v0][v1].unk_7C, &v2->unk_88[v1], v5, &param0->unk_A8);
Easy3DAnim_LoadFromData(&v2->unk_C8[v0][v1].unk_7C, &v2->unk_88[v1], v5, &param0->unk_A8);
}
sub_02017240(&v2->unk_C8[v0][v1].unk_7C, 0);
Easy3DAnim_SetFrame(&v2->unk_C8[v0][v1].unk_7C, 0);
}
}
sub_020170D8(&v3->unk_00, param1, 30, 110);
sub_02017258(&v3->unk_10, &v3->unk_00);
sub_02017350(&v3->unk_10, (FX32_CONST(0)), (FX32_CONST(-25)), (FX32_CONST(0)));
sub_0201736C(&v3->unk_10, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
sub_02017348(&v3->unk_10, 1);
Easy3DModel_LoadFrom(&v3->unk_00, param1, 30, 110);
Easy3DObject_Init(&v3->unk_10, &v3->unk_00);
Easy3DObject_SetPosition(&v3->unk_10, (FX32_CONST(0)), (FX32_CONST(-25)), (FX32_CONST(0)));
Easy3DObject_SetScale(&v3->unk_10, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
Easy3DObject_SetVisibility(&v3->unk_10, 1);
}
static void ov117_02261DD0 (UnkStruct_ov117_02261280 * param0)
@ -1387,25 +1386,25 @@ static void ov117_02261DD0 (UnkStruct_ov117_02261280 * param0)
int v0, v1;
UnkStruct_ov117_02261F08 * v2 = &param0->unk_D8;
sub_02017110(&v2->unk_00);
Easy3DModel_Release(&v2->unk_00);
for (v0 = 0; v0 < 4; v0++) {
sub_02017110(&v2->unk_88[v0]);
Easy3DModel_Release(&v2->unk_88[v0]);
}
for (v0 = 0; v0 < 8; v0++) {
for (v1 = 0; v1 < 4; v1++) {
sub_020171A0(&v2->unk_C8[v0][v1].unk_7C, &param0->unk_A8);
Easy3DAnim_Release(&v2->unk_C8[v0][v1].unk_7C, &param0->unk_A8);
}
}
sub_02017110(&param0->unk_13A0.unk_00);
Easy3DModel_Release(&param0->unk_13A0.unk_00);
}
BOOL ov117_02261E38 (UnkStruct_ov117_02261280 * param0, int param1)
{
UnkStruct_ov117_02261F08 * v0 = &param0->unk_D8;
UnkStruct_020170F4 * v1;
Easy3DModel * v1;
int v2, v3;
if (param1 > 1200) {
@ -1422,12 +1421,12 @@ BOOL ov117_02261E38 (UnkStruct_ov117_02261280 * param0, int param1)
for (v2 = 0; v2 < 8; v2++) {
if (v0->unk_C8[v2][v3].unk_00 == 0) {
sub_02017258(&v0->unk_C8[v2][v3].unk_04, v1);
sub_02017350(&v0->unk_C8[v2][v3].unk_04, (FX32_CONST(0)), (FX32_CONST(-25)), (FX32_CONST(0)));
sub_0201736C(&v0->unk_C8[v2][v3].unk_04, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
sub_02017348(&v0->unk_C8[v2][v3].unk_04, 1);
sub_02017240(&v0->unk_C8[v2][v3].unk_7C, 0);
sub_0201727C(&v0->unk_C8[v2][v3].unk_04, &v0->unk_C8[v2][v3].unk_7C);
Easy3DObject_Init(&v0->unk_C8[v2][v3].unk_04, v1);
Easy3DObject_SetPosition(&v0->unk_C8[v2][v3].unk_04, (FX32_CONST(0)), (FX32_CONST(-25)), (FX32_CONST(0)));
Easy3DObject_SetScale(&v0->unk_C8[v2][v3].unk_04, (FX32_CONST(1.00f)), (FX32_CONST(1.00f)), (FX32_CONST(1.00f)));
Easy3DObject_SetVisibility(&v0->unk_C8[v2][v3].unk_04, 1);
Easy3DAnim_SetFrame(&v0->unk_C8[v2][v3].unk_7C, 0);
Easy3DObject_AddAnim(&v0->unk_C8[v2][v3].unk_04, &v0->unk_C8[v2][v3].unk_7C);
v0->unk_C8[v2][v3].unk_00 = 1;
@ -1443,7 +1442,7 @@ void ov117_02261F08 (UnkStruct_ov117_02261280 * param0, int param1, int param2)
{
UnkStruct_ov117_02261F08 * v0 = &param0->unk_D8;
sub_02017288(&v0->unk_C8[param1][param2].unk_04, &v0->unk_C8[param1][param2].unk_7C);
Easy3DObject_RemoveAnim(&v0->unk_C8[param1][param2].unk_04, &v0->unk_C8[param1][param2].unk_7C);
v0->unk_C8[param1][param2].unk_00 = 0;
}
@ -1455,7 +1454,7 @@ void ov117_02261F3C (UnkStruct_ov117_02261280 * param0)
for (v1 = 0; v1 < 8; v1++) {
for (v2 = 0; v2 < 4; v2++) {
if (v0->unk_C8[v1][v2].unk_00 == 1) {
if (sub_02017204(&v0->unk_C8[v1][v2].unk_7C, FX32_ONE) == 1) {
if (Easy3DAnim_Update(&v0->unk_C8[v1][v2].unk_7C, FX32_ONE) == 1) {
ov117_02261F08(param0, v1, v2);
}
}
@ -1471,7 +1470,7 @@ void ov117_02261FA4 (UnkStruct_ov117_02261280 * param0)
for (v1 = 0; v1 < 8; v1++) {
for (v2 = 0; v2 < 4; v2++) {
if (v0->unk_C8[v1][v2].unk_00 == 1) {
sub_02017294(&v0->unk_C8[v1][v2].unk_04);
Easy3DObject_Draw(&v0->unk_C8[v1][v2].unk_04);
}
}
}

View File

@ -16,7 +16,7 @@
#include "narc.h"
#include "unk_0200C6E4.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "overlay117/ov117_02260668.h"
#include "overlay117/ov117_022626B0.h"
#include "overlay117/ov117_02263AF0.h"
@ -409,7 +409,7 @@ static void ov117_02262B98 (UnkStruct_ov117_022626B0 * param0)
param0->unk_00 = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_APPLICATION__BALLOON__GRAPHIC__BALLOON_GRA, 29, 110);
param0->unk_04 = NNS_G3dGetTex(param0->unk_00);
sub_0201CBCC(param0->unk_04);
Easy3D_UploadTextureToVRAM(param0->unk_04);
{
u32 v0;

View File

@ -1,265 +0,0 @@
#include <nitro.h>
#include <string.h>
#include "struct_decls/struct_02006C24_decl.h"
#include "sys_task_manager.h"
#include "struct_defs/struct_020170F4.h"
#include "struct_defs/struct_02017248.h"
#include "struct_defs/struct_02017294.h"
#include "unk_02006E3C.h"
#include "sys_task.h"
#include "unk_020170BC.h"
#include "heap.h"
#include "unk_0201C970.h"
static void sub_020170F4(SysTask * param0, void * param1);
static void sub_020173A0(UnkStruct_02017248 * param0, const UnkStruct_020170F4 * param1, void * param2, NNSFndAllocator * param3);
static void sub_020173CC(UnkStruct_020170F4 * param0);
void sub_020170BC (UnkStruct_020170F4 * param0, u32 param1, u32 param2, u32 param3)
{
param0->unk_00 = sub_02006FE8(param1, param2, 0, param3, 0);
sub_020173CC(param0);
}
void sub_020170D8 (UnkStruct_020170F4 * param0, NARC * param1, u32 param2, u32 param3)
{
param0->unk_00 = sub_0200723C(param1, param2, 0, param3, 0);
sub_020173CC(param0);
}
static void sub_020170F4 (SysTask * param0, void * param1)
{
UnkStruct_020170F4 * v0 = param1;
sub_0201CBCC(v0->unk_0C);
sub_0201CBB0(v0->unk_00, v0->unk_0C);
SysTask_Done(param0);
}
void sub_02017110 (UnkStruct_020170F4 * param0)
{
NNSG3dTexKey v0;
NNSG3dTexKey v1;
NNSG3dPlttKey v2;
if (param0->unk_0C) {
NNS_G3dTexReleaseTexKey(param0->unk_0C, &v0, &v1);
NNS_GfdFreeTexVram(v0);
NNS_GfdFreeTexVram(v1);
v2 = NNS_G3dPlttReleasePlttKey(param0->unk_0C);
NNS_GfdFreePlttVram(v2);
}
if (param0->unk_00) {
Heap_FreeToHeap(param0->unk_00);
}
memset(param0, 0, sizeof(UnkStruct_020170F4));
}
void sub_02017164 (UnkStruct_02017248 * param0, const UnkStruct_020170F4 * param1, NARC * param2, u32 param3, u32 param4, NNSFndAllocator * param5)
{
void * v0;
v0 = sub_0200723C(param2, param3, 0, param4, 0);
sub_020173A0(param0, param1, v0, param5);
param0->unk_10 = 0;
}
void sub_02017190 (UnkStruct_02017248 * param0, const UnkStruct_020170F4 * param1, void * param2, NNSFndAllocator * param3)
{
sub_020173A0(param0, param1, param2, param3);
param0->unk_10 = 1;
}
void sub_020171A0 (UnkStruct_02017248 * param0, NNSFndAllocator * param1)
{
if (param0->unk_00) {
NNS_G3dFreeAnmObj(param1, param0->unk_08);
if (param0->unk_10 == 0) {
Heap_FreeToHeap(param0->unk_00);
}
}
memset(param0, 0, sizeof(UnkStruct_02017248));
}
void sub_020171CC (UnkStruct_02017248 * param0, fx32 param1)
{
fx32 v0 = NNS_G3dAnmObjGetNumFrame(param0->unk_08);
if (param1 > 0) {
param0->unk_0C = (param0->unk_0C + param1) % v0;
} else {
param0->unk_0C = param0->unk_0C + param1;
if (param0->unk_0C < 0) {
param0->unk_0C += v0;
}
}
NNS_G3dAnmObjSetFrame(param0->unk_08, param0->unk_0C);
}
BOOL sub_02017204 (UnkStruct_02017248 * param0, fx32 param1)
{
fx32 v0 = NNS_G3dAnmObjGetNumFrame(param0->unk_08);
BOOL v1 = 0;
if (param1 > 0) {
if ((param0->unk_0C + param1) < v0) {
param0->unk_0C += param1;
} else {
param0->unk_0C = v0;
v1 = 1;
}
} else {
if ((param0->unk_0C + param1) >= 0) {
param0->unk_0C += param1;
} else {
param0->unk_0C = 0;
v1 = 1;
}
}
NNS_G3dAnmObjSetFrame(param0->unk_08, param0->unk_0C);
return v1;
}
void sub_02017240 (UnkStruct_02017248 * param0, fx32 param1)
{
param0->unk_0C = param1;
NNS_G3dAnmObjSetFrame(param0->unk_08, param1);
}
fx32 sub_02017248 (const UnkStruct_02017248 * param0)
{
return param0->unk_0C;
}
fx32 sub_0201724C (const UnkStruct_02017248 * param0)
{
return NNS_G3dAnmObjGetNumFrame(param0->unk_08);
}
void sub_02017258 (UnkStruct_02017294 * param0, UnkStruct_020170F4 * param1)
{
memset(param0, 0, sizeof(UnkStruct_02017294));
NNS_G3dRenderObjInit(&param0->unk_00, param1->unk_08);
param0->unk_6C = 1;
param0->unk_60.x = FX32_ONE;
param0->unk_60.y = FX32_ONE;
param0->unk_60.z = FX32_ONE;
}
void sub_0201727C (UnkStruct_02017294 * param0, UnkStruct_02017248 * param1)
{
NNS_G3dRenderObjAddAnmObj(&param0->unk_00, param1->unk_08);
}
void sub_02017288 (UnkStruct_02017294 * param0, UnkStruct_02017248 * param1)
{
NNS_G3dRenderObjRemoveAnmObj(&param0->unk_00, param1->unk_08);
}
void sub_02017294 (UnkStruct_02017294 * param0)
{
MtxFx33 v0;
MtxFx33 v1;
if (param0->unk_6C) {
MTX_Identity33(&v0);
MTX_RotX33(&v1, FX_SinIdx(param0->unk_70[0]), FX_CosIdx(param0->unk_70[0]));
MTX_Concat33(&v1, &v0, &v0);
MTX_RotZ33(&v1, FX_SinIdx(param0->unk_70[2]), FX_CosIdx(param0->unk_70[2]));
MTX_Concat33(&v1, &v0, &v0);
MTX_RotY33(&v1, FX_SinIdx(param0->unk_70[1]), FX_CosIdx(param0->unk_70[1]));
MTX_Concat33(&v1, &v0, &v0);
sub_0201CA74(&param0->unk_00, &param0->unk_54, &v0, &param0->unk_60);
}
}
void sub_02017330 (UnkStruct_02017294 * param0, const MtxFx33 * param1)
{
if (param0->unk_6C) {
sub_0201CA74(&param0->unk_00, &param0->unk_54, (MtxFx33 *)param1, &param0->unk_60);
}
}
void sub_02017348 (UnkStruct_02017294 * param0, BOOL param1)
{
param0->unk_6C = param1;
}
BOOL sub_0201734C (const UnkStruct_02017294 * param0)
{
return param0->unk_6C;
}
void sub_02017350 (UnkStruct_02017294 * param0, fx32 param1, fx32 param2, fx32 param3)
{
param0->unk_54.x = param1;
param0->unk_54.y = param2;
param0->unk_54.z = param3;
}
void sub_02017358 (const UnkStruct_02017294 * param0, fx32 * param1, fx32 * param2, fx32 * param3)
{
*param1 = param0->unk_54.x;
*param2 = param0->unk_54.y;
*param3 = param0->unk_54.z;
}
void sub_0201736C (UnkStruct_02017294 * param0, fx32 param1, fx32 param2, fx32 param3)
{
param0->unk_60.x = param1;
param0->unk_60.y = param2;
param0->unk_60.z = param3;
}
void sub_02017374 (const UnkStruct_02017294 * param0, fx32 * param1, fx32 * param2, fx32 * param3)
{
*param1 = param0->unk_60.x;
*param2 = param0->unk_60.y;
*param3 = param0->unk_60.z;
}
void sub_02017388 (UnkStruct_02017294 * param0, u16 param1, u32 param2)
{
param0->unk_70[param2] = param1;
}
u16 sub_02017394 (const UnkStruct_02017294 * param0, u32 param1)
{
return param0->unk_70[param1];
}
static void sub_020173A0 (UnkStruct_02017248 * param0, const UnkStruct_020170F4 * param1, void * param2, NNSFndAllocator * param3)
{
param0->unk_00 = param2;
param0->unk_04 = NNS_G3dGetAnmByIdx(param0->unk_00, 0);
param0->unk_08 = NNS_G3dAllocAnmObj(param3, param0->unk_04, param1->unk_08);
NNS_G3dAnmObjInit(param0->unk_08, param0->unk_04, param1->unk_08, param1->unk_0C);
}
static void sub_020173CC (UnkStruct_020170F4 * param0)
{
GF_ASSERT(param0->unk_00);
param0->unk_04 = NNS_G3dGetMdlSet(param0->unk_00);
param0->unk_08 = NNS_G3dGetMdlByIdx(param0->unk_04, 0);
param0->unk_0C = NNS_G3dGetTex(param0->unk_00);
if (param0->unk_0C) {
SysTask_ExecuteAfterVBlank(sub_020170F4, param0, 1024);
}
}

View File

@ -1,226 +0,0 @@
#include <nitro.h>
#include <string.h>
#include <nnsys.h>
#include "struct_defs/struct_0207C690.h"
#include "unk_02017728.h"
#include "unk_0201C970.h"
#include "gx_layers.h"
#include "unk_02024220.h"
void sub_0201C9CC(NNSG3dResMdl ** param0, NNSG3dResFileHeader ** param1);
static void sub_0201CB1C(void);
void sub_0201C970 (const u8 param0, const char * param1, NNSG3dResMdl ** param2, NNSG3dResFileHeader ** param3)
{
NNSG3dResTex * v0 = NULL;
BOOL v1;
*param3 = ReadFileToHeap(param0, param1);
NNS_G3D_NULL_ASSERT(*param3);
v0 = NNS_G3dGetTex(*param3);
if (v0 != NULL) {
if (sub_0201CA5C(v0) == 0) {
DC_FlushRange(*param3, (*param3)->fileSize);
v1 = NNS_G3dResDefaultSetup(*param3);
}
}
*param2 = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*param3), 0);
}
void sub_0201C9CC (NNSG3dResMdl ** param0, NNSG3dResFileHeader ** param1)
{
NNSG3dResTex * v0 = NULL;
BOOL v1;
v0 = NNS_G3dGetTex(*param1);
if (v0 != NULL) {
if (sub_0201CA5C(v0) == 0) {
DC_FlushRange(*param1, (*param1)->fileSize);
v1 = NNS_G3dResDefaultSetup(*param1);
}
}
*param0 = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*param1), 0);
}
void sub_0201CA24 (const u8 param0, const char * param1, NNSG3dRenderObj * param2, NNSG3dResMdl ** param3, NNSG3dResFileHeader ** param4)
{
sub_0201C970(param0, param1, param3, param4);
NNS_G3dRenderObjInit(param2, *param3);
}
void sub_0201CA3C (NNSG3dRenderObj * param0, NNSG3dResMdl ** param1, NNSG3dResFileHeader ** param2)
{
sub_0201C9CC(param1, param2);
GF_ASSERT(param1);
NNS_G3dRenderObjInit(param0, *param1);
}
BOOL sub_0201CA5C (NNSG3dResTex * param0)
{
if ((param0->texInfo.flag & NNS_G3D_RESTEX_LOADED) || (param0->tex4x4Info.flag & NNS_G3D_RESTEX4x4_LOADED)) {
return 1;
}
return 0;
}
void sub_0201CA74 (NNSG3dRenderObj * param0, const VecFx32 * param1, const MtxFx33 * param2, const VecFx32 * param3)
{
NNS_G3dGlbSetBaseTrans(param1);
NNS_G3dGlbSetBaseRot(param2);
NNS_G3dGlbSetBaseScale(param3);
NNS_G3dGlbFlush();
NNS_G3dDraw(param0);
}
void sub_0201CAB0 (NNSG3dRenderObj * param0, const VecFx32 * param1, const MtxFx33 * param2, const VecFx32 * param3)
{
NNS_G3dGlbSetBaseTrans(param1);
NNS_G3dGlbSetBaseRot(param2);
NNS_G3dGlbSetBaseScale(param3);
NNS_G3dGlbFlush();
NNS_G3dDraw1Mat1Shp(param0->resMdl, 0, 0, 1);
NNS_G3dGeFlushBuffer();
}
static GenericPointerData * Unk_021BFB0C = NULL;
void sub_0201CAF4 (const u8 param0)
{
Unk_021BFB0C = sub_02024220(param0, 0, 2, 0, 4, sub_0201CB1C);
}
static void sub_0201CB1C (void)
{
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 1);
G2_SetBG0Priority(1);
G3X_SetShading(GX_SHADING_TOON);
G3X_AntiAlias(1);
G3X_AlphaTest(0, 0);
G3X_AlphaBlend(1);
G3X_EdgeMarking(0);
G3X_SetFog(0, GX_FOGBLEND_COLOR_ALPHA, GX_FOGSLOPE_0x8000, 0);
G3X_SetClearColor(GX_RGB(0, 0, 0), 0, 0x7fff, 63, 0);
G3_ViewPort(0, 0, 255, 191);
}
void sub_0201CBA0 (void)
{
sub_020242C4(Unk_021BFB0C);
}
BOOL sub_0201CBB0 (void * param0, NNSG3dResTex * param1)
{
NNSG3dResMdlSet * v0 = NNS_G3dGetMdlSet((NNSG3dResFileHeader *)param0);
NNS_G3D_NULL_ASSERT(v0);
if (param1) {
BOOL v1;
v1 = NNS_G3dBindMdlSet(v0, param1);
return 1;
}
return 0;
}
BOOL sub_0201CBCC (NNSG3dResTex * param0)
{
if (param0 == NULL) {
return 0;
}
param0->texInfo.vramKey = 0;
{
u32 v0, v1, v2;
BOOL v3 = 1;
BOOL v4 = 1;
BOOL v5 = 1;
NNSG3dTexKey v6;
NNSG3dTexKey v7;
NNSG3dPlttKey v8;
if (param0) {
v0 = NNS_G3dTexGetRequiredSize(param0);
v1 = NNS_G3dTex4x4GetRequiredSize(param0);
v2 = NNS_G3dPlttGetRequiredSize(param0);
if (v0 > 0) {
v6 = NNS_GfdAllocTexVram(v0, 0, 0);
if (v6 == NNS_GFD_ALLOC_ERROR_TEXKEY) {
v3 = 0;
}
} else {
v6 = 0;
}
if (v1 > 0) {
v7 = NNS_GfdAllocTexVram(v1, 1, 0);
if (v7 == NNS_GFD_ALLOC_ERROR_TEXKEY) {
v4 = 0;
}
} else {
v7 = 0;
}
if (v2 > 0) {
v8 = NNS_GfdAllocPlttVram(v2, param0->tex4x4Info.flag & NNS_G3D_RESPLTT_USEPLTT4, 0);
if (v8 == NNS_GFD_ALLOC_ERROR_PLTTKEY) {
v5 = 0;
}
} else {
v8 = 0;
}
if (!v3) {
int v9;
v9 = NNS_GfdFreeTexVram(v6);
GF_ASSERT(!v9);
return 0;
}
if (!v4) {
int v10;
v10 = NNS_GfdFreeTexVram(v7);
GF_ASSERT(!v10);
return 0;
}
if (!v5) {
int v11;
v11 = NNS_GfdFreePlttVram(v8);
GF_ASSERT(!v11);
return 0;
}
NNS_G3dTexSetTexKey(param0, v6, v7);
NNS_G3dPlttSetPlttKey(param0, v8);
DC_FlushRange(param0, param0->header.size);
NNS_G3dTexLoad(param0, 1);
NNS_G3dPlttLoad(param0, 1);
}
}
return 1;
}

View File

@ -13,7 +13,7 @@
#include "overlay005/struct_ov5_021EDDAC.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201DD00.h"
#include "unk_02020AEC.h"
#include "unk_0202414C.h"
@ -321,7 +321,7 @@ static void sub_02020DA8 (UnkStruct_02020C44 * param0)
v3 = &v2;
}
sub_0201CA74(&v0->unk_30, &v0->unk_00, v3, &v0->unk_0C);
Easy3D_DrawRenderObj(&v0->unk_30, &v0->unk_00, v3, &v0->unk_0C);
sub_0202187C(v0);
}

View File

@ -16,7 +16,7 @@
#include "overlay005/map_object_anim_cmd.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201CED8.h"
#include "savedata_misc.h"
#include "unk_02027B70.h"
@ -132,7 +132,7 @@ static void sub_02055D14 (FieldSystem * fieldSystem, UnkStruct_02055CBC * param1
param1->unk_60 = Heap_AllocFromHeap(param1->unk_00, v1);
ov5_021DF5B4(v0, 17, param1->unk_60);
sub_0201CA3C(&param1->unk_08, &param1->unk_5C, &param1->unk_60);
Easy3D_InitRenderObjFromResource(&param1->unk_08, &param1->unk_5C, &param1->unk_60);
}
static void sub_02055D48 (UnkStruct_02055CBC * param0)

View File

@ -12,7 +12,7 @@
#include "unk_02006E3C.h"
#include "sys_task.h"
#include "heap.h"
#include "unk_0201C970.h"
#include "easy3d.h"
#include "unk_0201E190.h"
#include "unk_02073838.h"
@ -60,7 +60,7 @@ void sub_0207389C (UnkStruct_02073838 * param0, u32 param1, NARC * param2, u32 p
void sub_020738C0 (UnkStruct_02073838 * param0)
{
sub_0201CBCC(param0->unk_10);
Easy3D_UploadTextureToVRAM(param0->unk_10);
NNS_G3dBindMdlSet(param0->unk_08, param0->unk_10);
param0->unk_00 = 1;
}
@ -309,7 +309,7 @@ void sub_02073B90 (UnkStruct_02073B50 * param0, UnkStruct_02073838 * param1, Unk
void sub_02073BA4 (UnkStruct_02073B50 * param0, const VecFx32 * param1, const VecFx32 * param2, const MtxFx33 * param3)
{
sub_0201CA74(&param0->unk_00, param1, param3, param2);
Easy3D_DrawRenderObj(&param0->unk_00, param1, param3, param2);
}
void sub_02073BB4 (UnkStruct_02073B50 * param0, const VecFx32 * param1)
@ -335,5 +335,5 @@ void sub_02073BF0 (UnkStruct_02073B50 * param0, const VecFx32 * param1, const Un
void sub_02073C1C (UnkStruct_02073B50 * param0, const VecFx32 * param1, const VecFx32 * param2, const MtxFx33 * param3)
{
sub_0201CAB0(&param0->unk_00, param1, param3, param2);
Easy3D_DrawRenderObjSimple(&param0->unk_00, param1, param3, param2);
}