Merge branch 'zeldaret:main' into d_menu

This commit is contained in:
Mattias Blum
2025-05-17 22:57:55 -04:00
committed by GitHub
115 changed files with 9204 additions and 3875 deletions
+2
View File
@@ -1,9 +1,11 @@
# https://clangd.llvm.org/config
CompileFlags:
Add: [
"-fdeclspec",
"-Wno-c++11-compat-deprecated-writable-strings",
"-Wno-undefined-inline",
"-Wno-multichar",
"-Wno-c++11-extensions",
"-Wsometimes-uninitialized",
"-Wlogical-op-parentheses",
"-Wbitwise-op-parentheses",
+1
View File
@@ -40,6 +40,7 @@ jobs:
run: |
python configure.py --map --version ${{ matrix.version }} \
--binutils /binutils --compilers /compilers
ninja diff
ninja all_source build/${{ matrix.version }}/progress.json \
build/${{ matrix.version }}/report.json
+5 -4
View File
@@ -152,7 +152,7 @@ if args.no_asm:
config.binutils_tag = "2.42-1"
config.compilers_tag = "20240706"
config.dtk_tag = "v1.4.1"
config.objdiff_tag = "v3.0.0-beta.5"
config.objdiff_tag = "v3.0.0-beta.6"
config.sjiswrap_tag = "v1.2.0"
config.wibo_tag = "0.6.11"
@@ -500,7 +500,7 @@ config.libs = [
Object(Matching, "d/d_cc_s.cpp"),
Object(Matching, "d/d_cc_uty.cpp"),
Object(NonMatching, "d/d_cam_param.cpp"),
Object(MatchingFor("GZLE01", "GZLP01"), "d/d_cam_type.cpp"),
Object(Matching, "d/d_cam_type.cpp"),
Object(Matching, "d/d_cam_style.cpp"),
Object(Matching, "d/d_cam_type2.cpp"),
Object(NonMatching, "d/d_ev_camera.cpp"),
@@ -1150,7 +1150,7 @@ config.libs = [
"gx",
[
Object(NonMatching, "dolphin/gx/GXInit.c", extra_cflags=["-opt nopeephole"]),
Object(NonMatching, "dolphin/gx/GXFifo.c"),
Object(Matching, "dolphin/gx/GXFifo.c"),
Object(NonMatching, "dolphin/gx/GXAttr.c"),
Object(NonMatching, "dolphin/gx/GXMisc.c"),
Object(NonMatching, "dolphin/gx/GXGeometry.c"),
@@ -1468,7 +1468,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_kantera"),
ActorRel(NonMatching, "d_a_kn"),
ActorRel(NonMatching, "d_a_kokiie"),
ActorRel(NonMatching, "d_a_ks"),
ActorRel(Matching, "d_a_ks", extra_cflags=["-sym off"]),
ActorRel(NonMatching, "d_a_kt"), # regalloc, weak func order
ActorRel(NonMatching, "d_a_mflft"),
ActorRel(NonMatching, "d_a_npc_cb1"),
@@ -1761,6 +1761,7 @@ out_dir = config.build_dir / version
# This generates the build steps needed for preprocessing
def emit_build_rule(asset):
assert config.custom_build_steps is not None
steps = config.custom_build_steps.setdefault("pre-compile", [])
custom_data = asset.get("custom_data") or {}
+216 -5
View File
@@ -10,9 +10,10 @@ If you haven't already, you should first follow the instructions in the [readme]
2. [Setting up classes/structs](#setting-up-classesstructs)
3. [Decompiling functions](#decompiling-functions)
4. [Inline functions and how to read the debug maps](#inline-functions-and-how-to-read-the-debug-maps)
5. [Fixing minor nonmatching issues](#fixing-minor-nonmatching-issues)
6. [Linking a 100% matching object](#linking-a-100-matching-object)
7. [Documentation and naming](#documentation-and-naming)
5. [Recognizing switch statements](#recognizing-switch-statements)
6. [Fixing minor nonmatching issues](#fixing-minor-nonmatching-issues)
7. [Linking a 100% matching object](#linking-a-100-matching-object)
8. [Documentation and naming](#documentation-and-naming)
## Choosing an object to decompile
@@ -210,7 +211,7 @@ void daWall_c::set_se() {
}
```
That does match in this case (it won't always), but we can improve it by checking this function in the debug map for this actor. Copy paste the function's *mangled* name (the last part of the comment after .text, e.g. `set_se__8daWall_cFv`) and Ctrl+F for it in the `D.map` for your actor.
That does match in this case (it won't always), but we can improve it by checking this function in the debug map for this actor. Copy paste the function's *mangled* name (the last part of the comment after .text, e.g. `set_se__8daWall_cFv`) and `Ctrl+F` for it in the `D.map` for your actor.
You should see something along these lines:
```
@@ -302,6 +303,216 @@ Specifically, inlines at the same depth/indentation as each other in the linker
This doesn't tell us as much as the real linker trees, and is based on guesswork, but going through this process can sometimes help you to determine what inlines you should be using where.
## Recognizing switch statements
The way that switch statements get compiled into assembly is not always obvious, and you usually can't rely on Ghidra to decompile them properly either. So we'll go over some things to watch out for that can indicate when a switch should be used.
The compiler can choose to compile a switch statement in two possible ways: As a tree of comparisons, or as a jump table.
We'll go over how to recognize what each of these types of switches looks like in both Ghidra and objdiff/assembly. We'll also cover how to use m2c to help decompile them, as m2c handles switches better than Ghidra.
### Comparison tree switches
The most common way for a switch to be compiled is as a tree of comparisons: `cmpwi`, `beq`, `bge`, `cmpwi`, etc, eventually ending in `b`, and then followed by the case blocks. Here's what an example with seven cases looks like in objdiff:
![A comparison tree switch in objdiff](images/objdiff_tree_switch.png)
The comparison tree starts at offset 4 in this function and ends at offset 48. The first case block starts at offset 4c, the second at offset 54, etc.
Be aware that Ghidra does not handle this type of switch statement very well. It sees the comparisons and assumes they are if/else statements instead of a switch. If you only looked at Ghidra, you probably wouldn't be able to tell this was a switch at all, and would be tempted to write it with if statements instead (which will not match):
![A comparison tree switch in Ghidra](images/ghidra_tree_switch.png)
Furthermore, note that Ghidra almost always displays the case blocks in the wrong order for this type of switch statement.
In this example, the return values in Ghidra are ordered like so: 3, 4, -1, 1, 0, 2, 5. The assembly in objdiff shows them as 0, 1, 5, 2, 3, 4, -1. You need to write the cases in the order shown by objdiff, not the order shown by Ghidra.
But decompiling switch statements with just Ghidra and objdiff can be difficult not only because Ghidra shows case blocks in the wrong order, but also because neither Ghidra nor objdiff show all of the case constants needed for the switch.
For example, the `return 4;` case block in the above function is reached only when `mAnswer` is equal to `5`, so you need to write `case 5:`. But the constant 5 is not shown anywhere in either Ghidra or objdiff, as the compiler optimized it into the tree as a comparison against 4 and a comparison against 6 instead.
But there's another decompiler you can use instead of Ghidra that handles switch statements better: [m2c](https://github.com/matt-kempster/m2c).
To decompile a switch with m2c, first open the `.s` assembly file for your TU. Then find the function that has the switch in it and copy the whole thing to your clipboard, starting with the `.fn` line and ending with the `.endfn` line for that function.
Next go to [this online version of m2c](https://simonsoftware.se/other/m2c.html) and paste the contents of your function into the assembly field. Switch the "Target arch, compiler, & language:" field to "PPC, MWCC, C++" and hit decompile.
m2c should give you output similar to this:
```c++
s32 getAnswer__10daSwTact_cFv(daSwTact_c *this) {
u8 temp_r0;
temp_r0 = this->unk2A4;
switch ((s32) temp_r0) { /* irregular */
case 0x0:
return 0;
case 0x1:
return 1;
case 0x2:
return 5;
case 0x3:
return 2;
case 0x4:
return 3;
case 0x5:
return 4;
default:
return -1;
}
}
```
m2c isn't aware of field names/types defined in Ghidra or the decomp, but other than that, its output is pretty close. For comparison, here is the same function when fully decompiled and matching:
```c++
/* 0000038C-00000410 .text getAnswer__10daSwTact_cFv */
s32 daSwTact_c::getAnswer() {
switch (mAnswer) {
case 0:
return 0;
case 1:
return 1;
case 2:
return 5;
case 3:
return 2;
case 4:
return 3;
case 5:
return 4;
case 0xFF:
default:
return -1;
}
}
```
One important detail in the above example is the `case 0xFF:`. Because this case leads to the same block as the default case, it has no functional effect on what the code does, and so m2c does not include it. However, if you don't include that useless case, the comparison tree will be missing some parts and the function will not match:
![A comparison tree missing a useless case label in objdiff](images/objdiff_tree_switch_useless.png)
If you run into a situation like this, try looking through values that are compared against in objdiff or Ghidra and adding them as cases above `default:` (or if no default label exists, just make them immediately `break;` without doing anything). Sometimes the value you need to add as a case will be plus or minus one compared to the actual value being compared against, so it may take some trial and error to find which specific cases are required to get the tree to generate correctly.
Also note that occasionally, you may run into a very small switch statement that only has a single case label (optionally plus the default label). In these cases, there will be no `bge` in the assembly, just `cmpwi`, `beq`, `b`. For example:
![A comparison tree switch in objdiff](images/objdiff_tree_switch_small.png)
Both Ghidra *and* m2c will decompile these as if statements, but if you try writing them like that you'll see that the code doesn't match as the compiler produces `cmpwi`, `bne` with no `beq` or `b`. Here is how the small switch above should be decompiled to match:
```c++
/* 8006C910-8006C948 .text keyCreate__12dDoor_key2_cFi */
BOOL dDoor_key2_c::keyCreate(int type) {
mbIsBossDoor = type;
switch (type) {
case 1: return keyCreate_Bkey();
default: return keyCreate_Nkey();
}
}
```
### Jump table switches
The other way the compiler may choose to compile a switch statement is as a jump table: `lis`, `addi`, `slwi`, `lwzx`, `mtcr`, `bctr`.
This type of switch first loads a table located in the .data section (`lis`, `addi`), indexes into it with a variable (`slwi`, `lwzx`), and then jumps to the address read from the table (`mtcr`, `bctr`).
Unlike comparison tree switches, Ghidra is able to correctly recognize jump table switches as being switches, and will show them as such. For example:
![A jump table switch in Ghidra](images/ghidra_jump_table_switch.png)
However, Ghidra still has the issue where it will show the case blocks out of order for this type of switch as well sometimes. The last 4 cases in the above example are not in the correct order and won't match when written like that.
You could write them in Ghidra's wrong order and then shuffle them around until they match in objdiff.
However, note that even if a function shows 100% matching in objdiff, it's possible that the contents of the jump table could still be wrong. You would need to look at the .data section in objdiff, as the mismatch won't be shown within the function itself in this situation.
Alternatively, we can use m2c for this type of switch statement as well, and it will decompile the cases in the proper order.
The process for decompiling jump table switches with m2c is similar to comparison tree switches, but there's an extra step required for m2c to find the jump table.
First open the assembly file and copy paste the function containing the switch into [m2c](https://simonsoftware.se/other/m2c.html) as mentioned earlier.
Next, find where the assembly loads the jump table. It will look something like `lis r5, "@7298"@ha` followed by `addi r5, r5, "@7298"@l`, but the number after the `@` will be different. `Ctrl+F` for that `@` + number in the assembly file to find the contents of the jump table. It will look similar to this:
```asm
.obj "@7298", local
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A48
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A58
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A78
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A48
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A88
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A98
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A58
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A58
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A68
.rel setAnmFromMsgTagSa__13daNpcPeople_cFi, .L_00007A58
.endobj "@7298"
```
Copy the table, and paste it at the top of "Assembly" field in m2c (above the function itself). Then, replace the compiler-generated name (e.g. `@7298`) with the name `jtbl` (both the ones inside the function and the one before jump table itself).
Finally, add a new line `.section .data` before the jump table, as well as a new line `.section .text` after the table, before the function. It will look like this:
![Jump table switch assembly for m2c](images/m2c_jump_table_switch.png)
Now you can click "Decompile" and m2c will decompile the switch statement with its cases in the proper order, like this:
```cpp
void setAnmFromMsgTagSa__13daNpcPeople_cFi(daNpcPeople_c *this, u32 arg0) {
switch (arg0) {
case 0:
case 3:
setAnmTbl__13daNpcPeople_cFP13sPeopleAnmDati(this, &@2100 + 0x490, 1);
return;
case 1:
case 6:
case 7:
case 9:
setAnmTbl__13daNpcPeople_cFP13sPeopleAnmDati(this, &@2100 + 0x494, 1);
return;
case 8:
setAnmTbl__13daNpcPeople_cFP13sPeopleAnmDati(this, &@2100 + 0x5D4, 1);
return;
case 2:
setAnmTbl__13daNpcPeople_cFP13sPeopleAnmDati(this, &@2100 + 0x5D8, 1);
return;
case 4:
setAnmTbl__13daNpcPeople_cFP13sPeopleAnmDati(this, &@2100 + 0x5DC, 1);
return;
case 5:
setAnmTbl__13daNpcPeople_cFP13sPeopleAnmDati(this, &@2100 + 0x5E0, 1);
/* fallthrough */
default:
return;
}
}
```
For comparison, here is how that switch statement should actually be decompiled:
```cpp
/* 00007A14-00007AB4 .text setAnmFromMsgTagSa__13daNpcPeople_cFi */
void daNpcPeople_c::setAnmFromMsgTagSa(int param_1) {
switch(param_1) {
case 0:
case 3:
setAnmTbl(l_npc_anm_wait, 1);
break;
case 1:
case 6:
case 7:
case 9:
setAnmTbl(l_npc_anm_talk, 1);
break;
case 8:
setAnmTbl(l_npc_anm_talk_sa, 1);
break;
case 2:
setAnmTbl(l_npc_anm_talk2_sa, 1);
break;
case 4:
setAnmTbl(l_npc_anm_talk3_sa, 1);
break;
case 5:
setAnmTbl(l_npc_anm_kiai_sa, 1);
break;
}
}
```
## Fixing minor nonmatching issues
Once you've gone through and decompiled every function in your chosen TU, you might have run into a few functions that you could only get *mostly* matching, falling short of showing a 100% match in objdiff.
@@ -377,7 +588,7 @@ Your web browser will be opened automatically, and you should see a blank page t
Switch from the "Source code" tab to the "Context" tab. Search through this tab for the specific function you had opened up. Cut (don't copy) this entire function out of the Context tab and paste it into the Source code tab. You also might need to go back to the Context tab and delete all the code that comes *after* the function you just cut in order for it to compile properly (don't touch the context that comes before it though).
If done correctly, the scratch should compile and show the same issue as you were seeing in objdiff. Save (Ctrl+S) the scratch. Now you can share this scratch's URL in the [tww-decomp-help](https://discord.com/channels/688807550715560050/1150077114347966545) channel of the ZeldaRET Discord server and ask for help.
If done correctly, the scratch should compile and show the same issue as you were seeing in objdiff. Save (`Ctrl+S`) the scratch. Now you can share this scratch's URL in the [tww-decomp-help](https://discord.com/channels/688807550715560050/1150077114347966545) channel of the ZeldaRET Discord server and ask for help.
Note that scratches only show functions, not data. So if all the functions match 100% but some data doesn't, you'll have to figure that out locally using objdiff.
Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

+6 -4
View File
@@ -34,6 +34,8 @@ STATIC_ASSERT(sizeof(JUTExternalFB) == 0x14);
#define JUT_PRINT_FLOAT 8
#define JUT_PRINT_STACK 16
typedef void (*JUTExceptionUserCallback)(OSError, OSContext*, u32, u32);
class JUTException : public JKRThread {
public:
enum EInfoPage {
@@ -79,8 +81,8 @@ public:
static void panic_f(char const*, int, char const*, ...);
static void setFPException(u32);
static bool searchPartialModule(u32, u32*, u32*, u32*, u32*);
static OSErrorHandler setPreUserCallback(OSErrorHandler);
static OSErrorHandler setPostUserCallback(OSErrorHandler);
static JUTExceptionUserCallback setPreUserCallback(JUTExceptionUserCallback);
static JUTExceptionUserCallback setPostUserCallback(JUTExceptionUserCallback);
static void appendMapFile(char const*);
static bool queryMapAddress(char*, u32, s32, u32*, u32*, char*, u32, bool, bool);
static bool queryMapAddress_single(char*, u32, s32, u32*, u32*, char*, u32, bool,
@@ -109,8 +111,8 @@ private:
static JSUList<JUTException::JUTExMapFile> sMapFileList;
static OSMessage sMessageBuffer[1];
static JUTException* sErrorManager;
static OSErrorHandler sPreUserCallback;
static OSErrorHandler sPostUserCallback;
static JUTExceptionUserCallback sPreUserCallback;
static JUTExceptionUserCallback sPostUserCallback;
static void* sConsoleBuffer;
static u32 sConsoleBufferSize;
static JUTConsole* sConsole;
+17 -3
View File
@@ -13,9 +13,15 @@ public:
const static cSAngle _90;
const static cSAngle _180;
const static cSAngle _270;
#ifdef __MWERKS__
cSAngle() {}
~cSAngle() {}
cSAngle(const cSAngle&);
#else
cSAngle() = default;
~cSAngle() = default;
cSAngle(const cSAngle&) = default;
#endif
cSAngle(s16);
cSAngle(float);
s16 Val() const { return mAngle; }
@@ -45,7 +51,9 @@ public:
bool operator<(const cSAngle& other) const { return mAngle < other.mAngle; }
bool operator>(const cSAngle& other) const { return mAngle > other.mAngle; }
operator s16() const { return mAngle; }
#ifdef __MWERKS__
void operator=(const cSAngle& other) { mAngle = other.mAngle; }
#endif
static inline cSAngle getMaxNegative() { return cSAngle((s16)-0x8000); }
inline void mirrorAtMaxNeg() { *this = cSAngle((s16)-0x8000) - *this; }
};
@@ -131,12 +139,18 @@ private:
cSAngle mInclination; // original: U
public:
cSGlobe() {};
#ifdef __MWERKS__
cSGlobe() {}
~cSGlobe() {}
cSGlobe(const cSGlobe&);
#else
cSGlobe() = default;
~cSGlobe() = default;
cSGlobe(const cSGlobe&) = default;
#endif
cSGlobe(float, short, short);
cSGlobe(float, const cSAngle&, const cSAngle&);
cSGlobe(const cXyz&);
~cSGlobe() {}
cSGlobe& Formal();
void Val(const cSGlobe&);
void Val(float, short, short);
@@ -154,6 +168,6 @@ public:
void Polar(cSPolar*) const;
cXyz Norm() const;
cSGlobe& Invert();
};
}; // Size: 0x8
#endif /* C_ANGLE_H */
+13 -3
View File
@@ -273,8 +273,18 @@ public:
/* 0xA4 */ int m_rootGrpIdx;
};
bool cBgW_CheckBGround(f32 ny);
bool cBgW_CheckBRoof(f32 ny);
bool cBgW_CheckBWall(f32 ny);
inline bool cBgW_CheckBGround(f32 ny) {
return ny >= 0.5f;
}
inline bool cBgW_CheckBRoof(f32 ny) {
return ny < (-4.0f / 5.0f);
}
inline bool cBgW_CheckBWall(float y) {
if (!cBgW_CheckBGround(y) && !cBgW_CheckBRoof(y))
return true;
return false;
}
#endif /* C_BG_W_H */
+12 -6
View File
@@ -18,18 +18,24 @@ struct cXyz : Vec {
static const cXyz BaseXZ;
static const cXyz BaseYZ;
static const cXyz BaseXYZ;
#ifdef __MWERKS__
cXyz() {}
~cXyz() {}
/* inlined */ cXyz() {}
cXyz(f32 pX, f32 pY, f32 pZ) {
x = pX;
y = pY;
z = pZ;
}
cXyz(const cXyz& vec) {
x = vec.x;
y = vec.y;
z = vec.z;
}
#else
cXyz() = default;
~cXyz() = default;
cXyz(const cXyz& vec) = default;
#endif
cXyz(f32 pX, f32 pY, f32 pZ) {
x = pX;
y = pY;
z = pZ;
}
cXyz(const Vec& vec) {
x = vec.x;
y = vec.y;
+4 -4
View File
@@ -17,7 +17,7 @@ public:
/* 0x007 */ u8 m007[0x008 - 0x007];
/* 0x008 */ f32 mYOffset;
/* 0x00C */ s8 m00C;
/* 0x00D */ s8 mState;
/* 0x00D */ s8 mMode;
/* 0x00E */ s16 mFreezeTimer;
/* 0x010 */ s16 mMoveDelayTimer;
/* 0x012 */ s16 mAngleY;
@@ -46,7 +46,7 @@ struct enemyfire {
public:
/* 0x000 */ fopAc_ac_c* mpActor;
/* 0x004 */ s16 mFireDuration;
/* 0x006 */ s8 mState;
/* 0x006 */ s8 mMode;
/* 0x007 */ u8 m007[0x008 - 0x007];
/* 0x008 */ s16 mFireTimer;
/* 0x00A */ u8 m00A[0x00C - 0x00A];
@@ -77,8 +77,8 @@ public:
};
/* 0x000 */ fopEn_enemy_c* mpEnemy;
/* 0x004 */ s16 m004;
/* 0x006 */ s16 mState;
/* 0x004 */ s16 mMode;
/* 0x006 */ s16 mAction;
/* 0x008 */ s16 mEnemyType;
/* 0x00A */ u8 m00A[0x00C - 0x00A];
/* 0x00C */ int mTimer;
+1 -1
View File
@@ -19,7 +19,7 @@ public:
/* 0x02C2 */ u8 mStartsInactive;
/* 0x02C3 */ u8 mSwitch;
/* 0x02C4 */ u8 mAction;
/* 0x02C5 */ u8 mState;
/* 0x02C5 */ u8 mMode;
/* 0x02C6 */ u8 mHugeKnockback;
/* 0x02C7 */ bool mbIsBodyBeingHit;
/* 0x02C8 */ s16 mCountDownTimers[4];
+1 -1
View File
@@ -21,7 +21,7 @@ public:
/* 0x2CA */ u8 mStartsInactive;
/* 0x2CB */ u8 mSwitch;
/* 0x2CC */ u8 mAction;
/* 0x2CD */ u8 mState;
/* 0x2CD */ u8 mMode;
/* 0x2CE */ u8 m2CE;
/* 0x2CF */ bool mbIsWeakBeingHit;
/* 0x2D0 */ bool mbNotInHomeRoom;
+5
View File
@@ -117,6 +117,11 @@ public:
/* 0x8AC */ ProcFunc_t mCurrentProc;
};
class daBoko_HIO_c {
public:
// Size 1 in retail, size 0x14 in debug.
};
class daBoko_HIO_c0 {
public:
static const s16 throw_timer;
+7
View File
@@ -9,6 +9,13 @@ class JPABaseEmitter;
class daDitem_c : public daItemBase_c {
public:
enum ArgFlag {
FLAG_UNK01 = 0x01,
FLAG_UNK02 = 0x02,
FLAG_UNK04 = 0x04,
FLAG_UNK08 = 0x08,
};
BOOL chkArgFlag(u8 flag) { return mArgFlag & flag; }
void clrFlag() { cLib_setBit(mFlag, (u8)0); }
void setOffsetPos(cXyz pos) { mOffsetPos = pos; }
+1 -1
View File
@@ -16,7 +16,7 @@ public:
/* 0x290 */ u8 m290[0x2AC - 0x290];
/* 0x2AC */ request_of_phase_process_class mPhs;
/* 0x2B4 */ mDoExt_McaMorf* mpMorf;
/* 0x2B8 */ u8 mState;
/* 0x2B8 */ u8 mMode;
/* 0x2B9 */ u8 m2B9[0x2BA - 0x2B9];
/* 0x2BA */ s16 mCountDownTimers[3];
/* 0x2C0 */ int mCurrBckIdx;
+2 -2
View File
@@ -30,8 +30,8 @@ public:
/* 0x2D1 */ u8 m2D1[0x2D4 - 0x2D1];
/* 0x2D4 */ dKy_tevstr_c mKenTevStr;
/* 0x384 */ s16 m384;
/* 0x386 */ s16 m386;
/* 0x388 */ s16 m388;
/* 0x386 */ s16 mAction;
/* 0x388 */ s16 mMode;
/* 0x38A */ s16 m38A;
/* 0x38C */ cXyz m38C;
/* 0x398 */ s16 m398;
+3 -1
View File
@@ -7,7 +7,9 @@ class gm_class : public fopEn_enemy_c {
public:
/* 0x2AC */ u8 m2AC[0x2CD - 0x2AC];
/* 0x2CD */ u8 m2CD;
/* 0x2CE */ u8 m2CE[0x3D0 - 0x2CE];
/* 0x2CE */ u8 m2CE[0x31E - 0x2CE];
/* 0x31E */ s16 m31E;
/* 0x320 */ u8 m320[0x3D0 - 0x320];
/* 0x3D0 */ f32 z;
/* 0x3D4 */ u8 m3D4[0x3DC - 0x3D4];
/* 0x3DC */ f32 m3DC;
+50 -4
View File
@@ -2,13 +2,59 @@
#define D_A_KS_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_bg_s_poly_info.h"
#include "c/c_damagereaction.h"
class mDoExt_McaMorf;
class mDoExt_brkAnm;
class mDoExt_btkAnm;
class daPy_lk_c;
class ks_class : public fopEn_enemy_c {
public:
/* 0x2AC */ u8 m2AC[0x44C - 0x2AC];
/* 0x44C */ cBgS_PolyInfo m44C;
/* 0x45C */ u8 m45C[0xC88 - 0x45C];
/* 0x2AC */ request_of_phase_process_class mPhs;
/* 0x2B4 */ mDoExt_McaMorf* mpBodyMorf;
/* 0x2B8 */ mDoExt_McaMorf* mpEyeMorf;
/* 0x2BC */ mDoExt_btkAnm* mpEyeBtkAnm;
/* 0x2C0 */ mDoExt_brkAnm* mpBodyBrkAnm;
/* 0x2C4 */ mDoExt_brkAnm* mpEyeBrkAnm;
/* 0x2C8 */ u8 m2C8;
/* 0x2C9 */ u8 m2C9;
/* 0x2CA */ u8 m2CA;
/* 0x2CB */ u8 mAction;
/* 0x2CC */ u8 mMode;
/* 0x2CD */ u8 m2CD;
/* 0x2CE */ u8 m2CE;
/* 0x2CF */ u8 m2CF;
/* 0x2D0 */ u8 m2D0;
/* 0x2D1 */ u8 m2D1;
/* 0x2D2 */ u8 m2D2;
/* 0x2D3 */ u8 m2D3;
/* 0x2D4 */ fpc_ProcID mGmID; // Mothula
/* 0x2D8 */ fpc_ProcID mKsID; // Morth
/* 0x2DC */ cXyz m2DC;
/* 0x2E8 */ s16 m2E8[4];
/* 0x2F0 */ s16 m2F0[5];
/* 0x2FA */ s16 m2FA;
/* 0x2FC */ s16 m2FC;
/* 0x2FE */ s16 m2FE;
/* 0x300 */ s16 m300;
/* 0x302 */ s16 m302;
/* 0x304 */ f32 m304;
/* 0x308 */ f32 m308;
/* 0x30C */ f32 m30C;
/* 0x310 */ f32 m310;
/* 0x314 */ f32 m314;
/* 0x318 */ f32 m318;
/* 0x31C */ f32 m31C;
/* 0x320 */ f32 m320;
/* 0x324 */ dBgS_AcchCir mAcchCir;
/* 0x364 */ dBgS_ObjAcch mAcch;
/* 0x528 */ MtxP m528;
/* 0x52C */ dPa_rippleEcallBack m52C;
/* 0x540 */ dCcD_Stts mStts;
/* 0x57C */ dCcD_Sph mSph;
/* 0x6A8 */ enemyice mEnemyIce;
/* 0xA60 */ enemyfire mEnemyFire;
};
#endif /* D_A_KS_H */
+1 -1
View File
@@ -26,7 +26,7 @@ public:
/* 0x308 */ cXyz mHomePos;
/* 0x314 */ s16 mTimer[3];
/* 0x31A */ s16 mAngleRoll;
/* 0x31C */ s8 mState;
/* 0x31C */ s8 mMode;
/* 0x31D */ u8 field_0x31d;
/* 0x31E */ bool mHitGround;
/* 0x31E */ u8 field_0x31f;
+3 -1
View File
@@ -11,7 +11,7 @@ public:
};
void getMiniGameRestArrow() {}
int getMiniGameRestArrow() { return 10 - mB78; }
void isAnm(signed char) {}
void modeProcInit(int) {}
@@ -128,6 +128,8 @@ public:
public:
/* Place member variables here */
/* 0x290 */ u8 m290[0xB78 - 0x290];
/* 0xB78 */ int mB78;
};
class daNpc_So_HIO_c {
+7 -4
View File
@@ -28,6 +28,7 @@ STATIC_ASSERT(sizeof(daPy_mtxFollowEcallBack_c) == 0x0C);
class daPy_demo_c {
public:
enum {
DEMO_UNK00_e = 0x00,
DEMO_UNK01_e = 0x01,
DEMO_UNK02_e = 0x02,
DEMO_UNK03_e = 0x03,
@@ -37,6 +38,7 @@ public:
DEMO_UNK08_e = 0x08,
DEMO_UNK09_e = 0x09,
DEMO_UNK0A_e = 0x0A,
DEMO_UNK0E_e = 0x0E,
DEMO_UNK0F_e = 0x0F,
DEMO_UNK10_e = 0x10,
DEMO_UNK11_e = 0x11,
@@ -51,8 +53,10 @@ public:
DEMO_UNK1F_e = 0x1F,
DEMO_UNK22_e = 0x22,
DEMO_UNK25_e = 0x25,
DEMO_UNK27_e = 0x27,
DEMO_UNK2A_e = 0x2A,
DEMO_UNK2B_e = 0x2B,
DEMO_UNK2C_e = 0x2C,
DEMO_UNK2F_e = 0x2F,
DEMO_UNK33_e = 0x33,
DEMO_UNK35_e = 0x35,
@@ -73,6 +77,7 @@ public:
void setDemoMode(u32 mode) { mDemoMode = mode; }
u32 getDemoMode() const { return mDemoMode; }
int getParam1() const { return mParam1; }
s16 getTimer() const { return mTimer; }
void setTimer(s16 time) { mTimer = time; }
void decTimer() { mTimer--; }
void setOriginalDemoType() { setDemoType(3); }
@@ -153,6 +158,7 @@ public:
daPyFlg1_FOREST_WATER_USE = 0x00020000,
daPyFlg1_UNK40000 = 0x00040000,
daPyFlg1_WATER_DROP = 0x00080000,
daPyFlg1_UNK100000 = 0x00100000,
daPyFlg1_UNK200000 = 0x00200000,
daPyFlg1_UNK800000 = 0x00800000,
daPyFlg1_UNK1000000 = 0x01000000,
@@ -463,6 +469,7 @@ public:
void offConfuse() { offNoResetFlg1(daPyFlg1_CONFUSE); }
bool checkConfuse() const { return checkNoResetFlg1(daPyFlg1_CONFUSE); }
bool checkFreezeState() const { return checkNoResetFlg1(daPyFlg1_FREEZE_STATE); }
bool checkUseArrowEffect() const { return checkNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT); }
void onUseArrowEffect() { onNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT); }
void offUseArrowEffect() { offNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT); }
void onLetterReadEyeMove() { onNoResetFlg1(daPyFlg1_LETTER_READ_EYE_MOVE); }
@@ -510,13 +517,9 @@ public:
void checkBowMiniGame() const {}
void checkSoupPowerUp() const {}
void checkSubjectAccept() const {}
void checkUseArrowEffect() const {}
void getRopeJumpLand() const {}
void checkRopeForceEnd() const {}
// This class's weak virtual functions tend to cause weak function ordering issues in TUs that use them.
// The proper way to match this is still unknown, so some of the definitions have been temporarily commented out
// here so that they can be fakematched instead.
virtual MtxP getLeftHandMatrix() = 0;
virtual MtxP getRightHandMatrix() = 0;
virtual f32 getGroundY() = 0;
+2 -1
View File
@@ -391,7 +391,8 @@ public:
class daPy_HIO_cutTurnR_c1 {
public:
/* 0x00 */ s16 field_0x0;
/* 0x00 */ u8 field_0x0;
/* 0x01 */ u8 field_0x1;
/* 0x02 */ s16 field_0x2;
/* 0x04 */ s16 field_0x4;
/* 0x06 */ s16 field_0x6;
+7 -7
View File
@@ -179,15 +179,15 @@ public:
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8);
void end();
~daPy_followEcallBack_c() {}
JPABaseEmitter* getEmitter() { return mpEmitter; }
void setPos(const cXyz* pos) { mPos = *pos; }
cXyz& getPos() { return mPos; }
void setPos(const cXyz* pos) { mPos = *pos; }
void setAngle(s16 x, s16 y, s16 z) { mAngle.set(x, y, z); }
/* 0x04 */ JPABaseEmitter* mpEmitter;
/* 0x08 */ cXyz mPos;
/* 0x14 */ csXyz mAngle;
/* 0x1A */ u8 field_0x1A[0x1C - 0x1A];
}; // Size: 0x1C
class daPy_waterDropEcallBack_c : public daPy_followEcallBack_c {
@@ -326,7 +326,7 @@ public:
/* 0x030 */ f32 field_0x030;
/* 0x034 */ dBgS_LinkGndChk field_0x034;
/* 0x088 */ Mtx field_0x088[3];
};
}; // Size: 0x118
struct daPy_aura_c {
public:
@@ -949,7 +949,7 @@ public:
BOOL checkUpperReadyAnime() const;
BOOL checkUpperReadyThrowAnime() const;
BOOL checkNoCollisionCorret();
void setDrawHandModel();
s32 setDrawHandModel();
void entryDLSetLight(J3DModel*, u32);
void updateDLSetLight(J3DModel*, u32);
void hideHatAndBackle(J3DMaterial*);
@@ -1011,7 +1011,7 @@ public:
BOOL checkNextActionFromButton();
void setShieldGuard();
BOOL checkItemModeActorPointer();
BOOL checkNextActionItemFly();
void checkNextActionItemFly();
BOOL checkNextMode(int);
BOOL checkIceSlipFall();
void setFrontWallType();
@@ -1191,7 +1191,7 @@ public:
void setSeAnime(daPy_anmHeap_c const*, J3DFrameCtrl*);
void initSeAnime();
void resetSeAnime();
void setMoveAnime(f32, f32, f32, daPy_ANM, daPy_ANM, int, f32);
int setMoveAnime(f32, f32, f32, daPy_ANM, daPy_ANM, int, f32);
BOOL setSingleMoveAnime(daPy_ANM, f32, f32, s16, f32);
BOOL setActAnimeUpper(u16, daPy_UPPER, f32, f32, s16, f32);
BOOL resetActAnimeUpper(daPy_UPPER, f32);
@@ -1403,7 +1403,7 @@ public:
f32 getCrawlMoveAnmSpeed();
f32 getCrawlMoveSpeed();
void setCrawlMoveDirectionArrow();
void changeCrawlAutoMoveProc(cXyz*);
BOOL changeCrawlAutoMoveProc(cXyz*);
int getCrawlMoveVec(cXyz*, cXyz*, cXyz*);
void crawlBgCheck(cXyz*, cXyz*);
BOOL checkCrawlSideWall(cXyz*, cXyz*, cXyz*, cXyz*, s16*, s16*);
+1 -1
View File
@@ -47,7 +47,7 @@ public:
/* 0x359 */ u8 mPathIndex;
/* 0x35A */ u8 m35A[0x366 - 0x35A];
/* 0x366 */ s16 mAction;
/* 0x368 */ s16 mState;
/* 0x368 */ s16 mMode;
/* 0x36A */ u8 m36A[0x36C - 0x36A];
/* 0x36C */ fpc_ProcID mJalhallaID;
/* 0x370 */ fpc_ProcID mKanteraID;
+3 -3
View File
@@ -95,7 +95,9 @@ public:
void setGetOffSecond() { mNextMode = MODE_GET_OFF_SECOND_e; }
void setCannon() { mNextMode = MODE_CANNON_e; }
void setCrane() { mNextMode = MODE_CRANE_e; }
void setStartModeWarp() { mNextMode = MODE_START_MODE_WARP_e; }
void setTactWarp() { mNextMode = MODE_TACT_WARP_e; }
void setStartModeThrow() { mNextMode = MODE_START_MODE_THROW_e; }
int getTactWarpPosNum() const { return mTactWarpPosNum; }
void setTactWarpPosNum(int num) { mTactWarpPosNum = num; }
@@ -150,15 +152,13 @@ public:
void onFantomGanonBattle() {}
//TODO: Is this right?
void onLinkSit() { onStateFlg(daSFLG_UNK4000000_e); }
void onSceneChange() {}
void onSceneChange() { onStateFlg(daSFLG_UNK20000000_e); }
void onShortHitFlg() {}
void onStateFlg(daSHIP_SFLG flag) { mStateFlag |= flag; }
void onTornadoFlg(u32 tornadoID) { mTornadoID = tornadoID; }
void onWhirlFlg(u32, s16) {}
void onWhirlFlgDirect(u32, s16) {}
void setAtnPos(const cXyz*) {}
void setStartModeThrow() {}
void setStartModeWarp() {}
BOOL bodyJointCallBack(int);
BOOL cannonJointCallBack(int);
+198 -40
View File
@@ -4,51 +4,209 @@
#include "dolphin/types.h"
#include "SSystem/SComponent/c_angle.h"
enum dCamStyle_e {
dCamStyle_NONE_e = -1,
/* 0x00 */ dCamStyle_NN00_e,
/* 0x01 */ dCamStyle_FN08_e,
/* 0x02 */ dCamStyle_PN05_e,
/* 0x03 */ dCamStyle_PN12_e,
/* 0x04 */ dCamStyle_EN00_e,
/* 0x05 */ dCamStyle_FN12_e,
/* 0x06 */ dCamStyle_TT01_e,
/* 0x07 */ dCamStyle_TT02_e,
/* 0x08 */ dCamStyle_TT03_e,
/* 0x09 */ dCamStyle_LA03_e,
/* 0x0A */ dCamStyle_LP01_e,
/* 0x0B */ dCamStyle_LA02_e,
/* 0x0C */ dCamStyle_FN13_e,
/* 0x0D */ dCamStyle_LH01_e,
/* 0x0E */ dCamStyle_LH02_e,
/* 0x0F */ dCamStyle_LB02_e,
/* 0x10 */ dCamStyle_LP02_e,
/* 0x11 */ dCamStyle_LP03_e,
/* 0x12 */ dCamStyle_LP04_e,
/* 0x13 */ dCamStyle_CC01_e,
/* 0x14 */ dCamStyle_CC02_e,
/* 0x15 */ dCamStyle_LL06_e,
/* 0x16 */ dCamStyle_LL08_e,
/* 0x17 */ dCamStyle_LL07_e,
/* 0x18 */ dCamStyle_LP10_e,
/* 0x19 */ dCamStyle_SN15_e,
/* 0x1A */ dCamStyle_BW07_e,
/* 0x1B */ dCamStyle_FN18_e,
/* 0x1C */ dCamStyle_JN05_e,
/* 0x1D */ dCamStyle_XN06_e,
/* 0x1E */ dCamStyle_LB01_e,
/* 0x1F */ dCamStyle_LA01_e,
/* 0x20 */ dCamStyle_BP07_e,
/* 0x21 */ dCamStyle_LW02_e,
/* 0x22 */ dCamStyle_HP16_e,
/* 0x23 */ dCamStyle_HN16_e,
/* 0x24 */ dCamStyle_BN07_e,
/* 0x25 */ dCamStyle_LP05_e,
/* 0x26 */ dCamStyle_LP06_e,
/* 0x27 */ dCamStyle_HN18_e,
/* 0x28 */ dCamStyle_FN25_e,
/* 0x29 */ dCamStyle_BP08_e,
/* 0x2A */ dCamStyle_BN08_e,
/* 0x2B */ dCamStyle_FN29_e,
/* 0x2C */ dCamStyle_SX01_e,
/* 0x2D */ dCamStyle_SY01_e,
/* 0x2E */ dCamStyle_SX02_e,
/* 0x2F */ dCamStyle_MM06_e,
/* 0x30 */ dCamStyle_MM05_e,
/* 0x31 */ dCamStyle_MM09_e,
/* 0x32 */ dCamStyle_MM04_e,
/* 0x33 */ dCamStyle_LN17_e,
/* 0x34 */ dCamStyle_QN07_e,
/* 0x35 */ dCamStyle_LE01_e,
/* 0x36 */ dCamStyle_LN01_e,
/* 0x37 */ dCamStyle_LW01_e,
/* 0x38 */ dCamStyle_GN01_e,
/* 0x39 */ dCamStyle_MM01_e,
#if VERSION == VERSION_JPN
dCamStyle_MM03_e,
#endif
/* Value comments below are for USA/PAL */
/* 0x3A */ dCamStyle_MM02_e,
/* 0x3B */ dCamStyle_MM10_e,
/* 0x3C */ dCamStyle_MM08_e,
/* 0x3D */ dCamStyle_MM83_e,
/* 0x3E */ dCamStyle_FP01_e,
/* 0x3F */ dCamStyle_ZZ00_e,
/* 0x40 */ dCamStyle_PN13_e,
/* 0x41 */ dCamStyle_FN82_e,
/* 0x42 */ dCamStyle_IN01_e,
/* 0x43 */ dCamStyle_IN02_e,
/* 0x44 */ dCamStyle_MM82_e,
/* 0x45 */ dCamStyle_LL11_e,
/* 0x46 */ dCamStyle_LL01_e,
/* 0x47 */ dCamStyle_LL02_e,
/* 0x48 */ dCamStyle_LL03_e,
/* 0x49 */ dCamStyle_LL04_e,
/* 0x4A */ dCamStyle_LL05_e,
/* 0x4B */ dCamStyle_LL10_e,
/* 0x4C */ dCamStyle_LL09_e,
/* 0x4D */ dCamStyle_LL12_e,
/* 0x4E */ dCamStyle_LL13_e,
/* 0x4F */ dCamStyle_LL14_e,
/* 0x50 */ dCamStyle_LL15_e,
/* 0x51 */ dCamStyle_LL16_e,
/* 0x52 */ dCamStyle_LL82_e,
/* 0x53 */ dCamStyle_FN01_e,
/* 0x54 */ dCamStyle_FN02_e,
/* 0x55 */ dCamStyle_FN03_e,
/* 0x56 */ dCamStyle_FN04_e,
/* 0x57 */ dCamStyle_FN06_e,
/* 0x58 */ dCamStyle_FN09_e,
/* 0x59 */ dCamStyle_FN07_e,
/* 0x5A */ dCamStyle_FN10_e,
/* 0x5B */ dCamStyle_FN14_e,
/* 0x5C */ dCamStyle_FN15_e,
/* 0x5D */ dCamStyle_FN17_e,
/* 0x5E */ dCamStyle_FN20_e,
/* 0x5F */ dCamStyle_FN21_e,
/* 0x60 */ dCamStyle_FN22_e,
/* 0x61 */ dCamStyle_FN23_e,
/* 0x62 */ dCamStyle_FN24_e,
/* 0x63 */ dCamStyle_FN26_e,
/* 0x64 */ dCamStyle_FN27_e,
/* 0x65 */ dCamStyle_FN28_e,
/* 0x66 */ dCamStyle_FN30_e,
/* 0x67 */ dCamStyle_FN31_e,
/* 0x68 */ dCamStyle_FN32_e,
/* 0x69 */ dCamStyle_FN33_e,
/* 0x6A */ dCamStyle_FN34_e,
/* 0x6B */ dCamStyle_FN35_e,
/* 0x6C */ dCamStyle_LL17_e,
/* 0x6D */ dCamStyle_FN37_e,
#if VERSION == VERSION_JPN
dCamStyle_FN38_e,
#endif
/* 0x6E */ dCamStyle_BE08_e,
/* 0x6F */ dCamStyle_BE07_e,
/* 0x70 */ dCamStyle_TT04_e,
/* 0x71 */ dCamStyle_FP38_e,
/* 0x72 */ dCamStyle_FN39_e,
/* 0x73 */ dCamStyle_MM16_e,
/* 0x74 */ dCamStyle_MM14_e,
/* 0x75 */ dCamStyle_MM15_e,
/* 0x76 */ dCamStyle_MM07_e,
/* 0x77 */ dCamStyle_FN81_e,
/* 0x78 */ dCamStyle_FN40_e,
/* 0x79 */ dCamStyle_FN41_e,
/* 0x7A */ dCamStyle_FN19_e,
/* 0x7B */ dCamStyle_LL81_e,
/* 0x7C */ dCamStyle_DD01_e,
/* 0x7D */ dCamStyle_MM19_e,
/* 0x7E */ dCamStyle_DD02_e,
/* 0x7F */ dCamStyle_FN42_e,
/* 0x80 */ dCamStyle_IN03_e,
/* 0x81 */ dCamStyle_FN43_e,
/* 0x82 */ dCamStyle_FN11_e,
/* 0x83 */ dCamStyle_MM21_e,
/* 0x84 */ dCamStyle_MM20_e,
/* 0x85 */ dCamStyle_FN05_e,
/* 0x86 */ dCamStyle_FN36_e,
/* 0x87 */ dCamStyle_MM81_e,
/* 0x88 */ dCamStyle_SS01_e,
/* 0x89 */ dCamStyle_LL18_e,
/* 0x8A */ dCamStyle_DD04_e,
/* 0x8B */ dCamStyle_MM22_e,
/* 0x8C */ dCamStyle_MM18_e,
/* 0x8D */ dCamStyle_MM17_e,
#if VERSION != VERSION_JPN
/* 0x8E */ dCamStyle_MM03_e,
/* 0x8F */ dCamStyle_MM23_e,
/* 0x90 */ dCamStyle_FN38_e,
#endif
};
// Array indexes, do not change values
enum dCamStyleParam_e {
dCamStyleParam_UNK0 = 0,
dCamStyleParam_UNK1 = 1,
dCamStyleParam_UNK2 = 2,
dCamStyleParam_UNK3 = 3,
dCamStyleParam_UNK4 = 4,
dCamStyleParam_CENTER_HEIGHT_BASE = 5,
dCamStyleParam_CENTER_HEIGHT_UPPER = 6,
dCamStyleParam_CENTER_HEIGHT_LOWER = 7,
dCamStyleParam_LOCKON_CENTER_HEIGHT_MIN = 8,
dCamStyleParam_LOCKON_CENTER_HEIGHT_MAX = 9,
dCamStyleParam_UNK10 = 10,
dCamStyleParam_UNK11 = 11,
dCamStyleParam_UNK12 = 12,
dCamStyleParam_UNK13 = 13,
dCamStyleParam_UNK14 = 14,
dCamStyleParam_UNK15 = 15,
dCamStyleParam_UNK16 = 16,
dCamStyleParam_UNK17 = 17,
dCamStyleParam_LOCKON_LATITUDE_MIN = 18,
dCamStyleParam_LOCKON_LATITUDE_MAX = 19,
dCamStyleParam_UNK20 = 20,
dCamStyleParam_UNK21 = 21,
dCamStyleParam_UNK22 = 22,
dCamStyleParam_LOCKON_LONGITUDE_MIN = 23,
dCamStyleParam_LOCKON_LONGITUDE_MAX = 24,
dCamStyleParam_FOVY_BASE = 25,
dCamStyleParam_FOVY_UPPER = 26,
dCamStyleParam_FOVY_LOWER = 27,
dCamStyleParam_LOCKON_FOVY_MIN = 28,
dCamStyleParam_LOCKON_FOVY_MAX = 29,
/* 0x00 */ dCamStyleParam_UNK0 = 0,
/* 0x01 */ dCamStyleParam_UNK1 = 1,
/* 0x02 */ dCamStyleParam_UNK2 = 2,
/* 0x03 */ dCamStyleParam_UNK3 = 3,
/* 0x04 */ dCamStyleParam_UNK4 = 4,
/* 0x05 */ dCamStyleParam_CENTER_HEIGHT_BASE = 5,
/* 0x06 */ dCamStyleParam_CENTER_HEIGHT_UPPER = 6,
/* 0x07 */ dCamStyleParam_CENTER_HEIGHT_LOWER = 7,
/* 0x08 */ dCamStyleParam_LOCKON_CENTER_HEIGHT_MIN = 8,
/* 0x09 */ dCamStyleParam_LOCKON_CENTER_HEIGHT_MAX = 9,
/* 0x0A */ dCamStyleParam_UNK10 = 10,
/* 0x0B */ dCamStyleParam_UNK11 = 11,
/* 0x0C */ dCamStyleParam_UNK12 = 12,
/* 0x0D */ dCamStyleParam_UNK13 = 13,
/* 0x0E */ dCamStyleParam_UNK14 = 14,
/* 0x0F */ dCamStyleParam_UNK15 = 15,
/* 0x10 */ dCamStyleParam_UNK16 = 16,
/* 0x11 */ dCamStyleParam_UNK17 = 17,
/* 0x12 */ dCamStyleParam_LOCKON_LATITUDE_MIN = 18,
/* 0x13 */ dCamStyleParam_LOCKON_LATITUDE_MAX = 19,
/* 0x14 */ dCamStyleParam_UNK20 = 20,
/* 0x15 */ dCamStyleParam_UNK21 = 21,
/* 0x16 */ dCamStyleParam_UNK22 = 22,
/* 0x17 */ dCamStyleParam_LOCKON_LONGITUDE_MIN = 23,
/* 0x18 */ dCamStyleParam_LOCKON_LONGITUDE_MAX = 24,
/* 0x19 */ dCamStyleParam_FOVY_BASE = 25,
/* 0x1A */ dCamStyleParam_FOVY_UPPER = 26,
/* 0x1B */ dCamStyleParam_FOVY_LOWER = 27,
/* 0x1C */ dCamStyleParam_LOCKON_FOVY_MIN = 28,
/* 0x1D */ dCamStyleParam_LOCKON_FOVY_MAX = 29,
};
enum dCamParamFlag_e {
dCamParam_UNK001 = 0x001,
dCamParam_UNK002 = 0x002,
dCamParam_UNK004 = 0x004,
dCamParam_UNK010 = 0x010,
dCamParam_UNK020 = 0x020,
dCamParam_UNK040 = 0x040,
dCamParam_UNK080 = 0x080,
dCamParam_UNK100 = 0x100,
dCamParam_UNK200 = 0x200,
dCamParam_UNK400 = 0x400,
dCamPrmFlg_UNK001 = 0x001,
dCamPrmFlg_UNK002 = 0x002,
dCamPrmFlg_UNK004 = 0x004,
dCamPrmFlg_UNK010 = 0x010,
dCamPrmFlg_UNK020 = 0x020,
dCamPrmFlg_UNK040 = 0x040,
dCamPrmFlg_UNK080 = 0x080,
dCamPrmFlg_UNK100 = 0x100,
dCamPrmFlg_UNK200 = 0x200,
dCamPrmFlg_UNK400 = 0x400,
};
struct dCamera__Style {
+65 -36
View File
@@ -27,7 +27,7 @@ struct dCamera__EventParam {
struct dCamera__Type {
/* 0x00 */ char name[24];
/* 0x18 */ s16 mStyles[2][10];
/* 0x18 */ s16 mStyles[20];
}; // Size: 0x40
struct dCamera_event_data {
@@ -260,41 +260,70 @@ public:
/* 0x364 */ int m364;
/* 0x368 */ f32 m368;
/* 0x36C */ cXyz m36C;
/* 0x378 */ int m378;
/* 0x37C */ u8 m37C; // `CalcSubjectAngle` suggests this should be u8 but `followCamera` suggests it should be int
/* 0x37D */ u8 m37D; // The fact that this a referenced in `CalcSubjectAngle` suggests m37C can't be an int?
/* 0x37E */ s16 m37E;
/* 0x380 */ int m380;
/* 0x384 */ f32 m384;
/* 0x388 */ f32 m388; // `CalcSubjectAngle` suggests this should be a float but `followCamera` suggests it should be int
/* 0x38C */ f32 m38C; // Similar issue for 38C
/* 0x390 */ s16 m390;
/* 0x392 */ s16 m392;
/* 0x394 */ f32 m394;
/* 0x398 */ f32 m398;
/* 0x39C */ f32 m39C;
/* 0x3A0 */ f32 m3A0;
/* 0x3A4 */ f32 m3A4;
/* 0x3A8 */ f32 m3A8;
/* 0x3AC */ f32 m3AC;
/* 0x3B0 */ f32 m3B0;
/* 0x3B4 */ int m3B4;
/* 0x3B8 */ cSAngle m3B8; // `CalcSubjectAngle` thinks this is a cSAngle but `followCamera` thinks its a float (could also be cSGlobe since m3BA is a cSAngle and m3BC is a float)
/* 0x3BA */ cSAngle m3BA;
/* 0x3BC */ f32 m3BC;
/* 0x3C0 */ cXyz m3C0;
/* 0x3CC */ cXyz m3CC;
/* 0x3D8 */ u8 m3D8;
/* 0x3D9 */ u8 m3D9;
/* 0x3DA */ u8 m3DA;
/* 0x3DB */ u8 m3DB;
/* 0x3DC */ f32 m3DC;
/* 0x3E0 */ f32 m3E0;
/* 0x3E4 */ f32 m3E4;
/* 0x3E8 */ f32 m3E8;
/* 0x3EC */ f32 m3EC;
/* 0x3F0 */ f32 m3F0;
/* 0x3F4 */ u8 m3F4[0x3F8 - 0x3F4];
/* 0x314 */ union Work {
struct {
/* 0x378 */ int m378;
/* 0x37C */ int m37C;
/* 0x380 */ int m380;
/* 0x384 */ f32 m384;
/* 0x388 */ int m388;
/* 0x38C */ int m38C;
/* 0x390 */ s16 m390;
/* 0x392 */ s16 m392;
/* 0x394 */ f32 m394;
/* 0x398 */ f32 m398;
/* 0x39C */ f32 m39C;
/* 0x3A0 */ f32 m3A0;
/* 0x3A4 */ f32 m3A4;
/* 0x3A8 */ f32 m3A8;
/* 0x3AC */ f32 m3AC;
/* 0x3B0 */ f32 m3B0;
/* 0x3B4 */ int m3B4;
/* 0x3B8 */ f32 m3B8;
/* 0x3BC */ f32 m3BC;
/* 0x3C0 */ cXyz m3C0;
/* 0x3CC */ cXyz m3CC;
/* 0x3D8 */ u8 m3D8;
/* 0x3D9 */ u8 m3D9;
/* 0x3DA */ u8 m3DA;
/* 0x3DB */ u8 m3DB;
/* 0x3DC */ f32 m3DC;
/* 0x3E0 */ f32 m3E0;
/* 0x3E4 */ f32 m3E4;
/* 0x3E8 */ f32 m3E8;
/* 0x3EC */ f32 m3EC;
/* 0x3F0 */ f32 m3F0;
/* 0x3F4 */ u8 m3F4[0x3F8 - 0x3F4];
} follow;
struct {
/* 0x378 */ int m378;
/* 0x37C */ u8 m37C[0x380 - 0x37C];
/* 0x380 */ int m380;
/* 0x384 */ f32 m384;
/* 0x388 */ int m388;
/* 0x38C */ u8 m38C;
/* 0x390 */ cXyz m390;
/* 0x39C */ u8 m39C;
/* 0x3A0 */ f32 m3A0;
/* 0x3A4 */ f32 m3A4;
/* 0x3A8 */ cSGlobe m3A8;
/* 0x3B0 */ f32 m3B0;
/* 0x3B4 */ f32 m3B4;
/* 0x3B8 */ f32 m3B8;
} lockon;
struct {
/* 0x378 */ int m378;
/* 0x37C */ u8 m37C;
/* 0x37D */ u8 m37D;
/* 0x380 */ int m380;
/* 0x384 */ f32 m384;
/* 0x388 */ f32 m388;
/* 0x38C */ f32 m38C;
/* 0x390 */ u8 m390[0x3B8 - 0x390];
/* 0x3B8 */ cSAngle m3B8;
/* 0x3BA */ cSAngle m3BA;
} subject;
} mWork;
/* 0x3F8 */ dCamera_event_data mEventData;
/* 0x50C */ u32 mEventFlags;
/* 0x510 */ int mCurStyle;
-12
View File
@@ -98,18 +98,6 @@ enum daPy__PlayerStatus1 {
daPyStts1_UNK20000_e = 0x00020000,
daPyStts1_UNK40000_e = 0x00040000,
daPyStts1_UNK80000_e = 0x00080000,
daPyStts1_UNK100000_e = 0x00100000,
daPyStts1_UNK200000_e = 0x00200000,
daPyStts1_UNK400000_e = 0x00400000,
daPyStts1_UNK800000_e = 0x00800000,
daPyStts1_UNK1000000_e = 0x01000000,
daPyStts1_UNK2000000_e = 0x02000000,
daPyStts1_UNK4000000_e = 0x04000000,
daPyStts1_UNK8000000_e = 0x08000000,
daPyStts1_UNK10000000_e = 0x10000000,
daPyStts1_UNK20000000_e = 0x20000000,
daPyStts1_UNK40000000_e = 0x40000000,
daPyStts1_UNK80000000_e = 0x80000000,
};
class __d_timer_info_c {
+9 -6
View File
@@ -310,16 +310,19 @@ public:
virtual void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8);
void end();
void getAlpha() {}
void remove() {}
void setAlpha(u8) {}
void setPosArray(cXyz*, s16) {}
u8 getAlpha() { return mAlpha; }
void setAlpha(u8 alpha) { mAlpha = alpha;}
void remove() { end(); }
void setPosArray(cXyz* pos_array, s16 param_2) {
mPosArray = pos_array;
field_0x6 = param_2;
}
public:
/* 0x04 */ u8 field_0x4;
/* 0x04 */ u8 mAlpha;
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u16 field_0x6;
/* 0x08 */ u8 field_0x8[0xC - 0x08];
/* 0x08 */ cXyz* mPosArray;
/* 0x0C */ JPABaseEmitter* mpBaseEmitter;
}; // Size: 0x10
+1 -1
View File
@@ -184,7 +184,7 @@ enum {
/* 0xB0 */ DSNAP_TYPE_UNKB0,
/* 0xB1 */ DSNAP_TYPE_UNKB1,
/* 0xB2 */ DSNAP_TYPE_UNKB2,
/* 0xB3 */ DSNAP_TYPE_UNKB3,
/* 0xB3 */ DSNAP_TYPE_KS,
/* 0xB4 */ DSNAP_TYPE_UNKB4,
/* 0xB5 */ DSNAP_TYPE_UNKB5,
/* 0xB6 */ DSNAP_TYPE_AM2,
+2
View File
@@ -1,6 +1,7 @@
#ifndef D_D_STAGE_H
#define D_D_STAGE_H
#include "SSystem/SComponent/c_bg_s_poly_info.h"
#include "SSystem/SComponent/c_lib.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
@@ -1115,6 +1116,7 @@ inline f32 dStage_FileList_dt_SeaLevel(dStage_FileList_dt_c* i_fili) {
}
bool dStage_chkPlayerId(int playerId, int room_no);
int dStage_changeSceneExitId(cBgS_PolyInfo& i_poly, f32 i_speed, u32 i_mode, s8 i_roomNo);
int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no);
void dStage_restartRoom(u32 roomParam, u32 mode);
void dStage_turnRestart();
+3 -3
View File
@@ -24,9 +24,9 @@ GXBreakPtCallback GXSetBreakPtCallback(GXBreakPtCallback cb);
void __GXFifoInit(void);
void __GXFifoReadEnable(void);
void __GXFifoReadDisable(void);
void __GXFifoLink(u8);
void __GXWriteFifoIntEnable(u32 p1, u32 p2);
void __GXWriteFifoIntReset(u32 p1, u32 p2);
void __GXFifoLink(u8 en);
void __GXWriteFifoIntEnable(u8 hiWatermarkEn, u8 loWatermarkEn);
void __GXWriteFifoIntReset(u8 hiWatermarkClr, u8 loWatermarkClr);
void __GXCleanGPFifo(void);
OSThread* GXSetCurrentGXThread(void);
OSThread* GXGetCurrentGXThread(void);
+1 -3
View File
@@ -53,9 +53,7 @@ typedef enum {
typedef u8 __OSException;
typedef void (*OSErrorHandler)(OSError error, OSContext* context, u32, u32);
// Using this type for the C++ handlers makes stuff not match
typedef void (*OSErrorHandlerEx)(OSError error, OSContext* context, u32, u32, ...);
typedef void (*OSErrorHandler)(OSError error, OSContext* context, ...);
OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler);
void __OSUnhandledException(__OSException exception, OSContext* context, u32 dsisr, u32 dar);
-1
View File
@@ -109,7 +109,6 @@ s32 OSGetThreadPriority(OSThread* thread);
static s32 CheckThreadQueue(OSThreadQueue* thread);
s32 OSCheckActiveThreads(void);
static void OSClearStack(u8 value);
extern u8 data_804516D0[8];
#ifdef __cplusplus
};
+4 -4
View File
@@ -31,12 +31,12 @@ extern void InitMetroTRK_BBA(void);
extern void OSInit(void);
extern void OSResetSystem(BOOL reset, u32 resetCode, BOOL forceMenu);
SECTION_INIT extern void __check_pad3(void);
SECTION_INIT static void __check_pad3(void);
SECTION_INIT extern void __set_debug_bba(void);
SECTION_INIT extern u8 __get_debug_bba(void);
SECTION_INIT extern void __start(void);
SECTION_INIT extern void __init_registers(void);
SECTION_INIT extern void __init_data(void);
SECTION_INIT extern __declspec(weak) void __start(void);
SECTION_INIT static void __init_registers(void);
SECTION_INIT static void __init_data(void);
SECTION_INIT extern void __init_hardware(void);
SECTION_INIT extern void __flush_cache(void* addr, u32 size);
+14 -25
View File
@@ -227,55 +227,44 @@ class JntHit_c;
struct fopAc_cullSizeSphere {
public:
#ifdef __MWERKS__
/* 0x0 */ cXyz center;
/* 0xC */ f32 radius;
fopAc_cullSizeSphere() {}
~fopAc_cullSizeSphere() {}
#else
fopAc_cullSizeSphere() = default;
~fopAc_cullSizeSphere() = default;
#endif
fopAc_cullSizeSphere(cXyz p, f32 r) {
center = p;
radius = r;
}
~fopAc_cullSizeSphere() {}
#else
/* 0x0 */ Vec center;
/* 0xC */ f32 radius;
#endif
};
#ifdef __MWERKS__
#define fopAc_MakeCullSizeSphere(center, radius) fopAc_cullSizeSphere(center, radius)
#else
#define fopAc_MakeCullSizeSphere(center, radius) {(Vec)center, radius}
#endif
/* 0x0 */ cXyz center;
/* 0xC */ f32 radius;
};
struct fopAc_cullSizeBox {
public:
#ifdef __MWERKS__
fopAc_cullSizeBox() {}
~fopAc_cullSizeBox() {}
fopAc_cullSizeBox(const fopAc_cullSizeBox& box) {
min = box.min;
max = box.max;
}
#else
fopAc_cullSizeBox() = default;
~fopAc_cullSizeBox() = default;
fopAc_cullSizeBox(const fopAc_cullSizeBox& box) = default;
#endif
fopAc_cullSizeBox(cXyz min, cXyz max) {
this->min = min;
this->max = max;
}
~fopAc_cullSizeBox() {}
/* 0x0 */ cXyz min;
/* 0xC */ cXyz max;
#else
/* 0x0 */ Vec min;
/* 0xC */ Vec max;
#endif
};
#ifdef __MWERKS__
#define fopAc_MakeCullSizeBox(min, max) fopAc_cullSizeBox(min, max)
#else
#define fopAc_MakeCullSizeBox(min, max) {(Vec)min, (Vec)max}
#endif
class fopAc_ac_c : public leafdraw_class {
public:
/* 0x0C0 */ int actor_type;
+6 -15
View File
@@ -86,7 +86,7 @@ enum daItemAction_e {
};
enum daDisappearItemType_e {
daDisItem_NORMAL_e = 0,
daDisItem_IBALL_e = 0,
daDisItem_NONE1_e = 1,
daDisItem_HEART_CONTAINER_e = 2,
daDisItem_NONE3_e = 3,
@@ -94,7 +94,7 @@ enum daDisappearItemType_e {
daDisItem_HEART_e = 10,
daDisItem_MAGIC_e = 11,
daDisItem_ARROW_e = 12,
daDisItem_UNK13_e = 13,
daDisItem_NONE13_e = 13,
};
class l_HIO {
@@ -502,23 +502,11 @@ void fopAcM_DeleteHeap(fopAc_ac_c* p_actor);
bool fopAcM_entrySolidHeap(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback, u32 estimatedHeapSize);
inline void fopAcM_SetMin(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ) {
#ifdef __MWERKS__
p_actor->cull.box.min.set(minX, minY, minZ);
#else
p_actor->cull.box.min.x = minX;
p_actor->cull.box.min.y = minY;
p_actor->cull.box.min.z = minZ;
#endif
}
inline void fopAcM_SetMax(fopAc_ac_c* p_actor, f32 maxX, f32 maxY, f32 maxZ) {
#ifdef __MWERKS__
p_actor->cull.box.max.set(maxX, maxY, maxZ);
#else
p_actor->cull.box.max.x = maxX;
p_actor->cull.box.max.y = maxY;
p_actor->cull.box.max.z = maxZ;
#endif
}
void fopAcM_setCullSizeBox(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ, f32 maxX, f32 maxY,
@@ -552,6 +540,9 @@ s32 fopAcM_rollPlayerCrash(fopAc_ac_c* i_this, f32 distAdjust, u32 flag);
s32 fopAcM_checkCullingBox(Mtx, f32, f32, f32, f32, f32, f32);
s32 fopAcM_cullingCheck(fopAc_ac_c*);
s32 fopAcM_orderTalkEvent(fopAc_ac_c*, fopAc_ac_c*);
s32 fopAcM_orderTalkXBtnEvent(fopAc_ac_c* i_this, fopAc_ac_c* i_partner);
s32 fopAcM_orderTalkYBtnEvent(fopAc_ac_c* i_this, fopAc_ac_c* i_partner);
s32 fopAcM_orderTalkZBtnEvent(fopAc_ac_c* i_this, fopAc_ac_c* i_partner);
s32 fopAcM_orderZHintEvent(fopAc_ac_c*, fopAc_ac_c*);
s32 fopAcM_orderSpeakEvent(fopAc_ac_c* i_actor);
s32 fopAcM_orderDoorEvent(fopAc_ac_c*, fopAc_ac_c*);
@@ -615,7 +606,7 @@ BOOL stealItem_CB(void* actor);
fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 roomNo);
fpc_ProcID fopAcM_createDisappear(fopAc_ac_c* i_actor, cXyz* p_pos, u8 i_scale, u8 i_health = 0, u8 i_itemBitNo = -1);
fpc_ProcID fopAcM_createDisappear(fopAc_ac_c* i_actor, cXyz* p_pos, u8 i_scale, u8 i_dropType, u8 i_itemBitNo = -1);
void fopAcM_setCarryNow(fopAc_ac_c* i_this, BOOL stageLayer);
void fopAcM_cancelCarryNow(fopAc_ac_c* i_this);
s32 fopAcM_otoCheck(fopAc_ac_c*, f32);
-2
View File
@@ -34,6 +34,4 @@ s32 fpcPi_Handler(void);
s32 fpcPi_Init(process_priority_class* i_procPriority, void* pUserData, uint i_layer, u16 i_listID,
u16 i_priority);
extern s8 data_804505F0; // roomReadId
#endif
+4
View File
@@ -45,6 +45,10 @@ extern int __cntlzw(uint);
extern int __rlwimi(int, int, int, int, int);
extern void __dcbz(void*, int);
#ifndef __MWERKS__
extern void __sync();
#endif
#define VERSION_JPN 0
#define VERSION_USA 1
#define VERSION_PAL 2
@@ -431,7 +431,6 @@ u32 J3DMaterialFactory::calcSizeLockedMaterial(J3DMaterial* i_material, int i_id
J3DGXColor J3DMaterialFactory::newMatColor(int idx, int stage) const {
GXColor _ret = { 0xFF, 0xFF, 0xFF, 0xFF };
J3DGXColor ret(_ret);
J3DMaterialInitData* initData = &mpMaterialInitData[mpMaterialID[idx]];
u16 no = mpMaterialInitData[mpMaterialID[idx]].mMatColorIdx[stage];
if (no != 0xFFFF)
return mpMatColor[no];
@@ -461,7 +460,6 @@ J3DColorChan J3DMaterialFactory::newColorChan(int idx, int stage) const {
J3DGXColor J3DMaterialFactory::newAmbColor(int idx, int stage) const {
GXColor _ret = { 0x32, 0x32, 0x32, 0x32 };
J3DGXColor ret(_ret);
J3DMaterialInitData* initData = &mpMaterialInitData[mpMaterialID[idx]];
u16 no = mpMaterialInitData[mpMaterialID[idx]].mAmbColorIdx[stage];
if (no != 0xFFFF)
return mpAmbColor[no];
@@ -527,7 +525,6 @@ J3DTevOrder J3DMaterialFactory::newTevOrder(int idx, int stage) const {
J3DGXColorS10 J3DMaterialFactory::newTevColor(int idx, int stage) const {
GXColorS10 _ret = { 0x00, 0x00, 0x00, 0x00 };
J3DGXColorS10 ret(_ret);
J3DMaterialInitData* initData = &mpMaterialInitData[mpMaterialID[idx]];
u16 no = mpMaterialInitData[mpMaterialID[idx]].mTevColorIdx[stage];
if (no != 0xFFFF)
return mpTevColor[no];
@@ -539,7 +536,6 @@ J3DGXColorS10 J3DMaterialFactory::newTevColor(int idx, int stage) const {
J3DGXColor J3DMaterialFactory::newTevKColor(int idx, int stage) const {
GXColor _ret = { 0xFF, 0xFF, 0xFF, 0xFF };
J3DGXColor ret(_ret);
J3DMaterialInitData* initData = &mpMaterialInitData[mpMaterialID[idx]];
u16 no = mpMaterialInitData[mpMaterialID[idx]].mTevKColorIdx[stage];
if (no != 0xFFFF)
return mpTevKColor[no];
@@ -6,7 +6,6 @@
#include "JSystem/J3DGraphLoader/J3DMaterialFactory_v21.h"
#include "JSystem/J3DGraphLoader/J3DModelLoader.h"
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
#include "JSystem/JMath/JMath.h"
#include "JSystem/JSupport/JSupport.h"
/* 802F9A88-802F9C68 .text __ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21 */
@@ -172,7 +171,6 @@ J3DMaterial* J3DMaterialFactory_v21::create(J3DMaterial* i_material, int i_idx,
J3DGXColor J3DMaterialFactory_v21::newMatColor(int idx, int stage) const {
GXColor _ret = { 0xFF, 0xFF, 0xFF, 0xFF };
J3DGXColor ret(_ret);
J3DMaterialInitData_v21* initData = &mpMaterialInitData[mpMaterialID[idx]];
u16 no = mpMaterialInitData[mpMaterialID[idx]].mMatColorIdx[stage];
if (no != 0xFFFF)
return mpMatColor[no];
@@ -256,7 +254,6 @@ J3DTevOrder J3DMaterialFactory_v21::newTevOrder(int idx, int stage) const {
J3DGXColorS10 J3DMaterialFactory_v21::newTevColor(int idx, int stage) const {
GXColorS10 _ret = { 0x00, 0x00, 0x00, 0x00 };
J3DGXColorS10 ret(_ret);
J3DMaterialInitData_v21* initData = &mpMaterialInitData[mpMaterialID[idx]];
u16 no = mpMaterialInitData[mpMaterialID[idx]].mTevColorIdx[stage];
if (no != 0xFFFF)
return mpTevColor[no];
@@ -268,7 +265,6 @@ J3DGXColorS10 J3DMaterialFactory_v21::newTevColor(int idx, int stage) const {
J3DGXColor J3DMaterialFactory_v21::newTevKColor(int idx, int stage) const {
GXColor _ret = { 0xFF, 0xFF, 0xFF, 0xFF };
J3DGXColor ret(_ret);
J3DMaterialInitData_v21* initData = &mpMaterialInitData[mpMaterialID[idx]];
u16 no = mpMaterialInitData[mpMaterialID[idx]].mTevKColorIdx[stage];
if (no != 0xFFFF)
return mpTevKColor[no];
+14 -14
View File
@@ -17,7 +17,7 @@
#include "dolphin/vi/vi.h"
struct CallbackObject {
/* 0x00 */ OSErrorHandler callback;
/* 0x00 */ JUTExceptionUserCallback callback;
/* 0x04 */ u16 error;
/* 0x06 */ u16 pad_0x06;
/* 0x08 */ OSContext* context;
@@ -49,17 +49,17 @@ const char* JUTException::sCpuExpName[] = {
"FLOATING POINT",
};
JUTException* JUTException::sErrorManager;
OSErrorHandler JUTException::sPreUserCallback;
OSErrorHandler JUTException::sPostUserCallback;
JUTExceptionUserCallback JUTException::sPreUserCallback;
JUTExceptionUserCallback JUTException::sPostUserCallback;
/* 802C4AC8-802C4BAC .text __ct__12JUTExceptionFP14JUTDirectPrint */
JUTException::JUTException(JUTDirectPrint* directPrint) : JKRThread(0x4000, 0x10, 0) {
mDirectPrint = directPrint;
OSSetErrorHandler(EXCEPTION_DSI, errorHandler);
OSSetErrorHandler(EXCEPTION_ISI, errorHandler);
OSSetErrorHandler(EXCEPTION_PROGRAM, errorHandler);
OSSetErrorHandler(EXCEPTION_ALIGNMENT, errorHandler);
OSSetErrorHandler(EXCEPTION_MEMORY_PROTECTION, errorHandler);
OSSetErrorHandler(EXCEPTION_DSI, (OSErrorHandler)errorHandler);
OSSetErrorHandler(EXCEPTION_ISI, (OSErrorHandler)errorHandler);
OSSetErrorHandler(EXCEPTION_PROGRAM, (OSErrorHandler)errorHandler);
OSSetErrorHandler(EXCEPTION_ALIGNMENT, (OSErrorHandler)errorHandler);
OSSetErrorHandler(EXCEPTION_MEMORY_PROTECTION, (OSErrorHandler)errorHandler);
setFPException(0);
sPreUserCallback = NULL;
@@ -96,7 +96,7 @@ void* JUTException::run() {
while (true) {
OSReceiveMessage(&sMessageQueue, &message, OS_MESSAGE_BLOCK);
CallbackObject* cb = (CallbackObject*)message;
OSErrorHandler callback = cb->callback;
JUTExceptionUserCallback callback = cb->callback;
u16 error = cb->error;
OSContext* context = cb->context;
int r24 = cb->param_3;
@@ -214,7 +214,7 @@ void JUTException::errorHandler(OSError error, OSContext* context, u32 param_3,
void JUTException::setFPException(u32 fpscr_enable_bits) {
__OSFpscrEnableBits = fpscr_enable_bits;
if (fpscr_enable_bits) {
OSSetErrorHandler(EXCEPTION_FLOATING_POINT_EXCEPTION, errorHandler);
OSSetErrorHandler(EXCEPTION_FLOATING_POINT_EXCEPTION, (OSErrorHandler)errorHandler);
} else {
OSSetErrorHandler(EXCEPTION_FLOATING_POINT_EXCEPTION, NULL);
}
@@ -802,15 +802,15 @@ void JUTException::createFB() {
}
/* 802C6868-802C6878 .text setPreUserCallback__12JUTExceptionFPFUsP9OSContextUlUl_v */
OSErrorHandler JUTException::setPreUserCallback(OSErrorHandler callback) {
OSErrorHandler previous = sPreUserCallback;
JUTExceptionUserCallback JUTException::setPreUserCallback(JUTExceptionUserCallback callback) {
JUTExceptionUserCallback previous = sPreUserCallback;
sPreUserCallback = callback;
return previous;
}
/* 802C6878-802C6888 .text setPostUserCallback__12JUTExceptionFPFUsP9OSContextUlUl_v */
OSErrorHandler JUTException::setPostUserCallback(OSErrorHandler callback) {
OSErrorHandler previous = sPostUserCallback;
JUTExceptionUserCallback JUTException::setPostUserCallback(JUTExceptionUserCallback callback) {
JUTExceptionUserCallback previous = sPostUserCallback;
sPostUserCallback = callback;
return previous;
}
@@ -1,6 +1,7 @@
#ifndef _MSL_COMMON_ANSI_FP_H
#define _MSL_COMMON_ANSI_FP_H
#include "dolphin/types.h"
#include "float.h"
#define SIGDIGLEN 36
@@ -22,7 +23,7 @@ typedef struct decform {
short digits;
} decform;
/* void __ull2dec(decimal*, u64);
void __ull2dec(decimal*, u64);
void __timesdec(decimal*, const decimal*, const decimal*);
void __str2dec(decimal*, const char*, short);
void __two_exp(decimal*, s16);
@@ -31,6 +32,6 @@ BOOL __less_dec(const decimal*, const decimal*);
void __minus_dec(decimal*, const decimal*, const decimal*);
void __num2dec_internal(decimal*, f64);
void __num2dec(const decform*, f64, decimal*);
f64 __dec2num(const decimal*); */
f64 __dec2num(const decimal*);
#endif
#endif
@@ -8,6 +8,7 @@
#include "stdlib.h"
#include "string.h"
#include "wchar_io.h"
#include "ansi_fp.h"
#define TARGET_FLOAT_BITS 64
#define TARGET_FLOAT_BYTES (TARGET_FLOAT_BITS / 8)
@@ -40,6 +40,7 @@
*/
#include "fdlibm.h"
#include "math.h"
#ifdef __STDC__
static const double
@@ -140,4 +141,4 @@ double __ieee754_atan2(y, x) double y, x;
default: /* case 3 */
return (z - pi_lo) - pi; /* atan(-,-) */
}
}
}
@@ -33,6 +33,7 @@
*/
#include "fdlibm.h"
#include "math.h"
#ifdef __STDC__
static const double atanhi[] = {
@@ -140,4 +141,4 @@ double atan(x) double x;
z = atanhi[id] - ((x * (s1 + s2) - atanlo[id]) - x);
return (hx < 0) ? -z : z;
}
}
}
@@ -22,9 +22,11 @@ static int fragmentID = -2;
/* clang-format off */
static ASM char* GetR2() {
#ifdef __MWERKS__
nofralloc;
mr r3, r2
blr
#endif
}
/* clang-format on */
+4
View File
@@ -14,10 +14,12 @@ const cSAngle cSAngle::_90(static_cast<s16>(0x4000));
const cSAngle cSAngle::_180(static_cast<s16>(-0x8000));
const cSAngle cSAngle::_270(static_cast<s16>(-0x4000));
#ifdef __MWERKS__
/* 80253BB0-80253BE0 .text __ct__7cSAngleFRC7cSAngle */
cSAngle::cSAngle(const cSAngle& angle) {
Val(angle);
}
#endif
/* 80253BE0-80253C10 .text __ct__7cSAngleFs */
cSAngle::cSAngle(s16 angle) {
@@ -246,10 +248,12 @@ void cSPolar::Globe(cSGlobe* globe) const {
globe->Val(mRadial, 0x4000 - mAngle1.Val(), mAngle2.Val());
}
#ifdef __MWERKS__
/* 80254524-80254554 .text __ct__7cSGlobeFRC7cSGlobe */
cSGlobe::cSGlobe(const cSGlobe& other) {
Val(other);
}
#endif
/* 80254554-80254584 .text __ct__7cSGlobeFfss */
cSGlobe::cSGlobe(f32 f, s16 s1, s16 s2) {
-8
View File
@@ -138,14 +138,6 @@ void cBgW::BlckConnect(u16* rwg, int* prev, int i_no) {
pm_rwg[*prev].next = -1;
}
inline bool cBgW_CheckBGround(f32 ny) {
return ny >= 0.5f;
}
inline bool cBgW_CheckBRoof(f32 ny) {
return ny < (-4.0f / 5.0f);
}
/* 80247A24-80247BF8 .text ClassifyPlane__4cBgWFv */
void cBgW::ClassifyPlane() {
if (pm_vtx_tbl == NULL)
+14 -14
View File
@@ -175,7 +175,7 @@ BOOL enemy_ice(enemyice* ei) {
BOOL frozen = FALSE;
BOOL moveAndCollide = FALSE;
switch (ei->mState) {
switch (ei->mMode) {
case 0: // Not initialized
// Initialize the enemyice now.
ei->mStts.Init(250, 0xFF, ac);
@@ -192,7 +192,7 @@ BOOL enemy_ice(enemyice* ei) {
if (std::fabsf(ei->mYOffset) < 0.1f) {
ei->mYOffset = 80.0f;
}
ei->mState = 1;
ei->mMode = 1;
ei->mScaleY = 1.0f;
ei->mScaleXZ = 1.0f;
fopAcM_OnStatus(ac, fopAcStts_UNK8000000_e);
@@ -202,7 +202,7 @@ BOOL enemy_ice(enemyice* ei) {
// The enemy has signaled that it wants to be frozen for some length of time.
ei->mFreezeTimer = ei->mFreezeDuration;
ei->mFreezeDuration = 0;
ei->mState = 2;
ei->mMode = 2;
if (ei->m00C == 0) {
ei->mSpeed.y = 30.0f;
ei->mAngularVelY = (s16)cM_rndFX(3000.0f);
@@ -232,7 +232,7 @@ BOOL enemy_ice(enemyice* ei) {
ac->attention_info.distances[fopAc_Attn_TYPE_CARRY_e] = 0x12;
if (fopAcM_CheckStatus(ac, fopAcStts_CARRY_e)) {
cLib_offBit<u32>(ac->attention_info.flags, fopAc_Attn_ACTION_CARRY_e);
ei->mState = 3;
ei->mMode = 3;
if (ei->m00C == 2) {
ei->m00C = 0;
}
@@ -250,7 +250,7 @@ BOOL enemy_ice(enemyice* ei) {
ei->mSpeed.y = -15.0f;
}
ei->mAngleY = player->shape_angle.y;
ei->mState = 2;
ei->mMode = 2;
}
break;
}
@@ -349,7 +349,7 @@ BOOL enemy_ice(enemyice* ei) {
}
if (ei->mFreezeTimer == 0) {
ei->mState = 1;
ei->mMode = 1;
ei->mCyl.SetC(non_pos);
dComIfG_Ccsp()->Set(&ei->mCyl);
@@ -440,7 +440,7 @@ void enemy_fire(enemyfire* ef) {
cXyz pos;
offset.setall(0.0f);
switch (ef->mState) {
switch (ef->mMode) {
case 0: // Not on fire.
if (ef->mFireDuration == 0) {
return;
@@ -449,7 +449,7 @@ void enemy_fire(enemyfire* ef) {
ef->mFireTimer = ef->mFireDuration;
ef->mFireDuration = 0;
ef->mState = 1; // On fire
ef->mMode = 1; // On fire
dKy_plight_set(&ef->mLight);
@@ -562,7 +562,7 @@ void enemy_fire(enemyfire* ef) {
fopAcM_seStart(ac, JA_SE_OBJ_TORCH_BURNING, 0);
if (ef->mFireTimer == 0) {
ef->mState = 0; // Not on fire
ef->mMode = 0; // Not on fire
dKy_plight_cut(&ef->mLight);
ef->mSph.SetC(non_pos);
dComIfG_Ccsp()->Set(&ef->mSph);
@@ -579,7 +579,7 @@ void enemy_fire(enemyfire* ef) {
/* 8001D3B0-8001D428 .text enemy_fire_remove__FP9enemyfire */
void enemy_fire_remove(enemyfire* ef) {
ef->mState = 0; // Not on fire
ef->mMode = 0; // Not on fire
dKy_plight_cut(&ef->mLight);
for (int i = 0; i < 10; i++) {
@@ -641,7 +641,7 @@ void dr_body_bg_check(damagereaction* dr) {
dr->m71E--;
}
if (dr->mState != 21 && dr->mState != 22) {
if (dr->mAction != 21 && dr->mAction != 22) {
dBgS_ObjGndChk_Spl gndChk;
f32 x = dr->mpEnemy->current.pos.x;
f32 y = dr->mpEnemy->current.pos.y;
@@ -655,14 +655,14 @@ void dr_body_bg_check(damagereaction* dr) {
f32 floor_y = dComIfG_Bgsp()->GroundCross(&gndChk);
if (floor_y != C_BG_MIN_HEIGHT && dr->mpEnemy->current.pos.y <= floor_y) {
dr->mpEnemy->current.pos.y = floor_y + REG0_F(13);
dr->m004 = 0;
dr->mMode = 0;
dr->m47C = 0;
if (dComIfG_Bgsp()->ChkGrpInf(gndChk, 0x100)) {
dr->mState = 22;
dr->mAction = 22;
cXyz sp14(x, floor_y, z);
fopKyM_createWpillar(&sp14, REG0_F(9) + 1.0f, REG0_F(10) + 1.0f, 0);
} else {
dr->mState = 21;
dr->mAction = 21;
cXyz sp08(x, floor_y, z);
fopKyM_createMpillar(&sp08, REG0_F(14) + 0.5f);
}
+4 -4
View File
@@ -1,7 +1,7 @@
//
// Generated by dtk
// Translation Unit: d_a_agb.cpp
//
/**
* d_a_agb.cpp
* Tingle Tuner Cursor
*/
#include "d/actor/d_a_agb.h"
#include "d/res/res_agb.h"
+62 -62
View File
@@ -34,17 +34,17 @@ enum Action {
ACTION_ITAI_MOVE = 3,
};
enum State {
STATE_DOUSA_INIT = 0,
STATE_DOUSA_OKIRU = 2,
STATE_DOUSA_SLEEP_INIT = 9,
STATE_DOUSA_SLEEP_MAIN = 10,
STATE_MODORU_MOVE_INIT = 20,
STATE_MODORU_MOVE_MAIN = 21,
STATE_MODORU_MOVE_END = 22,
STATE_HANDOU_MOVE_INIT = 30,
STATE_HANDOU_MOVE_MAIN = 31,
STATE_ITAI_MOVE_INIT = 40,
enum Mode {
MODE_DOUSA_INIT = 0,
MODE_DOUSA_OKIRU = 2,
MODE_DOUSA_SLEEP_INIT = 9,
MODE_DOUSA_SLEEP_MAIN = 10,
MODE_MODORU_MOVE_INIT = 20,
MODE_MODORU_MOVE_MAIN = 21,
MODE_MODORU_MOVE_END = 22,
MODE_HANDOU_MOVE_INIT = 30,
MODE_HANDOU_MOVE_MAIN = 31,
MODE_ITAI_MOVE_INIT = 40,
};
/* 00000078-0000021C .text nodeCallBack__FP7J3DNodei */
@@ -195,7 +195,7 @@ static void body_atari_check(am_class* i_this) {
return;
}
i_this->mAction = ACTION_HANDOU_MOVE;
i_this->mState = STATE_HANDOU_MOVE_INIT;
i_this->mMode = MODE_HANDOU_MOVE_INIT;
i_this->mHugeKnockback = 0;
if (player->getCutType() == 0x11) {
// If the player hits the Armos Knight with the Skull Hammer's side swing, knock it back much farther than normal.
@@ -284,14 +284,14 @@ static BOOL medama_atari_check(am_class* i_this) {
i_this->mNeedleCyl.OnAtSPrmBit(cCcD_AtSPrm_Set_e);
i_this->mNeedleCyl.OnAtHitBit();
i_this->mAction = ACTION_DOUSA;
i_this->mState = STATE_DOUSA_OKIRU;
i_this->mMode = MODE_DOUSA_OKIRU;
} else {
dComIfGp_particle_set(dPa_name::ID_COMMON_0010, &i_this->mEyeballPos, &player->shape_angle);
// fopAcM_seStart(i_this, JA_SE_CM_AM_EYE_DAMAGE, 0);
mDoAud_seStart(JA_SE_CM_AM_EYE_DAMAGE, &i_this->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
fopAcM_monsSeStart(i_this, JA_SE_CV_AM_EYE_DAMAGE, 0x42);
i_this->mAction = ACTION_ITAI_MOVE;
i_this->mState = STATE_ITAI_MOVE_INIT;
i_this->mMode = MODE_ITAI_MOVE_INIT;
}
break;
default:
@@ -394,7 +394,7 @@ static BOOL bomb_nomi_check(am_class* i_this) {
bomb->setBombNoHit();
bomb_move_set(i_this, 0);
i_this->mAction = ACTION_ITAI_MOVE;
i_this->mState = 44;
i_this->mMode = 44;
return TRUE;
}
}
@@ -409,7 +409,7 @@ static BOOL bomb_nomi_check(am_class* i_this) {
bomb2->set_no_hit();
bomb_move_set(i_this, 0);
i_this->mAction = ACTION_ITAI_MOVE;
i_this->mState = 44;
i_this->mMode = 44;
return TRUE;
}
}
@@ -481,13 +481,13 @@ static void medama_move(am_class* i_this) {
/* 00001B00-00002564 .text action_dousa__FP8am_class */
static void action_dousa(am_class* i_this) {
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
switch (i_this->mState) {
case STATE_DOUSA_INIT:
switch (i_this->mMode) {
case MODE_DOUSA_INIT:
for (int i = 0; i < ARRAY_SIZE(i_this->mCountUpTimers); i++) {
i_this->mCountUpTimers[i] = 0;
}
anm_init(i_this, AM_BCK_SLEEP_LOOP, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
case 1:
if (i_this->mStartsInactive == 1 && i_this->mSwitch != 0xFF && !dComIfGs_isSwitch(i_this->mSwitch, dComIfGp_roomControl_getStayNo())) {
@@ -506,15 +506,15 @@ static void action_dousa(am_class* i_this) {
i_this->attention_info.flags = fopAc_Attn_LOCKON_BATTLE_e;
i_this->mNeedleCyl.OnAtSetBit();
i_this->mNeedleCyl.OnAtHitBit();
i_this->mState += 1; // STATE_DOUSA_OKIRU
i_this->mMode += 1; // MODE_DOUSA_OKIRU
}
}
break;
case STATE_DOUSA_OKIRU:
case MODE_DOUSA_OKIRU:
if (!i_this->mpMorf->isStop()) {
break;
}
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
case 3:
if (i_this->mCurrBckIdx != AM_BCK_CLOSE && i_this->mCurrBckIdx != AM_BCK_CLOSE_LOOP) {
@@ -528,7 +528,7 @@ static void action_dousa(am_class* i_this) {
i_this->mCountDownTimers[2] = 6;
}
i_this->mTargetAngleY = fopAcM_searchPlayerAngleY(i_this);
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
case 4: {
if (i_this->mCountDownTimers[2] == 1) {
@@ -544,24 +544,24 @@ static void action_dousa(am_class* i_this) {
f32 xzDist = std::sqrtf(xDist*xDist + zDist*zDist);
if (xzDist > i_this->mAreaRadius) {
i_this->mAction = ACTION_MODORU_MOVE;
i_this->mState = STATE_MODORU_MOVE_INIT;
i_this->mMode = MODE_MODORU_MOVE_INIT;
return;
}
} else {
if (fopAcM_searchPlayerDistance(i_this) > 2000.0f) {
i_this->mState = STATE_DOUSA_SLEEP_INIT;
i_this->mMode = MODE_DOUSA_SLEEP_INIT;
break;
}
f32 yDist = player->current.pos.y - i_this->current.pos.y;
yDist = std::sqrtf(yDist*yDist); // ???
if (yDist > 300.0f) {
i_this->mState = STATE_DOUSA_SLEEP_INIT;
i_this->mMode = MODE_DOUSA_SLEEP_INIT;
break;
}
}
s16 yRotDiff = cLib_distanceAngleS(i_this->shape_angle.y, i_this->mTargetAngleY);
if (yRotDiff < 0x100) {
i_this->mState += 1;
i_this->mMode += 1;
}
break;
}
@@ -573,7 +573,7 @@ static void action_dousa(am_class* i_this) {
if (!Line_check(i_this, player->current.pos) || player->getDamageWaitTimer() != 0) {
i_this->speedF = 0.0f;
}
i_this->mState += 1;
i_this->mMode += 1;
break;
case 6:
if (i_this->mCurrBckIdx == AM_BCK_CLOSE) {
@@ -596,7 +596,7 @@ static void action_dousa(am_class* i_this) {
if (i_this->mCountUpTimers[0] < 2) {
i_this->mCountDownTimers[0] = 10;
}
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
case 7:
if (i_this->mCountDownTimers[0] != 0) {
@@ -621,9 +621,9 @@ static void action_dousa(am_class* i_this) {
0xB9, &i_this->mSmokeCbs[2], fopAcM_GetRoomNo(i_this)
);
}
i_this->mState = 8;
i_this->mMode = 8;
} else {
i_this->mState = 3;
i_this->mMode = 3;
}
break;
case 8:
@@ -635,27 +635,27 @@ static void action_dousa(am_class* i_this) {
}
if (i_this->mCountDownTimers[0] == 0) {
i_this->mSmokeCbs[2].remove();
i_this->mState = 3;
i_this->mMode = 3;
}
break;
case STATE_DOUSA_SLEEP_INIT:
case MODE_DOUSA_SLEEP_INIT:
anm_init(i_this, AM_BCK_SLEEP, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
fopAcM_seStart(i_this, JA_SE_CM_AM_NEEDLE_IN, 0);
i_this->mNeedleCyl.OffAtSetBit();
i_this->mNeedleCyl.OffAtSetBit();
i_this->attention_info.flags = 0;
i_this->mState += 1;
i_this->mMode += 1;
break;
case STATE_DOUSA_SLEEP_MAIN:
case MODE_DOUSA_SLEEP_MAIN:
if (i_this->mpMorf->isStop()) {
i_this->mState = 0;
i_this->mMode = 0;
}
break;
}
medama_move(i_this);
if (i_this->mState != 2 && medama_atari_check(i_this)) {
if (i_this->mMode != 2 && medama_atari_check(i_this)) {
i_this->mSmokeCbs[2].remove();
} else if (bomb_nomi_check(i_this)) {
i_this->mSmokeCbs[2].remove();
@@ -664,8 +664,8 @@ static void action_dousa(am_class* i_this) {
/* 00002564-000028C4 .text action_modoru_move__FP8am_class */
static void action_modoru_move(am_class* i_this) {
switch (i_this->mState) {
case STATE_MODORU_MOVE_INIT: {
switch (i_this->mMode) {
case MODE_MODORU_MOVE_INIT: {
anm_init(i_this, AM_BCK_CLOSE_LOOP, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->mNeedleCyl.OnAtSetBit();
i_this->mNeedleCyl.OnAtHitBit();
@@ -677,10 +677,10 @@ static void action_modoru_move(am_class* i_this) {
f32 xDistToSpawn = i_this->mSpawnPos.x - i_this->current.pos.x;
f32 zDistToSpawn = i_this->mSpawnPos.z - i_this->current.pos.z;
i_this->mTargetAngleY = cM_atan2s(xDistToSpawn, zDistToSpawn);
i_this->mState += 1;
i_this->mMode += 1;
break;
}
case STATE_MODORU_MOVE_MAIN: {
case MODE_MODORU_MOVE_MAIN: {
f32 xDistToSpawn = i_this->mSpawnPos.x - i_this->current.pos.x;
f32 zDistToSpawn = i_this->mSpawnPos.z - i_this->current.pos.z;
if (i_this->mAcch.ChkGroundHit()) {
@@ -705,18 +705,18 @@ static void action_modoru_move(am_class* i_this) {
if (xzDist < 20.0f) {
i_this->mTargetAngleY = i_this->mSpawnRotY;
i_this->speedF = 0.0f;
i_this->mState += 1;
i_this->mMode += 1;
}
break;
}
case STATE_MODORU_MOVE_END: {
case MODE_MODORU_MOVE_END: {
s16 angleDiff = cLib_distanceAngleS(i_this->shape_angle.y, i_this->mTargetAngleY);
if (angleDiff < 0x100) {
i_this->mNeedleCyl.OffAtSetBit();
i_this->mNeedleCyl.OffAtSetBit();
i_this->attention_info.flags = 0;
i_this->mAction = ACTION_DOUSA;
i_this->mState = STATE_DOUSA_INIT;
i_this->mMode = MODE_DOUSA_INIT;
}
break;
}
@@ -726,8 +726,8 @@ static void action_modoru_move(am_class* i_this) {
/* 000028C4-00002A6C .text action_handou_move__FP8am_class */
static void action_handou_move(am_class* i_this) {
daPy_py_c* player = daPy_getPlayerActorClass();
switch (i_this->mState) {
case STATE_HANDOU_MOVE_INIT: {
switch (i_this->mMode) {
case MODE_HANDOU_MOVE_INIT: {
i_this->speedF = 20.0f;
s16 angleToPlayer = fopAcM_searchPlayerAngleY(i_this);
i_this->current.angle.y = angleToPlayer + 0x8000;
@@ -743,17 +743,17 @@ static void action_handou_move(am_class* i_this) {
mDoAud_seStart(JA_SE_CM_AM_MOUTH_CLOSE, &i_this->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
anm_init(i_this, AM_BCK_CLOSE, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
}
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
}
case STATE_HANDOU_MOVE_MAIN: {
case MODE_HANDOU_MOVE_MAIN: {
cLib_addCalc0(&i_this->speedF, 0.8f, 2.0f);
if (i_this->speedF < 0.1f) {
i_this->speedF = 0.0f;
i_this->mCountDownTimers[2] = 6;
i_this->current.angle.y = i_this->shape_angle.y;
i_this->mAction = ACTION_DOUSA;
i_this->mState = 3;
i_this->mMode = 3;
}
break;
}
@@ -762,8 +762,8 @@ static void action_handou_move(am_class* i_this) {
/* 00002A6C-000034F4 .text action_itai_move__FP8am_class */
static void action_itai_move(am_class* i_this) {
switch (i_this->mState) {
case STATE_ITAI_MOVE_INIT:
switch (i_this->mMode) {
case MODE_ITAI_MOVE_INIT:
i_this->mEyeRot.setall(0);
i_this->mNeedleCyl.OffAtSetBit();
i_this->mNeedleCyl.OffAtSetBit();
@@ -772,7 +772,7 @@ static void action_itai_move(am_class* i_this) {
i_this->mTargetAngleY = i_this->current.angle.y;
fopAcM_seStart(i_this, JA_SE_CM_AM_NEEDLE_IN, 0);
anm_init(i_this, AM_BCK_DAMAGE, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
case 41:
cLib_addCalc0(&i_this->speedF, 0.8f, 2.0f);
@@ -782,7 +782,7 @@ static void action_itai_move(am_class* i_this) {
i_this->mCountDownTimers[0] = 100;
i_this->speedF = 0.0f;
anm_init(i_this, AM_BCK_DAMAGE_LOOP, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->mState += 1;
i_this->mMode += 1;
break;
case 42:
if (i_this->mCountDownTimers[0] != 0) {
@@ -793,7 +793,7 @@ static void action_itai_move(am_class* i_this) {
// Using the fopAcM_seStart inline multiple times in a single case makes the codegen not match.
// fopAcM_seStart(i_this, JA_SE_CM_AM_MOUTH_CLOSE, 0);
mDoAud_seStart(JA_SE_CM_AM_MOUTH_CLOSE, &i_this->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
i_this->mState += 1;
i_this->mMode += 1;
break;
case 43:
if (!i_this->mpMorf->isStop()) {
@@ -803,7 +803,7 @@ static void action_itai_move(am_class* i_this) {
i_this->mNeedleCyl.OnAtHitBit();
i_this->mCountUpTimers[0] = 0;
i_this->mAction = ACTION_DOUSA;
i_this->mState = 3;
i_this->mMode = 3;
break;
case 44:
i_this->mSmokeCbs[3].remove();
@@ -819,7 +819,7 @@ static void action_itai_move(am_class* i_this) {
i_this->mNeedleCyl.OffAtSetBit();
i_this->mNeedleCyl.OffAtSetBit();
i_this->mCountDownTimers[1] = 10;
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
case 45:
bomb_move_set(i_this, 0);
@@ -846,7 +846,7 @@ static void action_itai_move(am_class* i_this) {
}
i_this->mCountDownTimers[0] = 100;
i_this->mTargetAngleY = fopAcM_searchPlayerAngleY(i_this);
i_this->mState += 1;
i_this->mMode += 1;
break;
case 46:
bomb_move_set(i_this, 1);
@@ -889,7 +889,7 @@ static void action_itai_move(am_class* i_this) {
i_this->m0340 = NULL;
}
i_this->speedF = 0.0f;
i_this->mState += 1;
i_this->mMode += 1;
break;
case 47:
bomb_move_set(i_this, 1);
@@ -917,7 +917,7 @@ static void action_itai_move(am_class* i_this) {
// fopAcM_seStart(i_this, JA_SE_LK_LAST_HIT, 0);
mDoAud_seStart(JA_SE_LK_LAST_HIT, &i_this->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
fopAcM_createDisappear(i_this, &centerPos, 5);
fopAcM_createDisappear(i_this, &centerPos, 5, daDisItem_IBALL_e);
fopAcM_onActor(i_this);
fopAcM_delete(i_this);
break;
@@ -930,7 +930,7 @@ static void action_itai_move(am_class* i_this) {
i_this->m0340->setGlobalRTMatrix(i_this->mpMorf->getModel()->getAnmMtx(2));
}
if (i_this->mState == 41 || i_this->mState == 42) {
if (i_this->mMode == 41 || i_this->mMode == 42) {
bomb_nomi_check(i_this);
}
}
@@ -987,11 +987,11 @@ static BOOL daAM_Execute(am_class* i_this) {
i_this->speedF = 0.0f;
i_this->mAction = ACTION_ITAI_MOVE;
i_this->mState = 47;
i_this->mMode = 47;
}
cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->mTargetAngleY, 1, 0x500);
if (i_this->mState != 46 && i_this->mState != 47 && i_this->mState != 31) {
if (i_this->mMode != 46 && i_this->mMode != 47 && i_this->mMode != 31) {
cLib_addCalcAngleS2(&i_this->shape_angle.y, i_this->current.angle.y, 1, 0x500);
}
+56 -56
View File
@@ -177,7 +177,7 @@ static BOOL medama_atari_check(am2_class* i_this) {
i_this->mNeedleCyl.OnAtHitBit();
i_this->mNeedleCyl.OnTgSetBit();
i_this->mAction = ACTION_DOUSA;
i_this->mState = 2;
i_this->mMode = 2;
} else {
dComIfGp_particle_set(dPa_name::ID_COMMON_0010, &hitPos, &player->shape_angle);
// Using the fopAcM_seStart inline breaks the codegen.
@@ -185,7 +185,7 @@ static BOOL medama_atari_check(am2_class* i_this) {
mDoAud_seStart(JA_SE_CM_AM2_PARALYZED, &i_this->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
fopAcM_monsSeStart(i_this, JA_SE_CV_AM2_PARALYZED, 0x42);
i_this->mAction = ACTION_MAHI;
i_this->mState = 10;
i_this->mMode = 10;
}
return TRUE;
}
@@ -294,7 +294,7 @@ static BOOL week_atari_check(am2_class* i_this) {
}
i_this->mAction = ACTION_ITAI;
i_this->mState = 20;
i_this->mMode = 20;
if (i_this->m2CE == 7 || i_this->m2CE == 8) {
actor->health = 0;
}
@@ -341,7 +341,7 @@ static BOOL body_atari_check(am2_class* i_this) {
break;
}
i_this->mAction = ACTION_HANDOU_MOVE;
i_this->mState = 30;
i_this->mMode = 30;
i_this->m2CE = 7;
if (player->getCutType() == 0x11) {
i_this->m2CE = 8;
@@ -448,7 +448,7 @@ static void action_dousa(am2_class* i_this) {
cXyz offset;
cXyz rotOffset;
if (i_this->mState == 4 || i_this->mState == 5) {
if (i_this->mMode == 4 || i_this->mMode == 5) {
cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
offset.set(0.0f, 0.0f, 200.0f);
MtxPosition(&offset, &rotOffset);
@@ -456,7 +456,7 @@ static void action_dousa(am2_class* i_this) {
rotOffset.y += 100.0f + REG12_F(19);
}
switch (i_this->mState) {
switch (i_this->mMode) {
case 0:
for (int i = 0; i < ARRAY_SIZE(i_this->mCountUpTimers); i++) {
i_this->mCountUpTimers[i] = 0;
@@ -465,7 +465,7 @@ static void action_dousa(am2_class* i_this) {
if (i_this->mCurrBckIdx != AM2_BCK_WAIT) {
anm_init(i_this, AM2_BCK_WAIT, 10.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
}
i_this->mState++;
i_this->mMode++;
// Fall-through
case 1: {
f32 playerDist = fopAcM_searchPlayerDistance(i_this);
@@ -479,7 +479,7 @@ static void action_dousa(am2_class* i_this) {
fopAcM_monsSeStart(i_this, JA_SE_CV_AM2_AWAKE, 0);
i_this->mEyeSph.OnTgSetBit();
i_this->mWeakSph.OnTgSetBit();
i_this->mState += 1;
i_this->mMode += 1;
}
}
break;
@@ -491,7 +491,7 @@ static void action_dousa(am2_class* i_this) {
if (!i_this->mpMorf->isStop()) {
break;
}
i_this->mState++;
i_this->mMode++;
// Fall-through
case 3: {
for (int i = 0; i < ARRAY_SIZE(i_this->mCountUpTimers); i++) {
@@ -501,7 +501,7 @@ static void action_dousa(am2_class* i_this) {
f32 playerDist = fopAcM_searchPlayerDistance(i_this);
f32 radiusAdjust = 200.0f;
if (playerDist > i_this->mAreaRadius + radiusAdjust) {
i_this->mState = 6;
i_this->mMode = 6;
} else {
i_this->mNeedleCyl.OnAtSetBit();
i_this->mNeedleCyl.OnAtHitBit();
@@ -512,7 +512,7 @@ static void action_dousa(am2_class* i_this) {
if (i_this->mCurrBckIdx != AM2_BCK_JUMP) {
anm_init(i_this, AM2_BCK_JUMP, 2.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
}
i_this->mState++;
i_this->mMode++;
}
break;
}
@@ -521,11 +521,11 @@ static void action_dousa(am2_class* i_this) {
i_this->gravity = -3.0f;
i_this->speed.y = 12.0f;
fopAcM_seStart(i_this, JA_SE_CM_AM2_LANDING, 0);
i_this->mState = 3;
i_this->mMode = 3;
s16 angleDiff = cLib_distanceAngleS(i_this->shape_angle.y, i_this->current.angle.y);
if (angleDiff < 0x1000) {
if (Line_check(i_this, rotOffset) || player->getDamageWaitTimer() == 0) {
i_this->mState = 5;
i_this->mMode = 5;
}
}
}
@@ -552,7 +552,7 @@ static void action_dousa(am2_class* i_this) {
}
if (i_this->mCountUpTimers[0] > 8) {
i_this->mState = 3;
i_this->mMode = 3;
} else {
i_this->speedF = 9.0f;
i_this->gravity = -8.0f;
@@ -570,7 +570,7 @@ static void action_dousa(am2_class* i_this) {
fopAcM_seStart(i_this, JA_SE_CM_AM2_SPIKE_IN, 0);
i_this->mWeakSph.OffTgSetBit();
i_this->mWeakSph.ClrTgHit();
i_this->mState++;
i_this->mMode++;
// Fall-through
case 7:
if (i_this->mpMorf->isStop()) {
@@ -583,7 +583,7 @@ static void action_dousa(am2_class* i_this) {
i_this->mNeedleCyl.ClrTgHit();
i_this->m304 = i_this->current.pos;
i_this->mAction = ACTION_DOUSA;
i_this->mState = 1;
i_this->mMode = 1;
}
break;
}
@@ -598,10 +598,10 @@ static void action_dousa(am2_class* i_this) {
fopAcM_delete(i_this);
} else {
i_this->mAction = ACTION_MODORU_MOVE;
i_this->mState = 40;
i_this->mMode = 40;
}
} else if (!medama_atari_check(i_this)) {
if (i_this->mState < 3 || !week_atari_check(i_this)) {
if (i_this->mMode < 3 || !week_atari_check(i_this)) {
body_atari_check(i_this);
}
}
@@ -612,7 +612,7 @@ static void action_mahi(am2_class* i_this) {
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
fopAc_ac_c* actor = i_this; // Fixes regswaps
switch (i_this->mState) {
switch (i_this->mMode) {
case 10:
for (int i = 0; i < ARRAY_SIZE(i_this->mCountUpTimers); i++) {
i_this->mCountUpTimers[i] = 0;
@@ -631,7 +631,7 @@ static void action_mahi(am2_class* i_this) {
fopAcM_seStart(actor, JA_SE_CM_AM2_SPIKE_IN, 0);
anm_init(i_this, AM2_BCK_DAMAGE, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mState++;
i_this->mMode++;
break;
case 11:
cLib_addCalc0(&actor->speedF, 0.5f, 1.0f);
@@ -640,7 +640,7 @@ static void action_mahi(am2_class* i_this) {
actor->speedF = 0.0f;
i_this->mCountDownTimers[2] = 20*30;
anm_init(i_this, AM2_BCK_MAHI, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->mState++;
i_this->mMode++;
}
}
break;
@@ -653,7 +653,7 @@ static void action_mahi(am2_class* i_this) {
fopAcM_delete(actor);
} else {
i_this->mAction = ACTION_MODORU_MOVE;
i_this->mState = 40;
i_this->mMode = 40;
}
} else {
if (i_this->mCountUpTimers[1] != 0 && i_this->mAcch.ChkGroundHit()) {
@@ -672,7 +672,7 @@ static void action_mahi(am2_class* i_this) {
actor->speedF = 0.0f;
i_this->mbNotInHomeRoom = false;
i_this->mBodyCyl.OffCoSetBit();
i_this->mState++;
i_this->mMode++;
}
}
break;
@@ -692,11 +692,11 @@ static void action_mahi(am2_class* i_this) {
actor->speed.y = 25.0f;
actor->speedF = 35.0f;
i_this->mAcch.OnLineCheck();
i_this->mState = 14;
i_this->mMode = 14;
} else {
actor->gravity = -3.0f;
i_this->mCountUpTimers[1] = 1;
i_this->mState = 12;
i_this->mMode = 12;
}
}
break;
@@ -710,7 +710,7 @@ static void action_mahi(am2_class* i_this) {
} else {
i_this->mAcch.OffLineCheck();
i_this->mAction = ACTION_MODORU_MOVE;
i_this->mState = 40;
i_this->mMode = 40;
}
} else {
if (i_this->mAcch.ChkGroundHit()) {
@@ -740,7 +740,7 @@ static void action_mahi(am2_class* i_this) {
} else {
actor->speedF = 0.0f;
i_this->mCountUpTimers[0] = 0;
i_this->mState = 12;
i_this->mMode = 12;
}
}
@@ -753,7 +753,7 @@ static void action_mahi(am2_class* i_this) {
fopAcM_delete(actor);
} else {
i_this->mAction = ACTION_MODORU_MOVE;
i_this->mState = 40;
i_this->mMode = 40;
return;
}
}
@@ -764,14 +764,14 @@ static void action_mahi(am2_class* i_this) {
actor->attention_info.flags = fopAc_Attn_LOCKON_BATTLE_e;
fopAcM_OnStatus(actor, fopAcStts_SHOWMAP_e);
i_this->mAction = ACTION_DOUSA;
i_this->mState = 3;
i_this->mMode = 3;
}
break;
}
i_this->mTargetAngleY = actor->current.angle.y;
if (i_this->mState >= 12 && i_this->mState != 15) {
if (i_this->mMode >= 12 && i_this->mMode != 15) {
if (i_this->mStartsInactive == 1 && i_this->mSwitch != 0xFF) {
if (!dComIfGs_isSwitch(i_this->mSwitch, dComIfGp_roomControl_getStayNo())) {
i_this->mCountDownTimers[2] = 20*30;
@@ -781,7 +781,7 @@ static void action_mahi(am2_class* i_this) {
i_this->mSwitch = 0xFF;
i_this->mAction = ACTION_DOUSA;
i_this->mState = 0;
i_this->mMode = 0;
if (fopAcM_CheckStatus(actor, fopAcStts_CARRY_e)) {
fopAcM_cancelCarryNow(actor);
@@ -811,19 +811,19 @@ static void action_mahi(am2_class* i_this) {
actor->gravity = -4.0f;
actor->speed.y = 20.0f;
i_this->mBodyCyl.OnCoSetBit();
i_this->mState = 15;
i_this->mMode = 15;
}
}
}
if (fopAcM_CheckStatus(actor, fopAcStts_CARRY_e) || i_this->mState == 15 || !week_atari_check(i_this)) {
if (fopAcM_CheckStatus(actor, fopAcStts_CARRY_e) || i_this->mMode == 15 || !week_atari_check(i_this)) {
body_atari_check(i_this);
}
}
/* 00002B08-000032AC .text action_itai__FP9am2_class */
static void action_itai(am2_class* i_this) {
switch (i_this->mState) {
switch (i_this->mMode) {
case 20:
for (int i = 0; i < ARRAY_SIZE(i_this->mCountUpTimers); i++) {
i_this->mCountUpTimers[i] = 0;
@@ -845,9 +845,9 @@ static void action_itai(am2_class* i_this) {
if (i_this->mCountDownTimers[2] > 5) {
i_this->speedF = 5.0f;
}
i_this->mState++;
i_this->mMode++;
} else {
i_this->mState = 22;
i_this->mMode = 22;
}
break;
case 21:
@@ -857,11 +857,11 @@ static void action_itai(am2_class* i_this) {
i_this->gravity = -3.0f;
if (i_this->mCountDownTimers[2] < 5) {
i_this->mAction = ACTION_DOUSA;
i_this->mState = 3;
i_this->mMode = 3;
} else {
anm_init(i_this, AM2_BCK_MAHI, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->mAction = ACTION_MAHI;
i_this->mState = 12;
i_this->mMode = 12;
}
}
break;
@@ -871,7 +871,7 @@ static void action_itai(am2_class* i_this) {
i_this->mEyeSph.ClrTgHit();
i_this->mWeakSph.ClrTgHit();
anm_init(i_this, AM2_BCK_DEAD1, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mState++;
i_this->mMode++;
break;
case 23:
if (!i_this->mpMorf->isStop()) {
@@ -885,7 +885,7 @@ static void action_itai(am2_class* i_this) {
i_this->mCountDownTimers[0] = 100;
i_this->current.angle.y = fopAcM_searchPlayerAngleY(i_this);
anm_init(i_this, AM2_BCK_DEAD2, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mState++;
i_this->mMode++;
// Fall-through
case 24:
if (i_this->speed.y > 0.0f && i_this->mCountUpTimers[1] == 0) {
@@ -921,7 +921,7 @@ static void action_itai(am2_class* i_this) {
i_this->speedF = 0.0f;
i_this->mState++;
i_this->mMode++;
}
break;
case 25:
@@ -934,7 +934,7 @@ static void action_itai(am2_class* i_this) {
dComIfGp_particle_set(dPa_name::ID_SCENE_81AF, &i_this->current.pos, &i_this->shape_angle);
dComIfGp_particle_set(dPa_name::ID_SCENE_81B0, &i_this->current.pos, &i_this->shape_angle);
fopAcM_seStart(i_this, JA_SE_CM_AM2_EXPLODE, 0);
fopAcM_createDisappear(i_this, &centerPos, 5);
fopAcM_createDisappear(i_this, &centerPos, 5, daDisItem_IBALL_e);
fopAcM_onActor(i_this);
fopAcM_delete(i_this);
break;
@@ -942,15 +942,15 @@ static void action_itai(am2_class* i_this) {
if (naraku_check(i_this)) {
if (i_this->mbNotInHomeRoom || i_this->health <= 0) {
if (i_this->mState != 25) {
if (i_this->mMode != 25) {
anm_init(i_this, AM2_BCK_DEAD3, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
fopAcM_seStart(i_this, JA_SE_CM_AM2_BEF_EXPLODE, 0);
i_this->speedF = 0.0f;
i_this->mState = 25;
i_this->mMode = 25;
}
} else {
i_this->mAction = ACTION_MODORU_MOVE;
i_this->mState = 40;
i_this->mMode = 40;
}
}
}
@@ -958,7 +958,7 @@ static void action_itai(am2_class* i_this) {
/* 000032AC-000034A4 .text action_handou_move__FP9am2_class */
static void action_handou_move(am2_class* i_this) {
daPy_py_c* player = daPy_getPlayerActorClass();
switch (i_this->mState) {
switch (i_this->mMode) {
case 30: {
i_this->speedF = 40.0f;
s16 angleToPlayer = fopAcM_searchPlayerAngleY(i_this);
@@ -972,7 +972,7 @@ static void action_handou_move(am2_class* i_this) {
i_this->mNeedleCyl.OffTgSetBit();
i_this->mNeedleCyl.ClrTgHit();
i_this->mTargetAngleY = i_this->current.angle.y;
i_this->mState++;
i_this->mMode++;
// Fall-through
}
case 31:
@@ -982,12 +982,12 @@ static void action_handou_move(am2_class* i_this) {
i_this->speedF = 0.0f;
i_this->current.angle.y = i_this->shape_angle.y;
i_this->mAction = ACTION_DOUSA;
i_this->mState = 3;
i_this->mMode = 3;
if (i_this->mStartsInactive == 1 && i_this->mSwitch != 0xFF && !dComIfGs_isSwitch(i_this->mSwitch, dComIfGp_roomControl_getStayNo())) {
i_this->attention_info.flags = 0;
i_this->mCountDownTimers[2] = 20*30;
i_this->mAction = ACTION_MAHI;
i_this->mState = 12;
i_this->mMode = 12;
}
}
}
@@ -997,7 +997,7 @@ static void action_handou_move(am2_class* i_this) {
fopAcM_delete(i_this);
} else {
i_this->mAction = ACTION_MODORU_MOVE;
i_this->mState = 40;
i_this->mMode = 40;
}
}
}
@@ -1005,7 +1005,7 @@ static void action_handou_move(am2_class* i_this) {
/* 000034A4-0000379C .text action_modoru_move__FP9am2_class */
static void action_modoru_move(am2_class* i_this) {
// Respawns the Armos back at its spawn point after it falls into an abyss.
switch (i_this->mState) {
switch (i_this->mMode) {
case 40:
dCam_getBody()->ForceLockOff(fopAcM_GetID(i_this));
i_this->mInAbyssTimer = 0;
@@ -1013,7 +1013,7 @@ static void action_modoru_move(am2_class* i_this) {
i_this->mRippleCb.remove();
anm_init(i_this, AM2_BCK_WAIT, 10.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
fopAcM_seStart(i_this, JA_SE_CM_AM2_WTR_RECOVER, 0);
i_this->mState++;
i_this->mMode++;
// Fall-through
case 41:
cLib_addCalc0(&i_this->scale.x, 1.0f, 0.1f);
@@ -1034,7 +1034,7 @@ static void action_modoru_move(am2_class* i_this) {
i_this->current.pos = i_this->mSpawnPos;
i_this->mTargetAngleY = i_this->current.angle.y;
i_this->mState++;
i_this->mMode++;
}
break;
case 42:
@@ -1056,13 +1056,13 @@ static void action_modoru_move(am2_class* i_this) {
i_this->mWeakSph.ClrTgHit();
i_this->mNeedleCyl.ClrTgHit();
i_this->mAction = ACTION_DOUSA;
i_this->mState = 0;
i_this->mMode = 0;
if (i_this->mStartsInactive == 1 && i_this->mSwitch != 0xFF && !dComIfGs_isSwitch(i_this->mSwitch, dComIfGp_roomControl_getStayNo())) {
i_this->attention_info.flags = 0;
i_this->mCountDownTimers[2] = 20*30;
i_this->mAction = ACTION_MAHI;
i_this->mState = 12;
i_this->mMode = 12;
}
}
break;
@@ -1456,7 +1456,7 @@ static cPhs_State daAM2_Create(fopAc_ac_c* i_actor) {
i_this->attention_info.flags = 0;
i_this->mCountDownTimers[2] = 20*30;
i_this->mAction = ACTION_MAHI;
i_this->mState = 12;
i_this->mMode = 12;
}
i_this->mAcchRadius = 40.0f + REG8_F(10);
+1 -1
View File
@@ -904,7 +904,7 @@ BOOL daArrow_c::procReturn() {
s32 temp3 = -field_0x69c;
field_0x69c = (temp3 / 2);
triPla = dComIfG_Bgsp()->GetTriPla(mLinChk);
if (triPla->mNormal.y >= 0.5f) {
if (cBgW_CheckBGround(triPla->GetNP()->y)) {
field_0x69a = true;
}
} else if (field_0x69a && speed.y < 0.0f) {
+293 -295
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -17,7 +17,7 @@ dBgS_ObjLinChk daBoko_c::m_line_check;
const s16 daBoko_HIO_c0::throw_timer = 2;
const f32 daBoko_HIO_c0::throw_speed = 70.0f;
static u8 l_HIO;
static daBoko_HIO_c l_HIO;
/* 000000EC-0000017C .text keDraw__8daBoko_cFv */
void daBoko_c::keDraw() {
+4 -4
View File
@@ -1,7 +1,7 @@
//
// Generated by dtk
// Translation Unit: d_a_bpw.cpp
//
/**
* d_a_bpw.cpp
* Boss - Jalhalla
*/
#include "d/actor/d_a_bpw.h"
#include "d/d_procname.h"
+8 -8
View File
@@ -285,7 +285,7 @@ void daDitem_c::setParticle() {
if (mpEmitters[0] || mpEmitters[1] || mpEmitters[2] || mpEmitters[3]) {
return;
}
if (chkArgFlag(0x02) || chkArgFlag(0x04) || chkArgFlag(0x08)) {
if (chkArgFlag(FLAG_UNK02) || chkArgFlag(FLAG_UNK04) || chkArgFlag(FLAG_UNK08)) {
return;
}
@@ -314,7 +314,7 @@ bool daDitem_c::CreateInit() {
hide();
clrFlag();
mArgFlag = daDitem_prm::getFlag(this);
if (!chkArgFlag(0x02) && !chkArgFlag(0x04) && !chkArgFlag(0x08)) {
if (!chkArgFlag(FLAG_UNK02) && !chkArgFlag(FLAG_UNK04) && !chkArgFlag(FLAG_UNK08)) {
current.angle.y = -0x2000;
}
for (int i = 0; i < ARRAY_SIZE(mpEmitters); i++) {
@@ -351,17 +351,17 @@ void daDitem_c::set_pos() {
cXyz pos;
cXyz offset;
if (chkArgFlag(0x02)) {
if (chkArgFlag(FLAG_UNK02)) {
offset = offset_tbl[1];
} else if (chkArgFlag(0x04)) {
} else if (chkArgFlag(FLAG_UNK04)) {
offset = offset_tbl[2];
} else if (chkArgFlag(0x08)) {
} else if (chkArgFlag(FLAG_UNK08)) {
offset = mOffsetPos;
} else {
offset = offset_tbl[0];
}
if (!chkArgFlag(0x08)) {
if (!chkArgFlag(FLAG_UNK08)) {
fopAc_ac_c* player = dComIfGp_getPlayer(0);
mDoMtx_stack_c::ZXYrotS(player->current.angle.x, player->shape_angle.y, player->current.angle.z);
mDoMtx_stack_c::multVec(&offset, &offset);
@@ -410,7 +410,7 @@ void daDitem_c::set_mtx() {
mpModel->setBaseScale(scale);
fopAcM_addAngleY(this, current.angle.y + 0x0111, 0x0111);
if (chkArgFlag(0x02) || chkArgFlag(0x04) || chkArgFlag(0x08)) {
if (chkArgFlag(FLAG_UNK02) || chkArgFlag(FLAG_UNK04) || chkArgFlag(FLAG_UNK08)) {
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::YrotM(current.angle.y);
} else {
@@ -437,7 +437,7 @@ void daDitem_c::setListStart() {
}
BOOL daDitem_c::Delete() {
if (!chkArgFlag(0x01)) {
if (!chkArgFlag(FLAG_UNK01)) {
execItemGet(m_itemNo);
}
+2 -2
View File
@@ -27,7 +27,7 @@ static BOOL daDisappear_Execute(disappear_class* i_this) {
if (dropType == daDisItem_HEART_CONTAINER_e) {
fopAcM_createItemForBoss(&i_this->current.pos, 0, i_this->current.roomNo, &i_this->current.angle, NULL, 0);
}
else if (dropType >= daDisItem_HEART_e && dropType <= daDisItem_UNK13_e) {
else if (dropType >= daDisItem_HEART_e && dropType <= daDisItem_NONE13_e) {
// Special type for Keese (ki) spawned in the Puppet Ganon fight.
// This also seems to be used by several other enemies, such as Molgera's spawn.
static u32 ki_item_d[] = {
@@ -101,7 +101,7 @@ static cPhs_State daDisappear_Create(fopAc_ac_c* i_this) {
fopAcM_SetupActor(dis, disappear_class);
dis->health = fopAcM_GetParam(dis) & 0xFF;
dis->health = fopAcM_GetParam(dis) & 0xFF; // Drop type param is stored in health
f32 scaleMag = ((fopAcM_GetParam(dis) >> 8) & 0xFF) * 0.1f;
dis->mItemBitNo = (fopAcM_GetParam(dis) >> 0x10) & 0xFF;
+8 -8
View File
@@ -58,29 +58,29 @@ static void anm_init(dr_class* i_this, int bckFileIdx, f32 morf, u8 loopMode, f3
/* 00000320-0000091C .text move__FP8dr_class */
static void move(dr_class* i_this) {
bool isIdle = false;
switch (i_this->mState) {
switch (i_this->mMode) {
case 0:
isIdle = true;
anm_init(i_this, DR_BCK_DR_WAIT1, l_HIO.mWait1Morf, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->mState++;
i_this->mMode++;
i_this->mCountDownTimers[0] = (s16)(200.0f + cM_rndF(200.0f));
break;
case 1:
isIdle = true;
if (i_this->mCountDownTimers[0] == 0) {
anm_init(i_this, DR_BCK_DR_AKUBI1, l_HIO.mAkubi1Morf, J3DFrameCtrl::EMode_NONE, 1.0f, DR_BAS_AKUBI1);
i_this->mState++;
i_this->mMode++;
}
break;
case 2:
isIdle = true;
if (i_this->mpMorf->isStop()) {
i_this->mState = 0;
i_this->mMode = 0;
}
break;
case 10:
anm_init(i_this, DR_BCK_DR_BIKU1, l_HIO.mBiku1Morf, J3DFrameCtrl::EMode_NONE, 1.0f, DR_BAS_BIKU1);
i_this->mState++;
i_this->mMode++;
i_this->mCountDownTimers[0] = l_HIO.m0E;
i_this->mpBreathEmitter = dComIfGp_particle_set(dPa_name::ID_SCENE_81C4, &i_this->current.pos);
i_this->m2C9 = 0;
@@ -118,7 +118,7 @@ static void move(dr_class* i_this) {
} else {
anm_init(i_this, DR_BCK_DR_HO1, l_HIO.mHo1Morf, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mpBreathEmitter = dComIfGp_particle_set(dPa_name::ID_SCENE_81C6, &i_this->current.pos);
i_this->mState++;
i_this->mMode++;
}
}
@@ -138,7 +138,7 @@ static void move(dr_class* i_this) {
}
if (i_this->mpMorf->isStop()) {
i_this->mState = 0;
i_this->mMode = 0;
if (i_this->mpBreathEmitter) {
i_this->mpBreathEmitter->becomeInvalidEmitter();
i_this->mpBreathEmitter = NULL;
@@ -151,7 +151,7 @@ static void move(dr_class* i_this) {
if ((isIdle && (l_HIO.m0C || dComIfGp_getVibration().CheckQuake())) || i_this->m2C8 != 0) {
l_HIO.m0C = false;
i_this->m2C8 = 0;
i_this->mState = 10;
i_this->mMode = 10;
}
}
+156 -156
View File
@@ -1,7 +1,7 @@
//
// Generated by dtk
// Translation Unit: d_a_fganon.cpp
//
/**
* d_a_fganon.cpp
* Enemy - Phantom Ganon
*/
#include "d/actor/d_a_fganon.h"
#include "d/d_procname.h"
@@ -185,23 +185,23 @@ void fly(fganon_class* i_this) {
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
dBgS_LinChk linChk;
if ((((i_this->m384 & 0xF) == 0) && (cM_rndF(1.0f) < 0.5f)) || (i_this->m388 == -10)) {
if ((((i_this->m384 & 0xF) == 0) && (cM_rndF(1.0f) < 0.5f)) || (i_this->mMode == -10)) {
i_this->m398 = player->shape_angle.y;
}
switch (i_this->m388) {
switch (i_this->mMode) {
case -10:
deru_brk(i_this);
i_this->current.pos = i_this->home.pos;
i_this->current.pos.y = player->current.pos.y + l_HIO.m10;
i_this->shape_angle.y = fopAcM_searchPlayerAngleY(a_this);
i_this->m388 = 1;
i_this->mMode = 1;
anm_init(i_this, FGANON_BCK_WAIT1, 20.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m3A4[1] = 60;
break;
case 0:
anm_init(i_this, FGANON_BCK_WAIT1, 20.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m388++;
i_this->mMode++;
i_this->m3A0 = 0.0f;
i_this->m3A4[1] = (short)(cM_rndF(50.0f) + 50.0f);
// Fall-through
@@ -235,24 +235,24 @@ void fly(fganon_class* i_this) {
fly_se_set(i_this);
if (i_this->m3A4[1] == 0) {
i_this->m386 = 6;
i_this->m388 = 0;
i_this->mAction = 6;
i_this->mMode = 0;
}
if (i_this->m3A4[2] == 0) {
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
}
}
/* 000015A8-00001BD0 .text shot__FP12fganon_class */
void shot(fganon_class* i_this) {
cLib_addCalcAngleS2(&i_this->shape_angle.y, fopAcM_searchPlayerAngleY(i_this), 10, 0x400);
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
if (!i_this->m408) {
anm_init(i_this, FGANON_BCK_TAME1, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m388++;
i_this->mMode++;
i_this->m3A4[0] = 40;
fopAcM_monsSeStart(i_this, JA_SE_CV_PG_EBALL_MAKE_S, 0);
// Fall-through
@@ -269,7 +269,7 @@ void shot(fganon_class* i_this) {
}
if (i_this->m3A4[0] == 0) {
anm_init(i_this, FGANON_BCK_NAGERU1, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->m388++;
i_this->mMode++;
fopAcM_monsSeStart(i_this, JA_SE_CV_PG_EBALL_FIRE_S, 0);
mDoAud_seStart(JA_SE_CM_PG_EBALL_FIRE_S, &i_this->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
}
@@ -285,7 +285,7 @@ void shot(fganon_class* i_this) {
}
if (i_this->mpMorf->isStop()) {
anm_init(i_this, FGANON_BCK_WAIT1, 3.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m388++;
i_this->mMode++;
}
// Fall-through
}
@@ -300,7 +300,7 @@ void shot(fganon_class* i_this) {
else {
anm_init(i_this, FGANON_BCK_TENNISRL1, 0.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
}
i_this->m388++;
i_this->mMode++;
fopAcM_monsSeStart(i_this, JA_SE_CV_PG_REFLECT_EBALL, 0);
mDoAud_seStart(JA_SE_CM_PG_SWING_S, &i_this->eyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
i_this->m687++;
@@ -309,8 +309,8 @@ void shot(fganon_class* i_this) {
}
}
else if (i_this->m2BC == 2) {
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
return;
}
}
@@ -324,7 +324,7 @@ void shot(fganon_class* i_this) {
if (i_this->mpMorf->isStop() || ((i_this->m2BC >= 1) && (i_this->mpMorf->getFrame() >= 20.0f)))
{
anm_init(i_this, FGANON_BCK_WAIT1, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m388 = 3;
i_this->mMode = 3;
}
// Fall-through
}
@@ -332,11 +332,11 @@ void shot(fganon_class* i_this) {
cLib_addCalc0(&i_this->speedF, 1.0f, REG0_F(14) + 1.0f);
pos_move(i_this, 0);
fly_se_set(i_this);
if ((i_this->m388 >= 2) && (i_this->m408 == 0)) {
i_this->m386 = 5;
i_this->m388 = 0;
if ((i_this->mMode >= 2) && (i_this->m408 == 0)) {
i_this->mAction = 5;
i_this->mMode = 0;
}
if ((i_this->m388 == 3) || (i_this->m388 == 4)) {
if ((i_this->mMode == 3) || (i_this->mMode == 4)) {
mDoAud_monsSeStart(JA_SE_OBJ_PG_EBALL_FLY_S, &i_this->m3E0, 100, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
}
}
@@ -347,10 +347,10 @@ void spinattack(fganon_class* i_this) {
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
dBgS_LinChk linChk;
int mFrame = i_this->mpMorf->mFrameCtrl.getFrame();
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
i_this->shape_angle.y = player->shape_angle.y;
i_this->m388 = 1;
i_this->mMode = 1;
// Fall-through
}
case 1: {
@@ -363,7 +363,7 @@ void spinattack(fganon_class* i_this) {
if (!dComIfG_Bgsp()->LineCross(&linChk)) {
i_this->current.pos.y -= 100.0f;
anm_init(i_this, FGANON_BCK_WAIT1, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m388 = 2;
i_this->mMode = 2;
i_this->m3A4[0] = 30;
deru_brk(i_this);
// Fall-through
@@ -376,7 +376,7 @@ void spinattack(fganon_class* i_this) {
case 2: {
if (i_this->m3A4[0] == 0) {
anm_init(i_this, FGANON_BCK_KAITEN1, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->m388 = 3;
i_this->mMode = 3;
i_this->speedF = 0.0f;
fopAcM_monsSeStart(i_this, JA_SE_CV_PG_EBALL_FIRE_S, 0);
}
@@ -406,8 +406,8 @@ void spinattack(fganon_class* i_this) {
i_this->current.angle.x = 0;
pos_move(i_this, 1);
if (i_this->mpMorf->isStop()) {
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
}
break;
}
@@ -420,22 +420,22 @@ void fly2(fganon_class* i_this) {
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
dBgS_LinChk linChk;
if ((((i_this->m384 & 0xF) == 0) && (cM_rndF(1.0f) < 0.5f)) || (i_this->m388 == -10)) {
if ((((i_this->m384 & 0xF) == 0) && (cM_rndF(1.0f) < 0.5f)) || (i_this->mMode == -10)) {
i_this->m398 = player->shape_angle.y;
}
switch (i_this->m388) {
switch (i_this->mMode) {
case -10:
deru_brk(i_this);
i_this->current.pos = i_this->home.pos;
i_this->current.pos.y = player->current.pos.y + l_HIO.m18;
i_this->shape_angle.y = fopAcM_searchPlayerAngleY(a_this);
i_this->m388 = 1;
i_this->mMode = 1;
anm_init(i_this, FGANON_BCK_WAIT1, 20.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m3A4[1] = 40;
break;
case 0:
anm_init(i_this, FGANON_BCK_WAIT1, 20.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m388++;
i_this->mMode++;
i_this->m3A0 = 0.0f;
i_this->m3A4[1] = (short)(cM_rndF(50.0f) + 50.0f);
// Fall-through
@@ -469,13 +469,13 @@ void fly2(fganon_class* i_this) {
fly_se_set(i_this);
if (i_this->m3A4[1] == 0) {
i_this->m386 = 11;
i_this->m388 = 0;
i_this->mAction = 11;
i_this->mMode = 0;
}
if (i_this->m3A4[2] == 0) {
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
}
}
@@ -568,7 +568,7 @@ void mahou_set(fganon_class* i_this) {
void shot2(fganon_class* i_this) {
cLib_addCalcAngleS2(&i_this->shape_angle.y, fopAcM_searchPlayerAngleY(i_this), 10, 0x400);
int mFrame = i_this->mpMorf->mFrameCtrl.getFrame();
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
anm_init(i_this, FGANON_BCK_TAME_S1, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
for (int i = 0; i < 2; i++) {
@@ -580,7 +580,7 @@ void shot2(fganon_class* i_this) {
i_this->mEmitters2[0] = dComIfGp_particle_set(dPa_name::ID_SCENE_8218, &i_this->current.pos, NULL);
i_this->mEmitters2[1] = dComIfGp_particle_set(dPa_name::ID_SCENE_8219, &i_this->current.pos, NULL);
fopAcM_monsSeStart(i_this, JA_SE_CV_PG_EBALL_MAKE_L, 0);
i_this->m388++;
i_this->mMode++;
// Fall-through
}
case 1: {
@@ -593,7 +593,7 @@ void shot2(fganon_class* i_this) {
if (i_this->mpMorf->isStop()) {
anm_init(i_this, FGANON_BCK_TAME_S2, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m3A4[0] = l_HIO.m3C;
i_this->m388++;
i_this->mMode++;
for (int i = 0; i < 2; i++) {
if (i_this->mEmitters2[i] != NULL) {
i_this->mEmitters2[i]->becomeInvalidEmitter();
@@ -611,7 +611,7 @@ void shot2(fganon_class* i_this) {
fopAcM_seStart(i_this, JA_SE_CM_PG_EBALL_MAKING_L, 0);
if (i_this->m3A4[0] == 0) {
anm_init(i_this, FGANON_BCK_NAGERU_S1, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->m388++;
i_this->mMode++;
i_this->mEmitters2[0] = dComIfGp_particle_set(dPa_name::ID_SCENE_821C, &i_this->current.pos, NULL);
i_this->mEmitters2[1] = dComIfGp_particle_set(dPa_name::ID_SCENE_821D, &i_this->current.pos, NULL);
}
@@ -642,7 +642,7 @@ void shot2(fganon_class* i_this) {
}
if (i_this->mpMorf->isStop()) {
i_this->m3A4[0] = 60;
i_this->m388 = 4;
i_this->mMode = 4;
for (int i = 0; i < 2; i++) {
if (i_this->mEmitters2[i] != NULL) {
i_this->mEmitters2[i]->becomeInvalidEmitter();
@@ -657,8 +657,8 @@ void shot2(fganon_class* i_this) {
anm_init(i_this, FGANON_BCK_WAIT1, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
}
if (i_this->m3A4[0] == 0) {
i_this->m386 = 9;
i_this->m388 = 0;
i_this->mAction = 9;
i_this->mMode = 0;
}
break;
}
@@ -678,10 +678,10 @@ void spinattack2(fganon_class* i_this) {
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
dBgS_LinChk linChk;
int mFrame = i_this->mpMorf->mFrameCtrl.getFrame();
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
i_this->shape_angle.y = player->shape_angle.y + i_this->m68F * 0x3333;
i_this->m388 = 1;
i_this->mMode = 1;
if (i_this->m68F == 0) {
for (int i = 1; i < 5; i++) {
fopAcM_create(PROC_FGANON, (i * 16) | 3, &i_this->current.pos, i_this->current.roomNo);
@@ -698,7 +698,7 @@ void spinattack2(fganon_class* i_this) {
MtxPosition(&offset, &transformedPos);
i_this->current.pos = player->current.pos + transformedPos;
anm_init(i_this, 10, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m388 = 2;
i_this->mMode = 2;
deru_brk(i_this);
i_this->m38C = player->current.pos;
}
@@ -711,7 +711,7 @@ void spinattack2(fganon_class* i_this) {
local_e4 = i_this->m38C - i_this->current.pos;
if (local_e4.abs() < l_HIO.m38) {
anm_init(i_this, 9, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->m388 = 3;
i_this->mMode = 3;
i_this->speedF = 0.0f;
fopAcM_monsSeStart(i_this, JA_SE_CV_PG_EBALL_FIRE_S, 0);
break;
@@ -731,21 +731,21 @@ void spinattack2(fganon_class* i_this) {
}
if (i_this->mpMorf->isStop()) {
if (i_this->m68F == 0) {
i_this->m388 = 4;
i_this->mMode = 4;
i_this->m3A4[0] = 40;
anm_init(i_this, FGANON_BCK_WAIT1, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
}
else {
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
}
}
break;
}
case 4: {
if (i_this->m3A4[0] == 0) {
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
}
break;
}
@@ -756,17 +756,17 @@ void spinattack2(fganon_class* i_this) {
/* 00003690-00003B3C .text down__FP12fganon_class */
void down(fganon_class* i_this) {
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
anm_init(i_this, 6, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->m388++;
i_this->mMode++;
i_this->speed.y = 0.0f;
}
case 1: {
i_this->m3AE = 5;
if (i_this->mAcch.ChkGroundHit()) {
if (i_this->mpMorf->isStop()) {
i_this->m388++;
i_this->mMode++;
anm_init(i_this, FGANON_BCK_TYAKUTI1, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
}
}
@@ -775,7 +775,7 @@ void down(fganon_class* i_this) {
}
case 2: {
if (i_this->mpMorf->isStop()) {
i_this->m388++;
i_this->mMode++;
anm_init(i_this, 8, 2.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
}
break;
@@ -789,7 +789,7 @@ void down(fganon_class* i_this) {
}
case 10: {
anm_init(i_this, 7, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->m388 = 2;
i_this->mMode = 2;
}
default:
break;
@@ -811,8 +811,8 @@ void down(fganon_class* i_this) {
bVar3 = TRUE;
}
if ((i_this->m3A4[0] == 0) || bVar3) {
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
if (i_this->m2BC != 0) {
i_this->health = 100;
}
@@ -844,54 +844,54 @@ BOOL kabe_check(fganon_class* i_this) {
/* 00004300-000044CC .text deru__FP12fganon_class */
void deru(fganon_class* i_this) {
i_this->m3AE = 3;
switch(i_this->m388) {
switch(i_this->mMode) {
case 0:
if(l_HIO.m06 != 0) {
if (l_HIO.m06 == 1) {
i_this->m386 = 5;
i_this->m388 = -10;
i_this->mAction = 5;
i_this->mMode = -10;
i_this->m3A4[2] = l_HIO.m0A;
}
else if (l_HIO.m06 == 2) {
i_this->m386 = 7;
i_this->m388 = 0;
i_this->mAction = 7;
i_this->mMode = 0;
}
else if (l_HIO.m06 == 3) {
i_this->m386 = 9;
i_this->m388 = -10;
i_this->mAction = 9;
i_this->mMode = -10;
i_this->m3A4[2] = l_HIO.m0A;
}
else if (l_HIO.m06 == 4) {
i_this->m386 = 10;
i_this->m388 = 0;
i_this->mAction = 10;
i_this->mMode = 0;
}
}
else {
if (i_this->m2BC == 0) {
if (cM_rndF(1.0f) < 0.5f) {
i_this->m386 = 5;
i_this->m388 = -10;
i_this->mAction = 5;
i_this->mMode = -10;
i_this->m3A4[2] = l_HIO.m0A;
}
else {
i_this->m386 = 7;
i_this->m388 = 0;
i_this->mAction = 7;
i_this->mMode = 0;
}
}
else {
if ((cM_rndF(1.0f) < 0.4f) && !kabe_check(i_this)) {
i_this->m386 = 10;
i_this->m388 = 0;
i_this->mAction = 10;
i_this->mMode = 0;
}
else {
if (cM_rndF(1.0f) < 0.5f) {
i_this->m386 = 9;
i_this->m388 = -10;
i_this->mAction = 9;
i_this->mMode = -10;
i_this->m3A4[2] = l_HIO.m0A;
}
else {
i_this->m386 = 5;
i_this->m388 = -10;
i_this->mAction = 5;
i_this->mMode = -10;
i_this->m3A4[2] = l_HIO.m0A;
}
}
@@ -904,19 +904,19 @@ void deru(fganon_class* i_this) {
/* 000044CC-00004584 .text kieru__FP12fganon_class */
void kieru(fganon_class* i_this) {
i_this->m3AE = 3;
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
if ((i_this->m408 == 1) || (i_this->m408 == 2)) {
i_this->m408 = 35;
}
kieru_brk(i_this, 0);
if (i_this->m68F != 0) {
i_this->m388 = 1;
i_this->mMode = 1;
i_this->m3A4[0] = 30;
}
else {
i_this->m386 = 0;
i_this->m388 = 0;
i_this->mAction = 0;
i_this->mMode = 0;
}
break;
}
@@ -934,16 +934,16 @@ void fail(fganon_class* i_this) {
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
i_this->m3AE = 3;
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
kieru_brk(i_this, 1);
i_this->m388 = 1;
i_this->mMode = 1;
anm_init(i_this, 7, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
break;
}
case 1: {
if (i_this->mpMorf->isStop()) {
i_this->m388 = 2;
i_this->mMode = 2;
i_this->m3A4[0] = 30;
dBgS_LinChk linChk;
@@ -1013,7 +1013,7 @@ void fail(fganon_class* i_this) {
else {
i_this->m698 = 0.0f;
i_this->m3A4[0] = 0;
i_this->m388 = 3;
i_this->mMode = 3;
}
}
}
@@ -1023,7 +1023,7 @@ void fail(fganon_class* i_this) {
if (i_this->m3A4[0] == 0) {
kieru_brk(i_this, 2);
i_this->m3A4[0] = 10;
i_this->m388 = 4;
i_this->mMode = 4;
i_this->mBokoID = fopAcM_create(PROC_BOKO, 5, &i_this->current.pos, i_this->current.roomNo);
}
break;
@@ -1052,7 +1052,7 @@ void fail(fganon_class* i_this) {
void standby(fganon_class* i_this) {
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
i_this->m3AE = 3;
switch(i_this->m388) {
switch(i_this->mMode) {
case -1: {
if (i_this->m2BC == 2) {
if (!dComIfGs_checkGetItem(dItem_LIGHT_ARROW_e)) {
@@ -1069,7 +1069,7 @@ void standby(fganon_class* i_this) {
float distXZ = std::sqrtf(xOffset * xOffset + zOffset * zOffset);
if (distXZ < i_this->m2BD * 10.0f) {
i_this->m3A4[0] = l_HIO.m08;
i_this->m388 = 1;
i_this->mMode = 1;
fopAcM_OnStatus(i_this, fopAcStts_SHOWMAP_e);
i_this->mB89 = 22;
}
@@ -1077,13 +1077,13 @@ void standby(fganon_class* i_this) {
}
case 0: {
i_this->m3A4[0] = l_HIO.m08;
i_this->m388++;
i_this->mMode++;
// fallthrough
}
case 1: {
if (i_this->m3A4[0] == 0) {
i_this->m386 = 1;
i_this->m388 = 0;
i_this->mAction = 1;
i_this->mMode = 0;
i_this->m69C = 0.0f;
i_this->m698 = 0.0f;
i_this->m694 = 0.0f;
@@ -1101,13 +1101,13 @@ void start(fganon_class* i_this) {
i_this->m3AE = 3;
fopAcM_OffStatus(i_this, 0);
i_this->attention_info.flags = 0;
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
offset = player->current.pos - i_this->home.pos;
float distXZ = std::sqrtf(offset.x * offset.x + offset.z * offset.z);
if (distXZ < i_this->m2BD * 10.0f) {
i_this->mB54 = 1;
i_this->m388 = 1;
i_this->mMode = 1;
anm_init(i_this, FGANON_BCK_WAIT1, 0.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
mDoAud_bgmAllMute(30);
}
@@ -1120,11 +1120,11 @@ void start(fganon_class* i_this) {
case 2: {
anm_init(i_this, FGANON_BCK_WARAU1, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
fopAcM_monsSeStart(i_this, JA_SE_CV_PG_LAUGH_2, 0);
i_this->m388 = 3;
i_this->mMode = 3;
break;
}
case 4: {
i_this->m388 = 5;
i_this->mMode = 5;
i_this->m3A4[0] = REG0_S(0) + 0x50;
anm_init(i_this, FGANON_BCK_TAME1, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
}
@@ -1162,9 +1162,9 @@ void end(fganon_class* i_this) {
fopAcM_OffStatus(i_this, 0);
i_this->attention_info.flags = 0;
s32 mFrame = i_this->mpMorf->mFrameCtrl.getFrame();
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
i_this->m388 = 1;
i_this->mMode = 1;
anm_init(i_this, FGANON_BCK_LAST_DAMAGE1, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mB54 = 50;
dComIfGs_onEventBit(0x3f20); // PG_DEFEATED? It appears further down in `energy_ball_move`
@@ -1179,13 +1179,13 @@ void end(fganon_class* i_this) {
deru_brk(i_this);
anm_init(i_this, FGANON_BCK_WARAU1, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
fopAcM_monsSeStart(i_this, JA_SE_CV_PG_LAUGH_2, 0);
i_this->m388 = 3;
i_this->mMode = 3;
break;
}
case 4: {
deru_brk(i_this);
anm_init(i_this, FGANON_BCK_SARU1, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->m388 = 5;
i_this->mMode = 5;
i_this->speed.y = 0.0f;
fopAcM_seStart(i_this, JA_SE_CM_PG_END_1, 0);
}
@@ -1199,7 +1199,7 @@ void end(fganon_class* i_this) {
kieru_brk2(i_this);
}
if (mFrame == 48) {
i_this->m388 = 6;
i_this->mMode = 6;
}
}
case 6:
@@ -1214,9 +1214,9 @@ void last_end(fganon_class* i_this) {
i_this->m3AE = 3;
fopAcM_OffStatus(i_this, 0);
i_this->attention_info.flags = 0;
switch(i_this->m388) {
switch(i_this->mMode) {
case 0: {
i_this->m388 = 1;
i_this->mMode = 1;
anm_init(i_this, FGANON_BCK_MOGAKU1, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mB54 = 100;
i_this->m3C0 = 10000.0f;
@@ -1225,7 +1225,7 @@ void last_end(fganon_class* i_this) {
}
case 1: {
if (i_this->m3A4[1] == 0) {
i_this->m388 = 2;
i_this->mMode = 2;
i_this->m3A4[1] = 20;
i_this->m2D0 = 1;
i_this->mB54++;
@@ -1237,7 +1237,7 @@ void last_end(fganon_class* i_this) {
cLib_addCalc2(&i_this->scale.z, 0.1f, 1.0f, 0.05f);
cLib_addCalc2(&i_this->scale.y, 0.1f, 1.0f, 0.05f);
if (i_this->m3A4[1] == 0) {
i_this->m388 = 3;
i_this->mMode = 3;
i_this->m3A4[1] = 30;
fopAcM_seStart(i_this, JA_SE_CM_L_ARROW_PASS_AWAY, 0);
}
@@ -1251,7 +1251,7 @@ void last_end(fganon_class* i_this) {
i_this->scale.x = 0.0f;
i_this->scale.y = 0.0f;
i_this->scale.z = 0.0f;
i_this->m388 = 4;
i_this->mMode = 4;
i_this->m3A4[1] = 30;
}
break;
@@ -1270,7 +1270,7 @@ void last_end(fganon_class* i_this) {
mBoko->setMatrix(i_this->mpKenModel->getBaseTRMtx());
if (i_this->m3A4[1] == 1) {
fopAcM_cancelCarryNow(mBoko);
i_this->m388 = 5;
i_this->mMode = 5;
i_this->mB54++;
i_this->mB56 = 0;
}
@@ -1340,8 +1340,8 @@ void damage_check(fganon_class* i_this) {
dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, &i_this->eyePos, &local_a0, &local_44);
dKy_SordFlush_set(i_this->eyePos, 1);
i_this->m386 = 22;
i_this->m388 = 0;
i_this->mAction = 22;
i_this->mMode = 0;
i_this->m3AE = 1000;
mDoAud_subBgmStop();
@@ -1364,8 +1364,8 @@ void damage_check(fganon_class* i_this) {
i_this->speedF = 0.0f;
}
else {
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
if ((i_this->m408 == 1) || (i_this->m408 == 2)) {
i_this->m408 = 35;
}
@@ -1408,8 +1408,8 @@ void damage_check(fganon_class* i_this) {
dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, &i_this->eyePos, &local_a0, &local_44);
dKy_SordFlush_set(i_this->eyePos, 1);
i_this->m386 = 8;
i_this->m388 = 0;
i_this->mAction = 8;
i_this->mMode = 0;
i_this->m3B0 = REG8_F(11) + 80.0f;
i_this->m3B8 = REG8_S(2) + 7;
@@ -1426,7 +1426,7 @@ void damage_check(fganon_class* i_this) {
}
}
if (i_this->m68F) {
if ((i_this->mCyl.ChkTgHit()) || (master->m386 == 8)) {
if ((i_this->mCyl.ChkTgHit()) || (master->mAction == 8)) {
mEmitter = dComIfGp_particle_set(dPa_name::ID_SCENE_826B, &i_this->current.pos, NULL);
if (mEmitter != NULL) {
mEmitter->setGlobalRTMatrix(i_this->mpMorf->getModel()->getAnmMtx(0));
@@ -1438,7 +1438,7 @@ void damage_check(fganon_class* i_this) {
if ((i_this->mCyl.ChkTgHit()) || (i_this->m68C)) {
i_this->m3AE = 6;
if (i_this->mCyl.ChkTgHit()) {
if(((i_this->m386 == 8) || (i_this->m386 == 7)) || (i_this->m386 == 10)) {
if(((i_this->mAction == 8) || (i_this->mAction == 7)) || (i_this->mAction == 10)) {
atInfo.mpObj = i_this->mCyl.GetTgHitObj();
pPos = i_this->mCyl.GetTgHitPosP();
atInfo.pParticlePos = pPos;
@@ -1472,14 +1472,14 @@ void damage_check(fganon_class* i_this) {
dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, pPos, &local_a0, &local_44);
if ((i_this->m386 == 7) || (i_this->m386 == 10)) {
i_this->m386 = 8;
i_this->m388 = 0;
if ((i_this->mAction == 7) || (i_this->mAction == 10)) {
i_this->mAction = 8;
i_this->mMode = 0;
}
else if (i_this->m2BC == 0) {
if (i_this->health <= 0) {
i_this->m386 = 21;
i_this->m388 = 0;
i_this->mAction = 21;
i_this->mMode = 0;
i_this->m3AE = 1000;
mDoAud_subBgmStop();
}
@@ -1487,17 +1487,17 @@ void damage_check(fganon_class* i_this) {
i_this->m690 -= atInfo.mDamage;
if (i_this->m690 <= 0) {
i_this->m690 = 10;
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
}
else {
i_this->m388 = 10;
i_this->mMode = 10;
}
}
}
else if (i_this->m2BC == 1) {
i_this->m386 = 3;
i_this->m388 = 0;
i_this->mAction = 3;
i_this->mMode = 0;
i_this->health = 0;
mDoAud_subBgmStop();
}
@@ -1519,8 +1519,8 @@ void damage_check(fganon_class* i_this) {
dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, &i_this->eyePos, &local_a0, &local_44);
dKy_SordFlush_set(i_this->eyePos, 1);
i_this->m386 = 8;
i_this->m388 = 0;
i_this->mAction = 8;
i_this->mMode = 0;
i_this->m3B0 = REG8_F(11) + 80.0f;
i_this->m3B8 = REG8_S(2) + 7;
@@ -1537,8 +1537,8 @@ void damage_check(fganon_class* i_this) {
/* 00006288-00006560 .text move__FP12fganon_class */
s32 move(fganon_class* i_this) {
int res = 0;
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) && !dComIfGp_checkPlayerStatus0(0, daPyStts0_SWIM_e) && i_this->m386) {
if (i_this->m386 == 10) {
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) && !dComIfGp_checkPlayerStatus0(0, daPyStts0_SWIM_e) && i_this->mAction) {
if (i_this->mAction == 10) {
dCam_getBody()->SetTypeForce("P_Ganon3", NULL);
}
else if (i_this->m2BC != 1) {
@@ -1548,17 +1548,17 @@ s32 move(fganon_class* i_this) {
dCam_getBody()->SetTypeForce("P_Ganon2", NULL);
}
}
if ((i_this->m2BC == 0) && (i_this->m386 < 20)) {
if ((i_this->m2BC == 0) && (i_this->mAction < 20)) {
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
if ((i_this->m386 == 0) && (player->current.pos.y < 710.0f)) {
if ((i_this->mAction == 0) && (player->current.pos.y < 710.0f)) {
return 0;
}
if ((i_this->m386 != 2) && (player->current.pos.y < 710.0f)) {
i_this->m386 = 2;
i_this->m388 = 0;
if ((i_this->mAction != 2) && (player->current.pos.y < 710.0f)) {
i_this->mAction = 2;
i_this->mMode = 0;
}
}
switch(i_this->m386) {
switch(i_this->mAction) {
case 0:
standby(i_this);
break;
@@ -1734,14 +1734,14 @@ void demo_camera(fganon_class* i_this) {
cLib_addCalc2(&i_this->mB80, 0.1f, 1.0f, REG8_F(7) + 0.01f);
}
if (i_this->mB56 == 110) {
i_this->m388 = 2;
i_this->mMode = 2;
}
if (i_this->mB56 == 180) {
i_this->m388 = 4;
i_this->mMode = 4;
}
if (i_this->mB56 == 280) {
i_this->m386 = 6;
i_this->m388 = 1;
i_this->mAction = 6;
i_this->mMode = 1;
i_this->m3A4[0] = 29;
i_this->mB54 = 150;
if (i_this->m2BF != 0xFF) {
@@ -1822,7 +1822,7 @@ void demo_camera(fganon_class* i_this) {
player->setPlayerPosAndAngle(&transformedPos, 0.0f);
if (i_this->mB56 == 10) {
i_this->m388++;
i_this->mMode++;
}
i_this->current.pos.x = (i_this->mB68.x - 50.0f) + REG0_F(4);
@@ -1859,7 +1859,7 @@ void demo_camera(fganon_class* i_this) {
i_this->mB68 = i_this->eyePos;
i_this->mB68.y -= REG0_F(11) + 30.0f;
i_this->m388++;
i_this->mMode++;
}
case 54: {
cLib_addCalc2(&i_this->mB68.y, (i_this->eyePos.y - 30.0f) + REG0_F(11), 0.1f, 20.0f);
@@ -2130,8 +2130,8 @@ void energy_ball_move(fganon_class* i_this) {
if (i_this->m40A != 0) {
return;
}
i_this->m386 = 2;
i_this->m388 = 0;
i_this->mAction = 2;
i_this->mMode = 0;
i_this->m40A = 50;
return;
}
@@ -2283,10 +2283,10 @@ void energy_ball_move(fganon_class* i_this) {
if (i_this->mBallAtSph.ChkAtHit() != 0) {
atInfo.mpActor = i_this->mBallAtSph.GetAtHitObj()->GetAc();
if ((atInfo.mpActor && (fopAcM_GetName(atInfo.mpActor) == PROC_PLAYER)) && (i_this->m386 != 22)) {
if ((atInfo.mpActor && (fopAcM_GetName(atInfo.mpActor) == PROC_PLAYER)) && (i_this->mAction != 22)) {
i_this->m68B = 1;
i_this->m386 = 5;
i_this->m388 = 1;
i_this->mAction = 5;
i_this->mMode = 1;
i_this->m3A4[1] = (cM_rndF(30.0f)) + 70.f;
}
}
@@ -2336,7 +2336,7 @@ static BOOL daFganon_Execute(fganon_class* i_this) {
fpcM_Search(&mahou_se_set, i_this);
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, &i_this->current.pos, &i_this->tevStr);
if (((((i_this->m386 == 5) || (i_this->m386 == 9)) || (i_this->m386 == 7)) || (i_this->m386 == 10)) && ((i_this->m68B != 0 && (i_this->m68A == 0)))) {
if (((((i_this->mAction == 5) || (i_this->mAction == 9)) || (i_this->mAction == 7)) || (i_this->mAction == 10)) && ((i_this->m68B != 0 && (i_this->m68A == 0)))) {
i_this->m68B = 0;
anm_init(i_this, FGANON_BCK_WARAU1, 6.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->m68A = 60;
@@ -2431,7 +2431,7 @@ static BOOL daFganon_Execute(fganon_class* i_this) {
energy_ball_move(i_this);
for (int i = 0; i < 2; i++) {
if ((i_this->mbIsMaterialized != 0) && (i_this->m386 != 22)) {
if ((i_this->mbIsMaterialized != 0) && (i_this->mAction != 22)) {
if (i_this->mEmitters1[i] != NULL) {
i_this->mEmitters1[i]->setGlobalRTMatrix(i_this->mpMorf->getModel()->getAnmMtx(jno[i]));
}
@@ -2831,8 +2831,8 @@ static cPhs_State daFganon_Create(fopAc_ac_c* i_act) {
if (i_this->m68F == 0) {
master = i_this;
if (i_this->m2BC == 0) {
i_this->m386 = 20;
i_this->m388 = 0;
i_this->mAction = 20;
i_this->mMode = 0;
kieru_brk(i_this, 0);
i_this->max_health = 30;
i_this->health = 30;
@@ -2841,14 +2841,14 @@ static cPhs_State daFganon_Create(fopAc_ac_c* i_act) {
else {
i_this->max_health = 100;
i_this->health = 100;
i_this->m386 = 0;
i_this->m388= -1;
i_this->mAction = 0;
i_this->mMode= -1;
}
i_this->current.pos.y += 10000.0f;
}
else {
i_this->m386 = 10;
i_this->m388 = 0;
i_this->mAction = 10;
i_this->mMode = 0;
deru_brk(i_this);
}
i_this->initBt(REG8_F(8) + 300.0f, 300.0f);
+1 -1
View File
@@ -280,7 +280,7 @@ BOOL daHookshot_c::procShot() {
if (
strcmp(dComIfGp_getStartStageName(), "kazeB") == 0 &&
(
(sp8C.y < 950.0f && dComIfG_Bgsp()->GetTriPla(mLinChk)->GetNP()->y >= 0.5f) ||
(sp8C.y < 950.0f && cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mLinChk)->GetNP()->y)) ||
dComIfG_Bgsp()->GetAttributeCode(mLinChk) == dBgS_Attr_SAND_e
)
) {
+1 -1
View File
@@ -1287,7 +1287,7 @@ void daItem_c::mode_wait() {
break;
}
if (mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > current.pos.y ||
if ((mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > current.pos.y) ||
(daSea_ChkArea(current.pos.x, current.pos.z) && daSea_calcWave(current.pos.x, current.pos.z) > current.pos.y))
{
mode_water_init();
+1563 -48
View File
File diff suppressed because it is too large Load Diff
+12 -12
View File
@@ -74,20 +74,20 @@ void kotori_move(kt_class* i_this) {
s16* r17;
s16* r16;
switch (i_this->mState) {
switch (i_this->mMode) {
case 0:
i_this->mSpeedFwd = kt_scale * 20.0f + 30.0f;
if (CPad_CHECK_TRIG_LEFT(0) && fopAcM_GetParam(i_this) == 1000) {
i_this->mTargetPos.x = player->current.pos.x;
i_this->mTargetPos.y = player->current.pos.y + 500.0f;
i_this->mTargetPos.z = player->current.pos.z;
i_this->mState = 2;
i_this->mMode = 2;
i_this->mSpeedLerp = 0.0f;
break;
}
if (i_this->mTimer[2] == 0) {
i_this->mState = 1;
i_this->mMode = 1;
offs.x = 0.0f;
offs.y = 0.0f;
offs.z = REG0_F(13) * 100.0f + 3000.0f;
@@ -117,7 +117,7 @@ void kotori_move(kt_class* i_this) {
case 1:
dist = std::sqrtf(vx*vx + vy*vy + vz*vz);
if (dist < REG0_F(1) * 10.0f + 800.0f) {
i_this->mState = 8;
i_this->mMode = 8;
}
cLib_addCalc2(&i_this->mSpeedLerp, 3.0f, 1.0f, 0.1f);
calc_012:
@@ -153,7 +153,7 @@ calc_012:
cLib_addCalc2(&*r26, i_this->mGroundY, REG0_F(6) + 0.3f, REG0_F(7) + 20.0f);
if (std::fabsf(*r26 - i_this->mGroundY) < 1.0f) {
*r26 = i_this->mGroundY;
i_this->mState = 10;
i_this->mMode = 10;
}
dispWing = true;
ret = 1;
@@ -163,7 +163,7 @@ calc_012:
i_this->mTargetPos.y += 200.0f;
dist = std::sqrtf(vx*vx + vy*vy + vz*vz);
if (dist < REG0_F(1) * 10.0f + 800.0f) {
i_this->mState = 9;
i_this->mMode = 9;
}
cLib_addCalc2(&i_this->mSpeedLerp, 3.0f, 1.0f, 0.1f);
goto calc_012;
@@ -184,7 +184,7 @@ calc_012:
*r27 += pt.z;
cLib_addCalc2(&*r26, i_this->mTargetPos.y, REG0_F(6) + 0.5f, REG0_F(7) + 20.0f);
if (std::fabsf(*r26 - i_this->mTargetPos.y) < 1.0f) {
i_this->mState = 20;
i_this->mMode = 20;
i_this->mSpeedLerp = 0.0f;
}
dispWing = true;
@@ -200,7 +200,7 @@ calc_012:
if (std::fabsf(*r26 - i_this->mTargetPos.y) > 1.0f)
dispWing = true;
if (CPad_CHECK_TRIG_LEFT(0)) {
i_this->mState = 0;
i_this->mMode = 0;
i_this->mTimer[0] = 0;
i_this->mLiftYTimer = cM_rndFX(10.0f) + 10.0f;
i_this->mTargetPosHome.y += 2000.0f;
@@ -219,7 +219,7 @@ calc_012:
cLib_addCalcAngleS2(&i_this->current.angle.y, angleX, 10, (s16)(REG0_F(10) * 10.0f + 500.0f));
if (i_this->mTimer[1] == 0 && i_this->mLiftY <= 0.0f) {
i_this->mTimer[1] = 20.0f + cM_rndF(20.0f);
i_this->mState = 11;
i_this->mMode = 11;
}
offs.x = 0.0f;
offs.y = 0.0f;
@@ -240,14 +240,14 @@ calc_012:
}
if (i_this->mTimer[1] == 0) {
i_this->mTimer[1] = 20.0f + cM_rndF(50.0f);
i_this->mState = 10;
i_this->mMode = 10;
i_this->mTargetPos.x = i_this->mTargetPosHome.x + cM_rndFX(1000.0f);
i_this->mTargetPos.z = i_this->mTargetPosHome.z + cM_rndFX(1000.0f);
}
calc_11:
*r26 -= 5.0f;
if (!i_this->mHitGround || dist_xz < (REG0_F(15) * 100.0f + 1500.0f)) {
i_this->mState = 0;
i_this->mMode = 0;
i_this->mTimer[0] = 0;
i_this->mLiftYTimer = 10.0f + cM_rndFX(10.0f);
i_this->mTargetPosHome.y += 2000.0f;
@@ -258,7 +258,7 @@ calc_11:
}
i_this->mHitGround = false;
if (i_this->mState >= 8) {
if (i_this->mMode >= 8) {
Vec pos;
pos.x = *r28;
pos.y = *r26;
+2 -3
View File
@@ -151,9 +151,8 @@ void raincnt_set(f32 count) {
s32 newCount = 0;
if (dKy_checkEventNightStop()) {
s32 newCount2;
if (g_env_light.mRainCount < (newCount2 = (count * count * count) * 250.0f))
newCount = newCount2;
if (g_env_light.mRainCount < (s32)((count * count * count) * 250.0f))
newCount = (count * count * count) * 250.0f;
} else {
newCount = (count * count * count) * 250.0f;
}
+5 -2
View File
@@ -240,8 +240,11 @@ bool daLlift_c::_execute() {
cXyz adjustedPosition;
float distXZ = fopAcM_searchActorDistanceXZ(this, dComIfGp_getPlayer(0));
mActorLifetimeFrameCount++;
if ((m43F) && (m43F--, !m43F)) {
m43E = TRUE;
if (m43F > 0) {
m43F--;
if (m43F == 0) {
m43E = TRUE;
}
}
if ((!m43C) && (m43E)) {
mTargetRotation = ZeroQuat;
+4 -4
View File
@@ -1,7 +1,7 @@
//
// Generated by dtk
// Translation Unit: d_a_mo2.cpp
//
/**
* d_a_mo2.cpp
* Enemy - Moblin
*/
#include "d/actor/d_a_mo2.h"
#include "d/d_procname.h"
+173 -175
View File
@@ -980,206 +980,204 @@ u32 daNpc_Bs1_c::getMsg() {
msgNo = m740;
m740 = 0;
}
else {
if(dComIfGp_event_chkTalkXY()) {
u8 itemNo = dComIfGp_event_getPreItemNo();
else if(dComIfGp_event_chkTalkXY()) {
u8 itemNo = dComIfGp_event_getPreItemNo();
if(mType == 0) {
if(isEmono(itemNo)) {
m840 = itemNo;
switch(itemNo) {
case dItem_BOKOBABA_SEED_e:
msgNo = 0xF78;
if(mType == 0) {
if(isEmono(itemNo)) {
m840 = itemNo;
switch(itemNo) {
case dItem_BOKOBABA_SEED_e:
msgNo = 0xF78;
break;
case dItem_SKULL_NECKLACE_e:
msgNo = 0xF80;
break;
case dItem_RED_JELLY_e:
msgNo = 0xF85;
break;
case dItem_GREEN_JELLY_e:
msgNo = 0xF8A;
break;
case dItem_BLUE_JELLY_e:
msgNo = 0xF8F;
break;
case dItem_JOY_PENDANT_e:
msgNo = 0xF94;
break;
case dItem_GOLDEN_FEATHER_e:
msgNo = 0xF99;
break;
default:
if(dComIfGs_getEventReg(0x7F0F) < 10) {
msgNo = 0xF9E;
break;
case dItem_SKULL_NECKLACE_e:
msgNo = 0xF80;
break;
case dItem_RED_JELLY_e:
msgNo = 0xF85;
break;
case dItem_GREEN_JELLY_e:
msgNo = 0xF8A;
break;
case dItem_BLUE_JELLY_e:
msgNo = 0xF8F;
break;
case dItem_JOY_PENDANT_e:
msgNo = 0xF94;
break;
case dItem_GOLDEN_FEATHER_e:
msgNo = 0xF99;
break;
default:
if(dComIfGs_getEventReg(0x7F0F) < 10) {
msgNo = 0xF9E;
break;
}
}
msgNo = 0xFD4;
break;
}
}
else if(itemNo == KAISEN_PRESENT1) {
msgNo = 0xF6F;
}
else if(itemNo == KAISEN_PRESENT2) {
msgNo = 0xF73;
}
else {
msgNo = 0xF75;
msgNo = 0xFD4;
break;
}
}
else if(itemNo == KAISEN_PRESENT1 || itemNo == KAISEN_PRESENT2) {
msgNo = 0x2F56;
else if(itemNo == KAISEN_PRESENT1) {
msgNo = 0xF6F;
}
else if(isEmono(itemNo)) {
msgNo = 0x2F79;
else if(itemNo == KAISEN_PRESENT2) {
msgNo = 0xF73;
}
else {
msgNo = 0x2F57;
msgNo = 0xF75;
}
}
else if(mType == 0) {
u8 points = dComIfGs_getEventReg(0x86FF);
if(mShopItems.isSoldOutItemAll()) {
msgNo = 0xF3D;
}
else if(dComIfGs_checkGetItem(dItem_BOMB_BAG_e) && !dComIfGs_isEventBit(0x1F20) && isSellBomb()) {
dComIfGs_onEventBit(0x1F20);
m837 = 1;
msgNo = 0xF55;
}
else if(m837) {
msgNo = 0xF58;
}
else if(points >= 60) {
if(m836) {
msgNo = 0xF5D;
}
else {
msgNo = 0xF5C;
m836 = 1;
}
}
else if(points != 0) {
if(m836) {
msgNo = 0xF5B;
}
else {
msgNo = 0xF5A;
m836 = 1;
}
}
else if(m836) {
msgNo = 0xF41;
}
else {
m836 = 1;
msgNo = 0xF3D;
}
else if(itemNo == KAISEN_PRESENT1 || itemNo == KAISEN_PRESENT2) {
msgNo = 0x2F56;
}
else if(mShopItems.isSoldOutItemAll()) {
msgNo = 0x2F62;
else if(isEmono(itemNo)) {
msgNo = 0x2F79;
}
else {
msgNo = 0x2F57;
}
}
else if(mType == 0) {
u8 points = dComIfGs_getEventReg(0x86FF);
if(mShopItems.isSoldOutItemAll()) {
msgNo = 0xF3D;
}
else if(dComIfGs_checkGetItem(dItem_BOMB_BAG_e) && !dComIfGs_isEventBit(0x1F20) && isSellBomb()) {
dComIfGs_onEventBit(0x1F20);
m837 = 1;
msgNo = 0x2F64;
msgNo = 0xF55;
}
else if(m837) {
msgNo = 0x2F67;
msgNo = 0xF58;
}
else if(dComIfGs_isEventBit(0x1F08)) {
if(dComIfGs_isEventBit(0x2040)) {
if(m838 == 1) {
msgNo = 0x2F60;
}
else {
msgNo = 0x2F61;
}
else if(points >= 60) {
if(m836) {
msgNo = 0xF5D;
}
else {
dComIfGs_onEventBit(0x2040);
msgNo = 0x2F5F;
m838 = 1;
msgNo = 0xF5C;
m836 = 1;
}
}
else if(points != 0) {
if(m836) {
msgNo = 0xF5B;
}
else {
msgNo = 0xF5A;
m836 = 1;
}
}
else if(m836) {
msgNo = 0xF41;
}
else {
m836 = 1;
msgNo = 0xF3D;
}
}
else if(mShopItems.isSoldOutItemAll()) {
msgNo = 0x2F62;
}
else if(dComIfGs_checkGetItem(dItem_BOMB_BAG_e) && !dComIfGs_isEventBit(0x1F20) && isSellBomb()) {
dComIfGs_onEventBit(0x1F20);
m837 = 1;
msgNo = 0x2F64;
}
else if(m837) {
msgNo = 0x2F67;
}
else if(dComIfGs_isEventBit(0x1F08)) {
if(dComIfGs_isEventBit(0x2040)) {
if(m838 == 1) {
msgNo = 0x2F60;
}
else {
msgNo = 0x2F61;
}
}
else {
switch(dComIfGs_getEventReg(0xBB07)) {
case 0:
if(m836 || dComIfGs_isEventBit(0x1F10)) {
msgNo = 0x2F46;
break;
}
dComIfGs_onEventBit(0x1F10);
msgNo = 0x2F45;
break;
case 1:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F58;
break;
case 2:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F59;
break;
case 3:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F5A;
break;
case 4:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F5B;
break;
case 5:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F5C;
break;
case 6:
if(m836) {
msgNo = 0x2F69;
break;
}
msgNo = 0x2F5D;
break;
case 7:
if(m836) {
msgNo = 0x2F6A;
break;
}
msgNo = 0x2F5E;
break;
}
if(dComIfGs_isEventBit(0x1F10)) {
dComIfGs_onEventBit(0x1F10);
}
m836 = 1;
dComIfGs_onEventBit(0x2040);
msgNo = 0x2F5F;
m838 = 1;
}
}
else {
switch(dComIfGs_getEventReg(0xBB07)) {
case 0:
if(m836 || dComIfGs_isEventBit(0x1F10)) {
msgNo = 0x2F46;
break;
}
dComIfGs_onEventBit(0x1F10);
msgNo = 0x2F45;
break;
case 1:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F58;
break;
case 2:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F59;
break;
case 3:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F5A;
break;
case 4:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F5B;
break;
case 5:
if(m836) {
msgNo = 0x2F46;
break;
}
msgNo = 0x2F5C;
break;
case 6:
if(m836) {
msgNo = 0x2F69;
break;
}
msgNo = 0x2F5D;
break;
case 7:
if(m836) {
msgNo = 0x2F6A;
break;
}
msgNo = 0x2F5E;
break;
}
if(dComIfGs_isEventBit(0x1F10)) {
dComIfGs_onEventBit(0x1F10);
}
m836 = 1;
}
return msgNo;
}
+59 -59
View File
@@ -1,7 +1,7 @@
//
// Generated by dtk
// Translation Unit: d_a_npc_ji1.cpp
//
/**
* d_a_npc_ji1.cpp
* NPC - Orca
*/
#include "d/actor/d_a_npc_ji1.h"
#include "d/actor/d_a_player.h"
@@ -2853,151 +2853,151 @@ BOOL daNpc_Ji1_c::setAnm(int param_1, f32 param_2, int param_3) {
fopAcM_seStart(this, JA_SE_CM_JI_DEFENSE, 0);
}
J3DAnmTransform* temp1;
s32 temp2;
J3DAnmTransform* bckAnm;
s32 loopMode;
void* pSoundAnimRes;
switch(param_1) {
case 0:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_WAIT01));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_WAIT01));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_WAIT01);
break;
case 1:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_WAIT02));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_WAIT02));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_WAIT02);
break;
case 2:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TALK01));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TALK01));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_TALK01);
break;
case 3:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TALK02));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TALK02));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_TALK02);
break;
case 4:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_AKIRE));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_AKIRE));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_AKIRE);
break;
case 5:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_KAMAE));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_KAMAE));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_KAMAE);
break;
case 6:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_KROT));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_KROT));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_KROT);
speed = l_HIO.field_0x48;
break;
case 7:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_INASI));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_INASI));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_INASI);
speed = l_HIO.field_0x44;
break;
case 8:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TATEGUARD));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TATEGUARD));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_TATEGUARD);
break;
case 9:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_YKGUARD));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_YKGUARD));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_YKGUARD);
break;
case 10:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_JPGUARD));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_JPGUARD));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_JPGUARD);
break;
case 11:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TOKAMAE));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TOKAMAE));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_TOKAMAE);
break;
case 12:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_REI));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_REI));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_REI);
break;
case 13:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_WARAI));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_WARAI));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_WARAI);
speed = l_HIO.field_0x4C;
break;
case 14:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_JPGUARD));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_JPGUARD));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_JPGUARD);
speed = 2.0f;
break;
case 15:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_GUARD));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_GUARD));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_GUARD);
speed = 2.0f;
break;
case 16:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_BTKAMASI));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_BTKAMASI));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_BTKAMASI);
break;
case 17:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_BTKAMAE));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_BTKAMAE));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_BTKAMAE);
break;
case 18:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_UDEGUMI));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_UDEGUMI));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_UDEGUMI);
break;
case 19:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TATEATTACK));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_TATEATTACK));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_TATEATTACK);
break;
case 20:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_YOKOATTACK));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_YOKOATTACK));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_YOKOATTACK);
break;
case 21:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_ODOROKU));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_ODOROKU));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_ODOROKU);
break;
case 22:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_BIBIRI));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_BIBIRI));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_BIBIRI);
BackSlideInit();
@@ -3007,8 +3007,8 @@ BOOL daNpc_Ji1_c::setAnm(int param_1, f32 param_2, int param_3) {
break;
case 23:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_NAKU));
temp2 = 2;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_NAKU));
loopMode = J3DFrameCtrl::EMode_LOOP;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_NAKU);
if(field_0x430 == 0) {
@@ -3018,14 +3018,14 @@ BOOL daNpc_Ji1_c::setAnm(int param_1, f32 param_2, int param_3) {
break;
case 24:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_NUGUI));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_NUGUI));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_NUGUI);
break;
case 25:
temp1 = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_DAMAGE));
temp2 = 0;
bckAnm = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("Ji", JI_BCK_JI_DAMAGE));
loopMode = J3DFrameCtrl::EMode_NONE;
pSoundAnimRes = dComIfG_getObjectRes("Ji", JI_BAS_JI_DAMAGE);
break;
@@ -3033,7 +3033,7 @@ BOOL daNpc_Ji1_c::setAnm(int param_1, f32 param_2, int param_3) {
return 0;
}
field_0x330->setAnm(temp1, temp2, param_2, speed, 0.0f, -1.0f, pSoundAnimRes);
field_0x330->setAnm(bckAnm, loopMode, param_2, speed, 0.0f, -1.0f, pSoundAnimRes);
if(field_0xD64 == 0x13) {
mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("Ji", JI_BCK_JIYARI_TATEATTACK), J3DFrameCtrl::EMode_LOOP, 0.0f, 1.0f, 0.0f, -1.0f, NULL);
}
+2 -2
View File
@@ -2277,7 +2277,7 @@ void daNpcRoten_c::eventSetItemInit() {
u8 itemIdx = l_item_dat[mNpcNo][field_0x9BE];
cXyz pos(0.0f, 0.0f, 0.0f);
u8 itemNo = itemIdx + FLOWER_1;
field_0x6F8 = fopAcM_createItemForPresentDemo(&pos, itemNo, 9, -1, fopAcM_GetRoomNo(this));
field_0x6F8 = fopAcM_createItemForPresentDemo(&pos, itemNo, daDitem_c::FLAG_UNK01 | daDitem_c::FLAG_UNK08, -1, fopAcM_GetRoomNo(this));
}
/* 000028C4-0000290C .text eventSetItem__12daNpcRoten_cFv */
@@ -2323,7 +2323,7 @@ void daNpcRoten_c::eventGetItemInit(int staffIdx) {
u8 itemNo = FLOWER_1;
itemNo += itemIdx; // fakematch?
pcId = fopAcM_createItemForPresentDemo(&current.pos, itemNo, 1, -1, fopAcM_GetRoomNo(this));
pcId = fopAcM_createItemForPresentDemo(&current.pos, itemNo, daDitem_c::FLAG_UNK01, -1, fopAcM_GetRoomNo(this));
}
if(pcId != fpcM_ERROR_PROCESS_ID_e) {
+20 -25
View File
@@ -926,7 +926,7 @@ cPhs_State daObjFigure_c::_create() {
NULL,
};
dComLbG_PhaseHandler(&mPhsLoad, l_method, this);
return dComLbG_PhaseHandler(&mPhsLoad, l_method, this);
}
/* 00000720-00000A90 .text createHeap__13daObjFigure_cFv */
@@ -1512,9 +1512,9 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
J3DShape* ZOnShape[4];
J3DJoint* link_root_joint = modelData->getJointNodePointer(0x00); // link_root joint
J3DJoint* cl_eye_joint = modelData->getJointNodePointer(0x13); // cl_eye joint
J3DJoint* cl_mayu_joint = modelData->getJointNodePointer(0x15); // cl_mayu joint
J3DJoint* cl_eye_joint = modelData->getJointNodePointer(0x13); // cl_eye joint
J3DJoint* cl_mayu_joint = modelData->getJointNodePointer(0x15); // cl_mayu joint
J3DMaterial* mtl;
mtl = modelData->getJointNodePointer(0x13)->getMesh(); // cl_eye joint
int zoff_blend_cnt = 0;
@@ -1525,20 +1525,16 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
while (mtl) {
mtl->setMaterialMode(1);
if (mtl->getZMode()->getCompareEnable() == 0) {
// TODO: debug map indicates J3DBlend::getType inline was used
if (mtl->getBlend()->mBlendMode == GX_BM_BLEND) {
ZOffBlendShape[zoff_blend_cnt] = mtl->getShape();
zoff_blend_cnt++;
JUT_ASSERT(0x6E7, zoff_blend_cnt <= 4);
if ((u8)mtl->getBlend()->getType() == GX_BM_BLEND) {
ZOffBlendShape[zoff_blend_cnt++] = mtl->getShape();
JUT_ASSERT(1767, zoff_blend_cnt <= 4);
} else {
ZOffNoneShape[zoff_none_cnt] = mtl->getShape();
zoff_none_cnt++;
JUT_ASSERT(0x6EA, zoff_none_cnt <= 4);
ZOffNoneShape[zoff_none_cnt++] = mtl->getShape();
JUT_ASSERT(1770, zoff_none_cnt <= 4);
}
} else {
ZOnShape[zon_cnt] = mtl->getShape();
zon_cnt++;
JUT_ASSERT(0x6EE, zon_cnt <= 4);
ZOnShape[zon_cnt++] = mtl->getShape();
JUT_ASSERT(1774, zon_cnt <= 4);
}
mtl = mtl->getNext();
}
@@ -1548,7 +1544,7 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
dComIfGd_setListP0();
l_onCupOffAupPacket2.entryOpa();
for(i = 0; i < 4; i++) {
for (i = 0; i < 4; i++) {
ZOffBlendShape[i]->hide();
ZOnShape[i]->hide();
ZOffNoneShape[i]->show();
@@ -1558,7 +1554,7 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
cl_mayu_joint->entryIn();
l_offCupOnAupPacket2.entryOpa();
for(i = 0; i < 4; i++) {
for (i = 0; i < 4; i++) {
ZOffBlendShape[i]->show();
ZOffNoneShape[i]->hide();
}
@@ -1568,25 +1564,24 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
mtl = link_root_joint->getMesh();
for (i = 0; mtl != NULL; i++, mtl = mtl->getNext()) {
if(i != 2 && i != 5) {
if (i != 2 && i != 5) {
mtl->getShape()->hide();
}
}
link_root_joint->entryIn();
for (i = 0, mtl = link_root_joint->getMesh(); mtl != NULL; i++, mtl = mtl->getNext()) {
if(i != 2 && i != 5) {
if (i != 2 && i != 5) {
mtl->getShape()->show();
}
else {
} else {
mtl->getShape()->hide();
}
}
l_onCupOffAupPacket1.entryOpa();
for(i = 0; i < 4; i++) {
for (i = 0; i < 4; i++) {
ZOffBlendShape[i]->hide();
ZOnShape[i]->show();
ZOffNoneShape[i]->hide();
@@ -1594,10 +1589,10 @@ void linkDraw(mDoExt_McaMorf* pMorf) {
cl_eye_joint->entryIn();
cl_mayu_joint->entryIn();
l_offCupOnAupPacket1.entryOpa();
for(i = 0; i < 4; i++) {
for (i = 0; i < 4; i++) {
ZOnShape[i]->hide();
}
+4 -4
View File
@@ -1,7 +1,7 @@
//
// Generated by dtk
// Translation Unit: d_a_player.cpp
//
/**
* d_a_player.cpp
* Player - Base Player Class
*/
#include "dolphin/types.h"
#include "d/actor/d_a_player.h"
+1 -1
View File
@@ -71,7 +71,7 @@ const daPy_HIO_cutTurn_c1 daPy_HIO_cutTurn_c0::m = {
};
const daPy_HIO_cutTurnR_c1 daPy_HIO_cutTurnR_c0::m = {
0, 4, 9, 27379, 1748, 0.8f, 1.0f, 3.0f, 0.8f, 3.0f, 0.8f, 3.0f, 0.95f,
0, 0, 4, 9, 27379, 1748, 0.8f, 1.0f, 3.0f, 0.8f, 3.0f, 0.8f, 3.0f, 0.95f,
};
const daPy_HIO_cutRoll_c1 daPy_HIO_cutRoll_c0::m = {
+14 -2
View File
@@ -11,6 +11,7 @@
*/
#include "d/actor/d_a_arrow.h"
#include "d/actor/d_a_npc_so.h"
#include "d/actor/d_a_player_HIO.h"
#include "d/actor/d_a_player_main.h"
#include "d/d_procname.h"
@@ -66,7 +67,18 @@ BOOL daPy_lk_c::checkBowAnime() const {
/* 8014A080-8014A180 .text makeArrow__9daPy_lk_cFv */
void daPy_lk_c::makeArrow() {
/* Nonmatching */
// Fakematch: The first call to getPt1 needs to load gameinfo differently from the other two.
// Adding a redundant (dEvt_control_c*) cast to just that one fixes it.
BOOL r4 = mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK44_e;
if ((!r4 && dComIfGs_getArrowNum() != 0) ||
(r4 && ((dEvt_control_c*)&g_dComIfG_gameInfo.play.getEvent())->getPt1() != NULL &&
fopAcM_GetName(dComIfGp_event_getPt1()) == PROC_NPC_SO &&
((daNpc_So_c*)dComIfGp_event_getPt1())->getMiniGameRestArrow() > 0))
{
fopAc_ac_c* arrow_p = (fopAc_ac_c*)fopAcM_fastCreate(PROC_ARROW, 0, &current.pos, current.roomNo);
mActorKeepEquip.setData(arrow_p);
}
m355C = 0;
}
/* 8014A180-8014A1CC .text deleteArrow__9daPy_lk_cFv */
@@ -160,7 +172,7 @@ BOOL daPy_lk_c::checkNextActionBowReady() {
if (mFrameCtrlUpper[UPPER_MOVE2_e].getRate() < 0.01f) {
if (m355E == 0 && bowButton() &&
(mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK44_e || mEquipItem == getReadyItem()) &&
!checkNoResetFlg1(daPyFlg1_USE_ARROW_EFFECT))
!checkUseArrowEffect())
{
setBowReloadAnime();
makeArrow();
+1 -1
View File
@@ -190,7 +190,7 @@ void daPy_lk_c::checkBgClimbMove() {
local_5c.set(current.pos.x + (25.0f * dVar7), local_68.y + 30.0f, current.pos.z + (25.0f * dVar6));
mGndChk.SetPos(&local_5c);
dVar3 = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (C_BG_MIN_HEIGHT != dVar3 && dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y >= 0.5f &&
if (C_BG_MIN_HEIGHT != dVar3 && cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y) &&
dVar3 >= local_68.y - 30.0f)
{
dVar4 = 3.0f;
+412 -128
View File
@@ -35,8 +35,7 @@ f32 daPy_lk_c::getCrawlMoveSpeed() {
if (fVar1 >= 17.0f) {
fVar1 = fVar1 - 17.0f;
}
return (daPy_HIO_crouch_c0::m.field_0x3C * mFrameCtrlUnder[UNDER_MOVE0_e].getRate()) *
cM_fsin((M_PI / 17) * fVar1);
return (daPy_HIO_crouch_c0::m.field_0x3C * mFrameCtrlUnder[UNDER_MOVE0_e].getRate()) * cM_fsin((M_PI / 17) * fVar1);
}
/* 80138868-801389D0 .text setCrawlMoveDirectionArrow__9daPy_lk_cFv */
@@ -86,8 +85,81 @@ void daPy_lk_c::setCrawlMoveDirectionArrow() {
}
/* 801389D0-80138D50 .text changeCrawlAutoMoveProc__9daPy_lk_cFP4cXyz */
void daPy_lk_c::changeCrawlAutoMoveProc(cXyz*) {
/* Nonmatching */
BOOL daPy_lk_c::changeCrawlAutoMoveProc(cXyz* param_1) {
cXyz sp70;
cXyz sp64;
cXyz sp58;
cXyz sp4C;
cXyz sp40;
cXyz sp34;
cXyz sp28;
f32 spC;
s16 spA;
s16 sp8;
f32 temp_f31 = cM_ssin(current.angle.y);
f32 temp_f30 = cM_scos(current.angle.y);
f32 temp_f29 = cM_ssin(shape_angle.y);
f32 temp_f28 = cM_scos(shape_angle.y);
int var_r29 = 0;
sp70.x = param_1->x + (75.0f * temp_f31);
sp70.y = param_1->y;
sp70.z = param_1->z + (75.0f * temp_f30);
mLinkLinChk.Set(param_1, &sp70, (fopAc_ac_c*)this);
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
sp4C.x = sp70.x + (50.0f * temp_f30);
sp4C.y = sp70.y;
sp4C.z = sp70.z - (50.0f * temp_f31);
if (checkCrawlSideWall(&sp70, &sp4C, &sp34, &sp28, &spA, &sp8)) {
var_r29 |= 1;
} else {
return false;
}
}
sp4C.x = param_1->x + (50.0f * temp_f28);
sp4C.y = param_1->y;
sp4C.z = param_1->z - (50.0f * temp_f29);
sp40 = (*param_1 * 2.0f) - sp4C;
mLinkLinChk.Set(param_1, &sp4C, (fopAc_ac_c*)this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
var_r29 |= 8;
sp58.x = sp40.x + (75.0f * temp_f29);
sp58.y = sp40.y;
sp58.z = sp40.z + (75.0f * temp_f28);
if (!checkCrawlSideWall(&sp40, &sp58, &sp34, &sp28, &spA, &sp8)) {
return false;
}
} else {
var_r29 |= 4;
sp58.x = sp4C.x - (75.0f * temp_f29);
sp58.y = sp4C.y;
sp58.z = sp4C.z - (75.0f * temp_f28);
if (!checkCrawlSideWall(&sp4C, &sp58, &sp34, &sp28, &spA, &sp8)) {
return false;
}
mLinkLinChk.Set(param_1, &sp40, (fopAc_ac_c*)this);
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
var_r29 |= 8;
}
}
if (cM3d_Len2dSqPntAndSegLine(
0.5f * (sp34.x + sp28.x),
0.5f * (sp34.z + sp28.z),
sp70.x,
sp70.z,
param_1->x - (75.0f * temp_f31),
param_1->z - (75.0f * temp_f30),
&sp64.x,
&sp64.z,
&spC
))
{
sp64.y = current.pos.y;
return procCrawlAutoMove_init(var_r29, &sp64);
}
return false;
}
/* 80138D50-80138F28 .text getCrawlMoveVec__9daPy_lk_cFP4cXyzP4cXyzP4cXyz */
@@ -96,21 +168,14 @@ int daPy_lk_c::getCrawlMoveVec(cXyz* param_0, cXyz* param_1, cXyz* param_2) {
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
int iVar4 = dComIfG_Bgsp()->GetSpecialCode(mLinkLinChk);
float fVar1 = triPla->GetNP()->y;
bool bVar2;
if (!((fVar1 >= 0.5f) || (fVar1 < -0.8f))) {
bVar2 = true;
} else {
bVar2 = false;
}
if (bVar2) {
if (cBgW_CheckBWall(triPla->GetNP()->y)) {
cXyz local_3c = (*param_1 - mLinkLinChk.GetCross());
float dVar7 = local_3c.absXZ();
param_2->x = (float)(-dVar7 * triPla->GetNP()->x);
f32 dVar7 = local_3c.absXZ();
param_2->x = -dVar7 * triPla->GetNP()->x;
param_2->y = local_3c.y;
param_2->z = (float)(-dVar7 * triPla->GetNP()->z);
param_2->z = -dVar7 * triPla->GetNP()->z;
return true;
} else if ((iVar4 == 1) || (fVar1 < 0.643832f && (iVar4 == 2))) {
} else if (iVar4 == 1 || (triPla->GetNP()->y < 0.643832f && iVar4 == 2)) {
*param_2 = (*param_1 - mLinkLinChk.GetCross());
return true;
}
@@ -126,11 +191,11 @@ void daPy_lk_c::crawlBgCheck(cXyz* param_0, cXyz* param_1) {
cXyz cStack_44;
cXyz cStack_38;
cMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_top_offset, &cStack_50);
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_top_offset, &cStack_50);
iVar1 = getCrawlMoveVec(&cStack_50, param_0, &cStack_44);
cMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_top_up_offset, &cStack_50);
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_top_up_offset, &cStack_50);
iVar2 = getCrawlMoveVec(&cStack_50, param_1, &cStack_38);
if ((iVar1 != 0) && (iVar2 != 0)) {
if (iVar1 != 0 && iVar2 != 0) {
if (cStack_44.abs2() > cStack_38.abs()) {
current.pos -= cStack_44;
} else {
@@ -144,7 +209,9 @@ void daPy_lk_c::crawlBgCheck(cXyz* param_0, cXyz* param_1) {
}
/* 801390B8-801392BC .text checkCrawlSideWall__9daPy_lk_cFP4cXyzP4cXyzP4cXyzP4cXyzPsPs */
BOOL daPy_lk_c::checkCrawlSideWall(cXyz* param_1, cXyz* param_2, cXyz* param_3, cXyz* param_4, s16* param_5, s16* param_6) {
BOOL daPy_lk_c::checkCrawlSideWall(
cXyz* param_1, cXyz* param_2, cXyz* param_3, cXyz* param_4, s16* param_5, s16* param_6
) {
cXyz local_78;
cXyz local_90;
@@ -160,11 +227,9 @@ BOOL daPy_lk_c::checkCrawlSideWall(cXyz* param_1, cXyz* param_2, cXyz* param_3,
*param_4 = mLinkLinChk.GetCross();
pfVar1 = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
*param_6 = cM_atan2s(pfVar1->GetNP()->x, pfVar1->GetNP()->z);
cXyz local_9c = (*param_3 - *param_4);
cXyz local_9c = *param_3 - *param_4;
f32 temp_f31 = local_9c.abs2XZ();
if (cLib_distanceAngleS(*param_5, *param_6) > 0x7F00 && temp_f31 < 5625.0f &&
temp_f31 > 3600.0f)
{
if (cLib_distanceAngleS(*param_5, *param_6) > 0x7F00 && temp_f31 < 5625.0f && temp_f31 > 3600.0f) {
return true;
}
}
@@ -174,7 +239,32 @@ BOOL daPy_lk_c::checkCrawlSideWall(cXyz* param_1, cXyz* param_2, cXyz* param_3,
/* 801392BC-80139424 .text setDoStatusCrawl__9daPy_lk_cFv */
void daPy_lk_c::setDoStatusCrawl() {
/* Nonmatching */
dComIfGp_setRStatus(dActStts_CROUCH_e);
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x80)) {
dComIfGp_setAStatus(dActStts_RETURN_e);
if (checkSubjectEnd(1) || m35D0 > current.pos.y) {
dComIfGp_clearPlayerStatus0(0, daPyStts0_UNK2000_e);
} else {
dComIfGp_setPlayerStatus0(0, daPyStts0_UNK2000_e);
}
} else if (dCam_getBody()->ChangeModeOK(4)) {
if (m35D0 <= current.pos.y) {
onResetFlg0(daPyRFlg0_UNK4000000);
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x1000) && !dComIfGp_event_runCheck()) {
setSubjectMode();
}
}
}
if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x80) &&
(mCurProc != daPyProc_CRAWL_MOVE_e || mProcVar0.m3570 == 0))
{
setBodyAngleToCamera();
if (mBodyAngle.x > 0) {
mBodyAngle.x = 0;
}
} else {
mBodyAngle.x = 0;
}
}
/* 80139424-801394F0 .text procCrawlStart_init__9daPy_lk_cFv */
@@ -204,13 +294,13 @@ BOOL daPy_lk_c::procCrawlStart() {
cXyz local_20(l_crawl_front_offset.x, l_crawl_front_offset.y, l_crawl_front_offset.z * m35E4);
cXyz afStack_2c;
cXyz cStack_38;
cMtx_multVec(mpCLModel->getBaseTRMtx(), &local_20, &afStack_2c);
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &local_20, &afStack_2c);
local_20.y = 50.0f;
cMtx_multVec(mpCLModel->getBaseTRMtx(), &local_20, &cStack_38);
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &local_20, &cStack_38);
crawlBgCheck(&cStack_38, &cStack_38);
if ((!spActionButton()) || (m35D0 > 15.0f + current.pos.y)) {
if (!spActionButton() || m35D0 > 15.0f + current.pos.y) {
procCrawlEnd_init(0, shape_angle.x, shape_angle.z);
} else if ((mStickDistance > 0.05f) &&
} else if (mStickDistance > 0.05f &&
((mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) ||
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_crouch_c0::m.field_0x28)))
{
@@ -261,7 +351,7 @@ BOOL daPy_lk_c::procCrawlMove_init(s16 param_0, s16 param_1) {
dVar4 *= -1.0f;
}
current.angle.y = shape_angle.y;
setSingleMoveAnime(ANM_LIEFORWARD, (float)dVar4, 0.0f, -1, daPy_HIO_crouch_c0::m.field_0x38);
setSingleMoveAnime(ANM_LIEFORWARD, dVar4, 0.0f, -1, daPy_HIO_crouch_c0::m.field_0x38);
} else {
onResetFlg0(daPyRFlg0_UNK1000);
}
@@ -279,7 +369,168 @@ BOOL daPy_lk_c::procCrawlMove_init(s16 param_0, s16 param_1) {
/* 80139878-8013A004 .text procCrawlMove__9daPy_lk_cFv */
BOOL daPy_lk_c::procCrawlMove() {
/* Nonmatching */
J3DFrameCtrl& frameCtrl = mFrameCtrlUnder[UNDER_MOVE0_e];
float fVar1;
BOOL bVar4;
BOOL bVar5;
int iVar6;
int iVar7;
int iVar8;
int iVar9;
f32 dVar11;
cXyz sp124;
cXyz sp118;
cXyz sp10C;
cXyz sp100;
cXyz spF4;
cXyz spE8;
cXyz spDC;
cXyz spD0;
cXyz spC4;
cXyz spB8;
cXyz spAC;
cXyz spA0;
cXyz sp94;
cXyz sp88;
setDoStatusCrawl();
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_stand_up_offset, &sp118);
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_front_up_offset, &sp124);
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_back_up_offset, &sp10C);
mDoMtx_multVecSR(mpCLModel->getBaseTRMtx(), &l_crawl_min_side_offset, &sp100);
iVar6 = checkNotCrawlStand(&sp118);
iVar7 = checkNotCrawlStand(&sp124);
iVar8 = checkNotCrawlStand(&sp10C);
if ((((iVar6 != 0 || iVar7 != 0) || iVar8 != 0) ||
(checkNotCrawlStand(&sp124, &sp100) || checkNotCrawlStand(&sp10C, &sp100))) ||
checkNotCrawlStand(&sp118, &sp100))
{
bVar5 = false;
onModeFlg(ModeFlg_04000000);
} else {
bVar5 = true;
offModeFlg(ModeFlg_04000000);
}
if ((bVar5 != false && !spActionButton()) || (getSlidePolygon() != NULL || m35D0 > current.pos.y + 15.0f)) {
procCrawlEnd_init(1, shape_angle.x, shape_angle.z);
} else {
bVar4 = false;
dVar11 = getCrawlMoveAnmSpeed();
if (frameCtrl.getRate() > 0.0f) {
frameCtrl.setRate(dVar11);
} else if (frameCtrl.getRate() < 0.0f) {
frameCtrl.setRate(-dVar11);
} else {
bVar4 = true;
}
if ((bVar4 == true || frameCtrl.checkPass(0.0f)) || frameCtrl.checkPass(17.0f)) {
if (mStickDistance > 0.05f) {
if (getDirectionFromShapeAngle() != 1) {
frameCtrl.setRate(dVar11);
frameCtrl.setLoop(0);
} else {
frameCtrl.setRate(-dVar11);
frameCtrl.setLoop(frameCtrl.getEnd());
}
initSeAnime();
} else if (!bVar4) {
if (frameCtrl.checkPass(0.0f)) {
fVar1 = 0.0f;
} else {
fVar1 = 17.0f;
}
frameCtrl.setRate(0.0f);
frameCtrl.setFrame(fVar1);
((mAnmRatioUnder[UNDER_MOVE0_e]).getAnmTransform())->setFrame(fVar1);
}
}
iVar9 = mProcVar0.m3570;
mProcVar0.m3570 = 0;
s16 sp0A;
s16 sp08;
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_side_offset, &spE8);
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_top_up_offset, &spF4);
if (frameCtrl.getRate() >= 0.0f) {
spB8 = (sp124 - spF4) * 0.5f;
} else if (frameCtrl.getRate() < 0.0f) {
spB8 = (sp10C - spF4) * 0.5f;
}
spE8 += spB8;
spF4 += spB8;
spDC = (spF4 * 2.0f) - spE8;
if (!bVar5 && (checkCrawlSideWall(&spF4, &spE8, &spD0, &spC4, &sp0A, &sp08) ||
checkCrawlSideWall(&spF4, &spDC, &spC4, &spD0, &sp08, &sp0A)))
{
mProcVar0.m3570 = 1;
mResetFlg0 = mResetFlg0 | 0x1000;
m370C = ((spD0 + spC4) * 0.5f) - spB8;
m34D4 = sp0A + 0x4000;
}
if (mProcVar0.m3570 != 0) {
if (frameCtrl.getRate()) {
cLib_addCalcAngleS(&shape_angle.y, m34D4, 5, 0x1000, 0x800);
current.angle.y = shape_angle.y;
}
if (std::abs(current.pos.x - m370C.x) > 1.0f) {
cLib_addCalc(&current.pos.x, m370C.x, 0.5f, 10.0f, 1.0f);
}
if (std::abs(current.pos.z - m370C.z) > 1.0f) {
cLib_addCalc(&current.pos.z, m370C.z, 0.5f, 10.0f, 1.0f);
}
} else {
if (iVar9 != 0 && iVar6 != 0 && iVar7 != 0 && iVar8 != 0 && changeCrawlAutoMoveProc(&spF4)) {
return true;
}
if (mStickDistance > 0.05f && (frameCtrl.getRate() > 0.0f)) {
s16 r24 = shape_angle.y;
cLib_addCalcAngleS(
&shape_angle.y,
m34E8,
daPy_HIO_crouch_c0::m.field_0x8,
daPy_HIO_crouch_c0::m.field_0xA,
daPy_HIO_crouch_c0::m.field_0xC
);
if (shape_angle.y != r24) {
if ((s16)(shape_angle.y - r24) > 0) {
cMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_lside_front_offset, &spAC);
cMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_lside_offset, &sp94);
} else {
cMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_rside_front_offset, &spAC);
cMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_rside_offset, &sp94);
}
mGndChk.SetPos(&spAC);
spA0.set(spAC.x - sp94.x, dComIfG_Bgsp()->GroundCross(&mGndChk) - sp94.y, spAC.z - sp94.z);
if (cLib_distanceAngleS((cM_atan2s(-spA0.y, spA0.absXZ())), shape_angle.x) > 0x800) {
shape_angle.y = r24;
}
}
current.angle.y = shape_angle.y;
}
}
dVar11 = getCrawlMoveSpeed();
mVelocity = dVar11;
if (mVelocity < 0.0f) {
mVelocity *= -1.0f;
current.angle.y = shape_angle.y + 0x8000;
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_back_offset, &sp88);
crawlBgCheck(&sp88, &sp10C);
} else {
mDoMtx_multVec(mpCLModel->getBaseTRMtx(), &l_crawl_front_offset, &sp88);
crawlBgCheck(&sp88, &sp124);
}
}
return true;
}
/* 8013A004-8013A0F0 .text procCrawlAutoMove_init__9daPy_lk_cFiP4cXyz */
@@ -306,7 +557,6 @@ BOOL daPy_lk_c::procCrawlAutoMove_init(int param_0, cXyz* param_1) {
/* 8013A0F0-8013A630 .text procCrawlAutoMove__9daPy_lk_cFv */
BOOL daPy_lk_c::procCrawlAutoMove() {
/* Nonmatching */
f32 fVar2;
f32 fVar3;
@@ -316,7 +566,7 @@ BOOL daPy_lk_c::procCrawlAutoMove() {
s16 sVar4 = shape_angle.y;
s16 sVar5 = current.angle.y;
if (m34D0 > 0) {
if ((frameCtrl.checkPass(0.0f)) || (frameCtrl.checkPass(17.0f))) {
if (frameCtrl.checkPass(0.0f) || frameCtrl.checkPass(17.0f)) {
fVar3 = 0.0f;
if (frameCtrl.checkPass(0.0f)) {
fVar2 = 0.0f;
@@ -327,113 +577,149 @@ BOOL daPy_lk_c::procCrawlAutoMove() {
frameCtrl.setFrame(fVar2);
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(fVar2);
mVelocity = fVar3;
} else {
if (std::fabsf(frameCtrl.getRate()) < 0.01f) {
mVelocity = 0.0f;
m34D0--;
}
} else if (std::fabsf(frameCtrl.getRate()) < 0.01f) {
mVelocity = 0.0f;
m34D0--;
}
setCrawlMoveDirectionArrow();
setDoStatusCrawl();
shape_angle.y = sVar4;
current.angle.y = sVar5;
} else {
if (m34D0 == 0) {
setCrawlMoveDirectionArrow();
if (mStickDistance > 0.05f) {
int direction = getDirectionFromShapeAngle();
f32 fVar2 = cM_ssin(shape_angle.y);
f32 fVar3 = cM_scos(shape_angle.y);
if ((direction == DIR_LEFT) && ((mProcVar0.m3570 & 4))) {
m370C.x += 75.0f * fVar3;
m370C.z -= 75.0f * fVar2;
m34D4 = current.angle.y + 0x4000;
if (current.angle.y == shape_angle.y) {
m35A0 = 1.0f;
} else {
m35A0 = -1.0f;
}
m34D0 = -1;
} else if ((direction == DIR_RIGHT) && ((mProcVar0.m3570 & 8))) {
m370C.x -= 75.0f * fVar3;
m370C.z += 75.0f * fVar2;
m34D4 = current.angle.y + -0x4000;
if (current.angle.y == shape_angle.y) {
m35A0 = 1.0f;
} else {
m35A0 = -1.0f;
}
m34D0 = -1;
} else if (((mProcVar0.m3570 & 1)) &&
(((shape_angle.y == current.angle.y && (direction == DIR_FORWARD)) ||
((shape_angle.y != current.angle.y && (direction == DIR_BACKWARD))))))
{
m370C.x += 75.0f * cM_ssin(current.angle.y);
m370C.z += 75.0f * cM_scos(current.angle.y);
m34D4 = shape_angle.y;
m35A0 = 0.0f;
m34D0 = -1;
} else if (((shape_angle.y == current.angle.y) && (direction == DIR_BACKWARD)) || ((shape_angle.y != current.angle.y && (direction == DIR_FORWARD)))) {
current.angle.y += 0x8000;
m370C.x -= 75.0f * cM_ssin(current.angle.y);
m370C.z -= 75.0f * cM_scos(current.angle.y);
m34D4 = shape_angle.y;
m35A0 = 0.0f;
m34D0 = -1;
} else if (m34D0 == 0) {
setCrawlMoveDirectionArrow();
if (mStickDistance > 0.05f) {
int direction = getDirectionFromShapeAngle();
f32 fVar2 = cM_ssin(shape_angle.y);
f32 fVar3 = cM_scos(shape_angle.y);
if (direction == DIR_LEFT && (mProcVar0.m3570 & 4)) {
m370C.x += 75.0f * fVar3;
m370C.z -= 75.0f * fVar2;
m34D4 = current.angle.y + 0x4000;
if (current.angle.y == shape_angle.y) {
m35A0 = 1.0f;
} else {
m35A0 = -1.0f;
}
if (m34D0 == -1) {
g_dComIfG_gameInfo.play.mDirection = 0;
if (shape_angle.y == current.angle.y) {
frameCtrl.setRate(2.0f);
frameCtrl.setLoop(0);
} else {
frameCtrl.setRate(-2.0f);
frameCtrl.setLoop(frameCtrl.getEnd());
}
initSeAnime();
m34D0 = -1;
} else if (direction == DIR_RIGHT && (mProcVar0.m3570 & 8)) {
m370C.x -= 75.0f * fVar3;
m370C.z += 75.0f * fVar2;
m34D4 = current.angle.y + -0x4000;
if (current.angle.y == shape_angle.y) {
m35A0 = 1.0f;
} else {
m35A0 = -1.0f;
}
} else {
setDoStatusCrawl();
shape_angle.y = sVar4;
current.angle.y = sVar5;
m34D0 = -1;
} else if ((mProcVar0.m3570 & 1) && ((shape_angle.y == current.angle.y && direction == DIR_FORWARD) ||
(shape_angle.y != current.angle.y && direction == DIR_BACKWARD)))
{
m370C.x += 75.0f * cM_ssin(current.angle.y);
m370C.z += 75.0f * cM_scos(current.angle.y);
m34D4 = shape_angle.y;
m35A0 = 0.0f;
m34D0 = -1;
} else if ((shape_angle.y == current.angle.y && direction == DIR_BACKWARD) ||
(shape_angle.y != current.angle.y && direction == DIR_FORWARD))
{
current.angle.y += 0x8000;
m370C.x -= 75.0f * cM_ssin(current.angle.y);
m370C.z -= 75.0f * cM_scos(current.angle.y);
m34D4 = shape_angle.y;
m35A0 = 0.0f;
m34D0 = -1;
}
if (m34D0 == -1) {
g_dComIfG_gameInfo.play.mDirection = 0;
if (shape_angle.y == current.angle.y) {
frameCtrl.setRate(2.0f);
frameCtrl.setLoop(0);
} else {
frameCtrl.setRate(-2.0f);
frameCtrl.setLoop(frameCtrl.getEnd());
}
initSeAnime();
}
} else {
BOOL bVar1 = true;
if (m34D6 > 0) {
m34D6--;
setDoStatusCrawl();
shape_angle.y = sVar4;
current.angle.y = sVar5;
}
} else {
BOOL bVar1 = true;
if (m34D6 > 0) {
m34D6--;
}
if (std::fabsf(m35A0) > 0.5f) {
if (cLib_addCalcAngleS(&shape_angle.y, m34D4, 5, 0x480, 0x80)) {
bVar1 = 0;
}
if (std::fabsf(m35A0) > 0.5f) {
if (cLib_addCalcAngleS(&shape_angle.y, m34D4, 5, 0x480, 0x80)) {
bVar1 = 0;
}
if (m35A0 < -0.5f) {
current.angle.y = shape_angle.y + 0x8000;
} else {
current.angle.y = shape_angle.y;
}
cLib_addCalc(&current.pos.x, m370C.x, 0.5f, 3.0f, 1.0f);
cLib_addCalc(&current.pos.z, m370C.z, 0.5f, 3.0f, 1.0f);
}
cXyz local_28 = m370C - current.pos;
if (cLib_distanceAngleS(cM_atan2s(local_28.x, local_28.z), current.angle.y) < 0x6000) {
bVar1 = false;
}
mVelocity = getCrawlMoveSpeed();
if (mVelocity < 0.0f) {
mVelocity *=-1.0f;
if (m35A0 < -0.5f) {
current.angle.y = shape_angle.y + 0x8000;
} else {
current.angle.y = shape_angle.y;
}
if ((bVar1 != 0) || (m34D6 == 0)) {
procCrawlMove_init(shape_angle.x, shape_angle.z);
}
cLib_addCalc(&current.pos.x, m370C.x, 0.5f, 3.0f, 1.0f);
cLib_addCalc(&current.pos.z, m370C.z, 0.5f, 3.0f, 1.0f);
}
cXyz local_28 = m370C - current.pos;
if (cLib_distanceAngleS(cM_atan2s(local_28.x, local_28.z), current.angle.y) < 0x6000) {
bVar1 = false;
}
mVelocity = getCrawlMoveSpeed();
if (mVelocity < 0.0f) {
mVelocity *= -1.0f;
current.angle.y = shape_angle.y + 0x8000;
}
if (bVar1 != 0 || m34D6 == 0) {
procCrawlMove_init(shape_angle.x, shape_angle.z);
}
}
return true;
}
/* 8013A630-8013A7C4 .text procCrawlEnd_init__9daPy_lk_cFiss */
BOOL daPy_lk_c::procCrawlEnd_init(int, s16, s16) {
/* Nonmatching */
BOOL daPy_lk_c::procCrawlEnd_init(int param_1, s16 param_2, s16 param_3) {
f32 fVar1;
J3DAnmTransform* pJVar2;
f32 dVar4;
J3DTransformInfo auStack_58;
dVar4 = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
commonProcInit(daPyProc_CRAWL_END_e);
current.angle.y = shape_angle.y;
m34C2 = 1;
if (param_1 != 0) {
fVar1 = daPy_HIO_crouch_c0::m.field_0x4C;
} else {
fVar1 = -1.0f;
}
setSingleMoveAnime(
ANM_LIE,
daPy_HIO_crouch_c0::m.field_0x40,
daPy_HIO_crouch_c0::m.field_0x44,
daPy_HIO_crouch_c0::m.field_0xE,
fVar1
);
if (param_1 == 0) {
if (daPy_HIO_crouch_c0::m.field_0x44 > dVar4) {
dVar4 = daPy_HIO_crouch_c0::m.field_0x44;
} else if (daPy_HIO_crouch_c0::m.field_0xE <= dVar4) {
dVar4 = daPy_HIO_crouch_c0::m.field_0xE - 0.001f;
}
mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(dVar4);
mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform()->setFrame(dVar4);
}
pJVar2 = mAnmRatioUnder[UNDER_MOVE0_e].getAnmTransform();
pJVar2->getTransform(0, &auStack_58);
m3700.x = auStack_58.mTranslate.x;
m3700.y = auStack_58.mTranslate.y;
m3700.z = auStack_58.mTranslate.z;
mVelocity = 0.0f;
shape_angle.x = param_2;
shape_angle.z = param_3;
m35A0 = 1.0f / (daPy_HIO_crouch_c0::m.field_0xE - daPy_HIO_crouch_c0::m.field_0x48);
return true;
}
/* 8013A7C4-8013A85C .text procCrawlEnd__9daPy_lk_cFv */
@@ -441,14 +727,12 @@ BOOL daPy_lk_c::procCrawlEnd() {
m35E4 = m35A0 * (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - daPy_HIO_crouch_c0::m.field_0x48);
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() > -0.01f) {
checkNextMode(0);
} else {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < daPy_HIO_crouch_c0::m.field_0x48) {
if (!checkNextMode(1)) {
m34C2 = 1;
}
} else {
} else if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < daPy_HIO_crouch_c0::m.field_0x48) {
if (!checkNextMode(1)) {
m34C2 = 1;
}
} else {
m34C2 = 1;
}
return true;
}
+32 -22
View File
@@ -12,6 +12,7 @@
#include "SSystem/SComponent/c_counter.h"
#include "d/actor/d_a_boko.h"
#include "d/actor/d_a_demo_item.h"
#include "d/actor/d_a_itembase.h"
#include "d/actor/d_a_player_HIO.h"
#include "d/actor/d_a_player_main.h"
@@ -527,7 +528,7 @@ BOOL daPy_lk_c::dProcGetItem_init() {
item_no = dComIfGp_event_getGtItm();
}
fpc_ProcID itemID =
fopAcM_createItemForPresentDemo(&current.pos, item_no, 0, 0xffffffff, fopAcM_GetRoomNo(this), NULL, NULL);
fopAcM_createItemForPresentDemo(&current.pos, item_no, 0, -1, fopAcM_GetRoomNo(this));
if (itemID != fpcM_ERROR_PROCESS_ID_e) {
dComIfGp_event_setItemPartnerId(itemID);
}
@@ -590,12 +591,12 @@ BOOL daPy_lk_c::dProcGetItem() {
mProcVar0.m3570 = 0;
onModeFlg(ModeFlg_00000400);
}
if ((item != NULL) && (fopAcM_GetName(item) == PROC_ITEM || (fopAcM_GetName(item) == PROC_Demo_Item))) {
if (item != NULL && (fopAcM_GetName(item) == PROC_ITEM || (fopAcM_GetName(item) == PROC_Demo_Item))) {
item->hide();
}
} else {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
if ((item != NULL) && (fopAcM_GetName(item) == PROC_ITEM || fopAcM_GetName(item) == PROC_Demo_Item)) {
if (item != NULL && (fopAcM_GetName(item) == PROC_ITEM || fopAcM_GetName(item) == PROC_Demo_Item)) {
item->show();
if ((m3624 == 0) && (m34D4 != -1)) {
if ((m34D4 == 7) && (dComIfGs_getMaxLife() % 4)) {
@@ -618,7 +619,7 @@ BOOL daPy_lk_c::dProcGetItem() {
setBlendMoveAnime(daPy_HIO_basic_c0::m.field_0xC);
}
}
} else if ((item != NULL) && (fopAcM_GetName(item) == PROC_ITEM || (fopAcM_GetName(item) == PROC_Demo_Item))) {
} else if (item != NULL && (fopAcM_GetName(item) == PROC_ITEM || (fopAcM_GetName(item) == PROC_Demo_Item))) {
item->hide();
}
}
@@ -820,25 +821,25 @@ BOOL daPy_lk_c::dProcDead_init() {
}
mVelocity = 0.0f;
m34D4 = 0;
if (iVar4 != 0) {
dVar6 = ANM_SHIPDIE;
} else {
if (uVar2 != 0) {
dVar6 = ANM_SWIMDIE;
onModeFlg(ModeFlg_SWIM);
dComIfGp_setPlayerStatus0(0, daPyStts0_SWIM_e);
if (uVar3 == 0) {
offNoResetFlg0(daPyFlg0_UNK100);
dVar8 = 0.0f;
m34D4 = 1;
} else {
m34C2 = 0;
}
} else if (uVar2 != 0) {
dVar6 = ANM_SWIMDIE;
onModeFlg(ModeFlg_SWIM);
dComIfGp_setPlayerStatus0(0, daPyStts0_SWIM_e);
if (uVar3 == 0) {
offNoResetFlg0(daPyFlg0_UNK100);
dVar8 = 0.0f;
m34D4 = 1;
} else {
dVar6 = ANM_DIELONG;
onModeFlg(ModeFlg_02000000);
m34C2 = 0;
}
} else {
dVar6 = ANM_DIELONG;
onModeFlg(ModeFlg_02000000);
}
setSingleMoveAnime(dVar6, dVar8, daPy_HIO_restart_c0::m.field_0x10, -1, daPy_HIO_restart_c0::m.field_0x14);
mDamageWaitTimer = 0;
m35E4 = 0.0f;
@@ -884,8 +885,11 @@ BOOL daPy_lk_c::dProcDead() {
dGameover_c* this_01;
cLib_chaseF(&m35A0, 0.0f, 0.01f);
f32 dVar3 = 1.0f - m35A0;
if ((m3628 != fpcM_ERROR_PROCESS_ID_e) && (this_01 = (dGameover_c*)fopMsgM_SearchByID(m3628), this_01)) {
this_01->setBackAlpha(dVar3);
if ((m3628 != fpcM_ERROR_PROCESS_ID_e)) {
this_01 = (dGameover_c*)fopMsgM_SearchByID(m3628);
if (this_01) {
this_01->setBackAlpha(dVar3);
}
}
if (((m35A0 < 0.38f) && (m3628 != fpcM_ERROR_PROCESS_ID_e)) &&
(this_01 = (dGameover_c*)fopMsgM_SearchByID(m3628), this_01))
@@ -1422,7 +1426,13 @@ void daPy_lk_c::dProcPresent_init_sub() {
onModeFlg(ModeFlg_00000400);
if (!checkBottleItem(dComIfGp_event_getPreItemNo())) {
dComIfGp_event_setItemPartnerId(fopAcM_createItemForPresentDemo(
&current.pos, dComIfGp_event_getPreItemNo(), 3, -1, fopAcM_GetRoomNo(this), &shape_angle, &scale
&current.pos,
dComIfGp_event_getPreItemNo(),
daDitem_c::FLAG_UNK01 | daDitem_c::FLAG_UNK02,
-1,
fopAcM_GetRoomNo(this),
&shape_angle,
&scale
));
}
keepItemData();
@@ -1474,7 +1484,7 @@ BOOL daPy_lk_c::dProcPresent() {
}
} else {
daItemBase_c* item = (daItemBase_c*)fopAcM_getItemEventPartner(this);
if ((item != NULL) && (fopAcM_GetName(item) == PROC_ITEM || fopAcM_GetName(item) == PROC_Demo_Item)) {
if (item != NULL && (fopAcM_GetName(item) == PROC_ITEM || fopAcM_GetName(item) == PROC_Demo_Item)) {
item->show();
}
}
+1 -7
View File
@@ -661,13 +661,7 @@ BOOL daPy_lk_c::procGrabPut() {
mLinkLinChk.Set(&m370C, &local_2c, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
bool bVar1;
if ((!(triPla->GetNP()->y >= 0.5f)) && (!(triPla->GetNP()->y < -0.8f))) {
bVar1 = true;
} else {
bVar1 = false;
}
if (bVar1) {
if (cBgW_CheckBWall(triPla->GetNP()->y)) {
cXyz local_44 = (local_2c - mLinkLinChk.GetCross());
f32 dVar7 = local_44.abs();
f32 dVar5 = local_44.absXZ();
+252 -61
View File
@@ -13,6 +13,8 @@
#include "d/actor/d_a_player_main.h"
#include "d/actor/d_a_player_HIO.h"
extern JGeometry::TVec3<f32> l_hammer_splash_particle_scale;
/* 8015023C-80150324 .text setHammerModel__9daPy_lk_cFv */
void daPy_lk_c::setHammerModel() {
J3DAnmTransform* bck = getItemAnimeResource(LKANM_BCK_HAMMERDAM);
@@ -28,16 +30,140 @@ void daPy_lk_c::setHammerModel() {
}
/* 80150324-801508FC .text setHammerQuake__9daPy_lk_cFP13cBgS_PolyInfoPC4cXyzi */
void daPy_lk_c::setHammerQuake(cBgS_PolyInfo*, const cXyz*, int) {
/* Nonmatching */
static JGeometry::TVec3<f32> smoke_kusa_particle_scale;
static JGeometry::TVec3<f32> emitter_scale;
static JGeometry::TVec3<f32> emitter_trans;
void daPy_lk_c::setHammerQuake(cBgS_PolyInfo* param_1, const cXyz* param_2, int param_3) {
static JGeometry::TVec3<f32> smoke_kusa_particle_scale(2.0f, 2.0f, 2.0f);
static JGeometry::TVec3<f32> emitter_scale(1.0f, 0.1f, 1.0f);
static JGeometry::TVec3<f32> emitter_trans(0.0f, 10.0f, 0.0f);
float local_54;
BOOL bVar2;
int attrib_code;
int iVar6;
JPABaseEmitter* emitter;
f32 dVar9;
int iStack_58;
cXyz local_2c;
cXyz local_38;
dComIfGp_getVibration().StartShock(6, -0x31, cXyz(0.0f, 1.0f, 0.0f));
onResetFlg0(daPyRFlg0_HAMMER_QUAKE);
if (!checkNoResetFlg0(daPyFlg0_UNK10000000)) {
if (param_3 == -1) {
local_2c.set(mSwordTopPos.x, mSwordTopPos.y + 100.0f, mSwordTopPos.z);
mGndChk.SetPos(&local_2c);
dVar9 = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (C_BG_MIN_HEIGHT != dVar9) {
iVar6 = dComIfG_Bgsp()->GetMtrlSndId(mGndChk);
} else {
iVar6 = mMtrlSndId;
}
} else {
iVar6 = param_3;
}
mDoAud_seStart(JA_SE_LK_HAMMER_HIT, &mSwordTopPos, iVar6, mReverb);
}
if (param_1 != NULL && m355C == 0) {
mDoMtx_stack_c::transS(param_2->x, param_2->y, param_2->z);
mDoMtx_stack_c::ZXYrotM(
getGroundAngle(param_1, shape_angle.y), shape_angle.y, getGroundAngle(param_1, shape_angle.y + -0x4000)
);
mDoMtx_stack_c::transM(0.0f, 0.0f, -30.0f);
local_38.x = mDoMtx_stack_c::now[0][3];
local_38.y = mDoMtx_stack_c::now[1][3];
local_38.z = mDoMtx_stack_c::now[2][3];
if (!fopAcM_getWaterY(&local_38, &local_54) || (local_54 < (5.0f + local_38.y))) {
emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_0214, &local_38);
if (emitter != NULL) {
JPASetRMtxTVecfromMtx(mDoMtx_stack_c::get(), emitter->mGlobalRotation, emitter->mGlobalTranslation);
}
emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_0215, &local_38);
if (emitter != NULL) {
JPASetRMtxTVecfromMtx(mDoMtx_stack_c::get(), emitter->mGlobalRotation, emitter->mGlobalTranslation);
}
emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_0216, &local_38);
if (emitter != NULL) {
JPASetRMtxTVecfromMtx(mDoMtx_stack_c::get(), emitter->mGlobalRotation, emitter->mGlobalTranslation);
}
bVar2 = false;
} else {
bVar2 = true;
local_38.y = local_54;
mDoMtx_stack_c::transS(local_38.x, local_54, local_38.z);
mDoMtx_stack_c::YrotM(shape_angle.y);
}
if (bVar2) {
attrib_code = dBgS_Attr_WATER_e;
dComIfGp_particle_setP1(dPa_name::ID_COMMON_027C, &local_38);
dComIfGp_particle_setShipTail(
dPa_name::ID_COMMON_003D, &local_38, NULL, NULL, 0xFF, &dPa_control_c::mSingleRippleEcallBack
);
} else {
attrib_code = dComIfG_Bgsp()->GetAttributeCode(*param_1);
}
emitter =
dComIfGp_particle_setSimpleLand(attrib_code, &local_38, NULL, 1.0f, 1.0f, 1.0f, &tevStr, &iStack_58, 0x1E);
if (emitter != NULL) {
JPASetRMtxTVecfromMtx(mDoMtx_stack_c::get(), emitter->mGlobalRotation, emitter->mGlobalTranslation);
if (attrib_code == dBgS_Attr_WATER_e || attrib_code == dBgS_Attr_GRASS_e) {
emitter->setRate(60.0f);
emitter->setSpread(1.0f);
if (attrib_code == dBgS_Attr_WATER_e) {
emitter->setDirectionalSpeed(10.0f);
emitter->setGlobalParticleScale(l_hammer_splash_particle_scale);
} else {
emitter->setDirectionalSpeed(40.0f);
emitter->setGlobalParticleScale(smoke_kusa_particle_scale);
}
} else {
emitter->setRate(45.0f);
emitter->setSpread(0.0f);
emitter->setLifeTime(0x28);
emitter->setEmitterScale(emitter_scale);
emitter->setEmitterTranslation(emitter_trans);
emitter->setAwayFromCenterSpeed(50.0f);
emitter->setGlobalParticleScale(smoke_kusa_particle_scale);
}
}
}
m355C = 1;
dKy_Sound_set(current.pos, 500, fopAcM_GetID(this), 10);
}
/* 801508FC-80150B60 .text setHammerWaterSplash__9daPy_lk_cFv */
void daPy_lk_c::setHammerWaterSplash() {
/* Nonmatching */
f32 local_50;
cXyz local_28;
if (mCurProc != daPyProc_HAMMER_FRONT_SWING_e || (m35EC <= mFrameCtrlUnder[UNDER_MOVE0_e].getRate())) {
return;
}
if (m355C == 0) {
local_28 = m36C4 - mSwordTopPos;
local_28.normalize();
local_28 = mSwordTopPos + (local_28 * 30.0f);
if (fopAcM_getWaterY(&local_28, &local_50) && local_50 >= local_28.y + 5.0f) {
local_28.y += 150.0f;
mGndChk.SetPos(&local_28);
if (!(local_50 < dComIfG_Bgsp()->GroundCross(&mGndChk) + 5.0f)) {
local_28.y = local_50;
dComIfGp_particle_setP1(dPa_name::ID_COMMON_027C, &local_28);
dComIfGp_particle_setShipTail(
dPa_name::ID_COMMON_003D, &local_28, NULL, NULL, 0xFF, &dPa_control_c::mSingleRippleEcallBack
);
GXColor amb, dif;
dKy_get_seacolor(&amb, &dif);
JPABaseEmitter* emitter =
dComIfGp_particle_setP1(dPa_name::ID_COMMON_0023, &local_28, NULL, NULL, 0xFF, NULL, -1, &amb);
if (emitter != NULL) {
emitter->setRate(60.0f);
emitter->setSpread(1.0f);
emitter->setMaxFrame(1);
emitter->setDirectionalSpeed(10.0f);
emitter->setGlobalParticleScale(l_hammer_splash_particle_scale);
}
m355C = 1;
}
}
}
}
/* 80150B60-80150C40 .text procHammerSideSwing_init__9daPy_lk_cFv */
@@ -69,45 +195,43 @@ BOOL daPy_lk_c::procHammerSideSwing() {
mDirection = DIR_RIGHT;
checkNextMode(0);
return true;
} else {
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_ham_c0::m.field_0x10) {
f32 dVar4 = mVelocity;
u8 orig_direction = mDirection;
mVelocity = 0.0f;
mDirection = DIR_RIGHT;
if (checkNextMode(1)) {
return true;
}
mVelocity = dVar4;
mDirection = orig_direction;
}
if (changeCutReverseProc(ANM_CUTREL)) {
setHammerQuake(NULL, NULL, -1);
}
if (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() > daPy_HIO_ham_c0::m.field_0x10) {
f32 dVar4 = mVelocity;
u8 orig_direction = mDirection;
mVelocity = 0.0f;
mDirection = DIR_RIGHT;
if (checkNextMode(1)) {
return true;
} else {
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
daPy_HIO_turn_c0::m.field_0x4,
daPy_HIO_turn_c0::m.field_0x0,
daPy_HIO_turn_c0::m.field_0x2
);
}
current.angle.y = shape_angle.y;
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= daPy_HIO_ham_c0::m.field_0x18) &&
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < daPy_HIO_ham_c0::m.field_0x1C))
{
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
onResetFlg0(daPyRFlg0_UNK1);
seStartSwordCut(JA_SE_LK_HAMMER_SWING);
}
onResetFlg0(daPyRFlg0_UNK2);
}
}
mVelocity = dVar4;
mDirection = orig_direction;
}
if (changeCutReverseProc(ANM_CUTREL)) {
setHammerQuake(NULL, NULL, -1);
return true;
}
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
daPy_HIO_turn_c0::m.field_0x4,
daPy_HIO_turn_c0::m.field_0x0,
daPy_HIO_turn_c0::m.field_0x2
);
}
current.angle.y = shape_angle.y;
if ((mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() >= daPy_HIO_ham_c0::m.field_0x18) &&
(mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() < daPy_HIO_ham_c0::m.field_0x1C))
{
if (!checkNoResetFlg0(daPyFlg0_CUT_AT_FLG)) {
onResetFlg0(daPyRFlg0_UNK1);
seStartSwordCut(JA_SE_LK_HAMMER_SWING);
}
onResetFlg0(daPyRFlg0_UNK2);
}
return true;
}
@@ -124,7 +248,7 @@ BOOL daPy_lk_c::procHammerFrontSwingReady_init() {
);
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
if (mpAttention->Lockon() || (mStickDistance <= 0.05f)) {
if (mpAttention->Lockon() || mStickDistance <= 0.05f) {
m34D4 = shape_angle.y;
} else {
m34D4 = m34E8;
@@ -142,22 +266,21 @@ BOOL daPy_lk_c::procHammerFrontSwingReady() {
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
if (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f) {
return procHammerFrontSwing_init();
} else {
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
daPy_HIO_turn_c0::m.field_0x4,
daPy_HIO_turn_c0::m.field_0x0,
daPy_HIO_turn_c0::m.field_0x2
);
}
current.angle.y = shape_angle.y;
return true;
}
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
daPy_HIO_turn_c0::m.field_0x4,
daPy_HIO_turn_c0::m.field_0x0,
daPy_HIO_turn_c0::m.field_0x2
);
}
current.angle.y = shape_angle.y;
return true;
}
/* 80150F98-801510DC .text procHammerFrontSwing_init__9daPy_lk_cFv */
@@ -173,7 +296,7 @@ BOOL daPy_lk_c::procHammerFrontSwing_init() {
current.angle.y = shape_angle.y;
mVelocity = 0.0f;
voiceStart(1);
if (mpAttention->Lockon() || (mStickDistance <= 0.05f)) {
if (mpAttention->Lockon() || mStickDistance <= 0.05f) {
m34D4 = shape_angle.y;
} else {
m34D4 = m34E8;
@@ -191,7 +314,75 @@ BOOL daPy_lk_c::procHammerFrontSwing_init() {
/* 801510DC-801513D4 .text procHammerFrontSwing__9daPy_lk_cFv */
BOOL daPy_lk_c::procHammerFrontSwing() {
/* Nonmatching */
m35EC = mFrameCtrlUnder[UNDER_MOVE0_e].getFrame();
f32 f1 = mFrameCtrlUnder[UNDER_MOVE0_e].getRate();
if (f1 < 0.01f) {
if (m34D0 == 0) {
return procHammerFrontSwingEnd_init();
} else {
m34D0--;
}
return true;
}
if (m35EC > f1 && changeCutReverseProc(ANM_CUTREL)) {
if (mCurProc == daPyProc_HAMMER_FRONT_SWING_e) {
cXyz sp08(mSwordTopPos.x, current.pos.y + 300.0f, mSwordTopPos.z);
mGndChk.SetPos(&sp08);
sp08.y = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (sp08.y > mSwordTopPos.y) {
int r27;
int r26;
r26 = -1;
f32 f30 = 300.0f;
f32 f31 = C_BG_MIN_HEIGHT;
for (r27 = 0; r27 < mSwBlur.field_0x014; r27++) {
sp08.set(mSwBlur.field_0x034[r27].x, f30 + mSwBlur.field_0x034[r27].y, mSwBlur.field_0x034[r27].z);
mGndChk.SetPos(&sp08);
sp08.y = dComIfG_Bgsp()->GroundCross(&mGndChk);
if (f31 != sp08.y && mSwBlur.field_0x034[r27].y > sp08.y) {
r26 = dComIfG_Bgsp()->GetMtrlSndId(mGndChk);
break;
}
}
f32 f4 = mFrameCtrlUnder[UNDER_MOVE0_e].getRate();
f32 f5 = (mFrameCtrlUnder[UNDER_MOVE0_e].getFrame() - f4) - 0.1f * (r27 * f4);
if (r27 != 0 && r27 < mSwBlur.field_0x014) {
f32 f6 = mSwBlur.field_0x034[r27].y - mSwBlur.field_0x034[r27 - 1].y;
if (std::abs(f6) > 1.0f) {
f32 temp = (1.0f - (sp08.y - (&mSwBlur.field_0x034[0])[r27 - 1].y) / f6);
f5 = f5 + 0.1f * (temp * f4);
}
}
if (f5 < 0.0f) {
f5 = 0.0f;
}
mFrameCtrlUnder[UNDER_MOVE0_e].setFrame(f5);
mFrameCtrlUnder[UNDER_MOVE0_e].setRate(0.0f);
m35EC = f5;
m34D0 = 10;
setHammerQuake(&mGndChk, &sp08, r26);
return true;
}
} else {
setHammerQuake(NULL, NULL, -1);
return true;
}
}
if (mpAttnActorLockOn != NULL) {
setShapeAngleToAtnActor();
m34D4 = shape_angle.y;
} else {
cLib_addCalcAngleS(
&shape_angle.y,
m34D4,
daPy_HIO_turn_c0::m.field_0x4,
daPy_HIO_turn_c0::m.field_0x0,
daPy_HIO_turn_c0::m.field_0x2
);
}
current.angle.y = shape_angle.y;
onResetFlg0(daPyRFlg0_UNK2);
return true;
}
/* 801513D4-80151450 .text procHammerFrontSwingEnd_init__9daPy_lk_cFv */
+1 -1
View File
@@ -495,7 +495,7 @@ BOOL daPy_lk_c::procHangMove() {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
s16 sVar6 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z) + 0x8000;
if (sVar6 != shape_angle.y) {
if ((short)(current.angle.y - shape_angle.y) > 0) {
if ((s16)(current.angle.y - shape_angle.y) > 0) {
current.angle.y = sVar6 + 0x4000;
} else {
current.angle.y = sVar6 + -0x4000;
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -2,7 +2,7 @@
#include "d/actor/d_a_player_main.h"
#include "d/actor/d_a_player_main_data.h"
#include "weak_data_1811.h" // IWYU pragma: keep
#include "weak_data_2100_2080.h" // IWYU pragma: keep
char l_arcName[] = "Link";
+7 -9
View File
@@ -15,16 +15,14 @@ int daPy_npc_c::check_initialRoom() {
mAcch.CrrPos(*dComIfG_Bgsp());
if (mAcch.GetGroundH() == C_BG_MIN_HEIGHT || dComIfG_Bgsp()->GetGroundCode(mAcch.m_gnd) == 4) {
return 0;
} else {
int roomNo = dComIfG_Bgsp()->GetRoomId(mAcch.m_gnd);
if (roomNo < 0 || !dComIfGp_roomControl_checkStatusFlag(roomNo, 0x10)) {
return 0;
} else {
fopAcM_SetHomeRoomNo(this, roomNo);
fopAcM_SetRoomNo(this, roomNo);
return -1;
}
}
int roomNo = dComIfG_Bgsp()->GetRoomId(mAcch.m_gnd);
if (roomNo < 0 || !dComIfGp_roomControl_checkStatusFlag(roomNo, 0x10)) {
return 0;
}
fopAcM_SetHomeRoomNo(this, roomNo);
fopAcM_SetRoomNo(this, roomNo);
return -1;
}
return 1;
}
+81 -80
View File
@@ -58,7 +58,7 @@ int daPy_lk_c::changeRopeSwingProc() {
if (mCyl.ChkCoHit() != 0) {
fopAc_ac_c* pfVar2 = mCyl.GetCoHitAc();
if ((pfVar2 != NULL) && (fopAcM_GetName(pfVar2) == PROC_HIMO3)) {
cXyz local_24 = (pfVar2->current.pos - current.pos);
cXyz local_24 = pfVar2->current.pos - current.pos;
if ((local_24.abs() - 95.0f >= 100.0f) && (pfVar2->current.pos.y > current.pos.y)) {
return procRopeSwing_init(pfVar2, 0x1800);
}
@@ -109,16 +109,15 @@ int daPy_lk_c::changeRopeToHangProc() {
mLinkLinChk.Set(&local_1c, &local_28, this);
if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
return false;
}
cM3dGPla* pfVar4 = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
s16 iVar5 = cM_atan2s(pfVar4->GetNP()->x, pfVar4->GetNP()->z);
if (cLib_distanceAngleS(iVar5, shape_angle.y + 0x8000) > 0x2000) {
return false;
} else {
cM3dGPla* pfVar4 = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
s16 iVar5 = cM_atan2s(pfVar4->GetNP()->x, pfVar4->GetNP()->z);
if (cLib_distanceAngleS(iVar5, shape_angle.y + 0x8000) > 0x2000) {
return false;
} else {
m352C = iVar5;
procRopeUpHang_init();
return true;
}
m352C = iVar5;
procRopeUpHang_init();
return true;
}
}
@@ -274,7 +273,8 @@ BOOL daPy_lk_c::checkNextActionRopeReady() {
u32 uVar2 = fopAcM_GetParam(rope);
if (uVar2 == 2) {
return procRopeReady_init();
} else if (uVar2 == 0) {
}
if (uVar2 == 0) {
if (checkUpperAnime(LKANM_BCK_ROPETHROW)) {
if (mFrameCtrlUpper[UPPER_MOVE2_e].getRate() < 0.01f) {
return procRopeThrowCatch_init();
@@ -465,7 +465,7 @@ BOOL daPy_lk_c::procRopeReady() {
mRopePos = mActorKeepEquip.getActor()->current.pos;
m370C.x = mRopePos.x;
m370C.z = mRopePos.z;
cXyz local_48 = (m370C - current.pos);
cXyz local_48 = m370C - current.pos;
f32 dVar5 = local_48.abs();
cLib_chaseF(&m35A0, 50.0f, 5.0f);
shape_angle.x = (0.025f * (m34D4 * m35A0));
@@ -493,7 +493,7 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
fopAcM_SetParam(param_0, 1);
deleteEquipItem(TRUE);
mEquipItem = dItem_GRAPPLING_HOOK_e;
local_84 = (param_0->current.pos - current.pos);
local_84 = param_0->current.pos - current.pos;
dVar8 = (local_84.abs() - 95.0f);
dVar9 = ((himo2_class*)param_0)->field_0x15F8.y;
if (dVar8 > dVar9) {
@@ -505,11 +505,11 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
} else {
param_0 = mActorKeepRope.getActor();
}
local_84 = (param_0->current.pos - current.pos);
local_84 = param_0->current.pos - current.pos;
m35A0 = local_84.abs();
f32 dVar11 = std::sqrtf(2.0f / m35A0);
m35A4 = dVar11;
dVar11 = (M_PI / 2 / m35A4);
dVar11 = M_PI / 2 / m35A4;
if (pfVar7 != NULL) {
m34D4 = daPy_HIO_rope_c0::m.field_0x0;
if (checkSpecialRope()) {
@@ -530,7 +530,7 @@ BOOL daPy_lk_c::procRopeSwing_init(fopAc_ac_c* param_0, s16 param_1) {
dVar8 = ((f32)sVar4 / m34D4);
dVar9 = std::sqrtf(1.0f - (dVar8 * dVar8));
dVar8 = cM_atan2f(dVar8, dVar9);
m35A8 = (dVar8 / m35A4);
m35A8 = dVar8 / m35A4;
dVar8 = std::sqrtf(local_78.y * local_78.y + local_78.z * local_78.z);
m34D6 = cM_atan2s(-local_78.x, dVar8);
if (m34D6 > 0) {
@@ -585,8 +585,8 @@ BOOL daPy_lk_c::procRopeSwing() {
fopAc_ac_c* rope = mActorKeepRope.getActor();
mRopePos = rope->current.pos;
dComIfGp_setRStatus(dActStts_STOP_e);
f32 f30 = (m35A8 * m35A4);
f32 dVar13 = (m35AC * m35A4);
f32 f30 = m35A8 * m35A4;
f32 dVar13 = m35AC * m35A4;
mDoMtx_stack_c::ZrotS(-shape_angle.z);
mDoMtx_stack_c::XrotM(-shape_angle.x);
mDoMtx_stack_c::YrotM(-shape_angle.y);
@@ -622,14 +622,14 @@ BOOL daPy_lk_c::procRopeSwing() {
m35A8 = m35A8 + (dVar11 + f30);
m35AC = m35AC + (dVar11 + dVar13);
f32 sp0C = m35A8 * m35A4;
f30 = (m35AC * m35A4);
f30 = m35AC * m35A4;
if (sp0C >= M_PI) {
sp0C = sp0C - M_PI * 2;
m35A8 = sp0C / m35A4;
}
if (f30 >= M_PI) {
f30 = (f30 - M_PI * 2);
m35AC = (f30 / m35A4);
f30 = f30 - M_PI * 2;
m35AC = f30 / m35A4;
}
if ((checkModeFlg(ModeFlg_00000400)) && (mFrameCtrlUnder[UNDER_MOVE0_e].getRate() < 0.01f)) {
offModeFlg(ModeFlg_00000400);
@@ -680,11 +680,7 @@ BOOL daPy_lk_c::procRopeSwing() {
cLib_addCalcAngleS(&shape_angle.x, r28_2, 8, 0xc00, 0x100);
dVar13 = cM_fcos(f30);
cLib_addCalcAngleS(
&shape_angle.z,
m34D6 * cM_fsin(f30 - 1.0995574f),
8,
0x400 + (0x800 * dVar13),
0x80 + (0x80 * dVar13)
&shape_angle.z, m34D6 * cM_fsin(f30 - 1.0995574f), 8, 0x400 + (0x800 * dVar13), 0x80 + (0x80 * dVar13)
);
cXyz sp1C(0.0f, -m35A0, 0.0f);
mDoMtx_stack_c::transS(mRopePos.x, mRopePos.y, mRopePos.z);
@@ -754,9 +750,8 @@ BOOL daPy_lk_c::procRopeHangWait_init(int param_0) {
/* 801457FC-80145B38 .text procRopeHangWait__9daPy_lk_cFv */
BOOL daPy_lk_c::procRopeHangWait() {
/* Nonmatching */
bool bVar1;
s16 unaff_r29;
BOOL r30;
s16 r29;
float dVar4;
dComIfGp_setRStatus(dActStts_STOP_e);
@@ -767,72 +762,80 @@ BOOL daPy_lk_c::procRopeHangWait() {
return true;
}
if (!changeRopeEndProc(1)) {
bVar1 = false;
r30 = false;
fopAc_ac_c* rope = mActorKeepRope.getActor();
mRopePos = rope->current.pos;
current.pos.x = mRopePos.x;
current.pos.z = mRopePos.z;
s16 r30 = 0;
if (mStickDistance > 0.05f) {
int direction = getDirectionFromAngle(m34DC);
if (spActionButton()) {
if (direction == DIR_FORWARD) {
if (abs((int)m34D4) <= 0x80) {
procRopeUp_init();
} else {
r30 = true;
r29 = 0;
}
bVar1 = true;
unaff_r29 = 0;
} else if (direction == DIR_BACKWARD) {
if (abs((int)m34D4) <= 0x80) {
procRopeDown_init();
}
bVar1 = true;
unaff_r29 = 0;
} else if (direction == DIR_LEFT) {
s16 r5 = 512.0f * mStickDistance;
if (r5 > m34D4) {
s16 r0 = 64.0f * mStickDistance;
m34D4 += r0;
if (m34D4 > r5) {
m34D4 = r5;
}
unaff_r29 = m34D4;
} else {
unaff_r29 = r5;
r30 = true;
r29 = 0;
}
} else { // DIR_RIGHT
s16 r5 = -512.0f * mStickDistance;
if (r5 < m34D4) {
s16 r0 = 64.0f * mStickDistance;
m34D4 -= r0;
if (m34D4 < r5) {
m34D4 = r5;
} else {
if (direction == DIR_LEFT) {
s16 r5 = 512.0f * mStickDistance;
if (r5 > m34D4) {
s16 r0 = 64.0f * mStickDistance;
m34D4 += r0;
if (m34D4 > r5) {
m34D4 = r5;
}
r29 = m34D4;
} else {
r29 = r5;
}
} else { // DIR_RIGHT
s16 r5 = -512.0f * mStickDistance;
if (r5 < m34D4) {
s16 r0 = 64.0f * mStickDistance;
m34D4 -= r0;
if (m34D4 < r5) {
m34D4 = r5;
}
r29 = m34D4;
} else {
r29 = r5;
}
unaff_r29 = m34D4;
} else {
unaff_r29 = r5;
}
}
bVar1 = true;
if (m34D0 != -1) {
m34D0 = -1;
setSingleMoveAnime(
ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x2C
);
r30 = true;
if (m34D0 != -1) {
m34D0 = -1;
setSingleMoveAnime(
ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x2C
);
}
}
} else if ((direction == DIR_FORWARD) || (direction == DIR_BACKWARD)) {
procRopeSwingStart_init();
} else {
r29 = 0;
r30 = true;
}
unaff_r29 = 0;
bVar1 = true;
} else if (m34D0 == 0) {
m34D0 = -1;
setSingleMoveAnime(ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x2C);
} else {
if (m34D0 == 0) {
m34D0 = -1;
setSingleMoveAnime(
ANM_ROPEWAIT, daPy_HIO_rope_c0::m.field_0x24, 0.0f, -1, daPy_HIO_rope_c0::m.field_0x2C
);
}
r29 = 0;
r30 = true;
}
unaff_r29 = 0;
bVar1 = true;
if (bVar1) {
cLib_addCalcAngleS(&m34D4, unaff_r29, 3, 0x40, 0x10);
if (r30) {
cLib_addCalcAngleS(&m34D4, r29, 3, 0x40, 0x10);
if (m34D4 > 0) {
dVar4 = checkRopeRoofHit(shape_angle.y + 0x2000);
} else {
@@ -879,11 +882,11 @@ BOOL daPy_lk_c::procRopeUp_init() {
mProcVar0.m3570 = 0;
f32 dVar4;
if (checkBossGomaStage()) {
dVar4 = (mRopePos.y - 200.0f);
dVar4 = mRopePos.y - 200.0f;
} else {
dVar4 = (mRopePos.y - 100.0f);
dVar4 = mRopePos.y - 100.0f;
f32 dVar5 = checkRopeRoofHit(shape_angle.y);
dVar5 = (dVar5 - 60.0f);
dVar5 = dVar5 - 60.0f;
if (dVar5 < dVar4) {
dVar4 = dVar5;
} else if ((fopAcM_GetName(rope)) == PROC_HIMO2 || (checkSpecialRope())) {
@@ -893,12 +896,10 @@ BOOL daPy_lk_c::procRopeUp_init() {
if (dVar4 <= current.pos.y) {
if (specialRopeHangUp()) {
return true;
} else if (changeRopeToHangProc()) {
return true;
} else {
if (changeRopeToHangProc()) {
return true;
} else {
return procRopeHangWait_init(0);
}
return procRopeHangWait_init(0);
}
} else {
commonProcInit(daPyProc_ROPE_UP_e);
+1 -1
View File
@@ -231,7 +231,7 @@ BOOL daPy_lk_c::changeSwimOutProc() {
return procFall_init(1, daPy_HIO_wallCatch_c0::m.field_0x54);
}
if (!checkNoResetFlg0(daPyFlg0_UNK80) || (pcVar1 && pcVar1->mNormal.y >= 0.5f && m35D0 - mAcch.GetGroundH() < daPy_HIO_swim_c0::m.field_0x24 - 5.0f)) {
if (!checkNoResetFlg0(daPyFlg0_UNK80) || (pcVar1 && cBgW_CheckBGround(pcVar1->GetNP()->y) && m35D0 - mAcch.GetGroundH() < daPy_HIO_swim_c0::m.field_0x24 - 5.0f)) {
current.pos.y = m35D0;
if (mCurProc == daPyProc_SWIM_MOVE_e && mDirection != DIR_FORWARD) {
+8 -8
View File
@@ -458,7 +458,7 @@ int daPy_lk_c::changeCutReverseProc(daPy_ANM param_0) {
mLinkLinChk.Set(&local_24, &mSwordTopPos, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
cM3dGPla* triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
if (!(triPla->GetNP()->y >= 0.5f) ||
if (!cBgW_CheckBGround(triPla->GetNP()->y) ||
(mCurProc == daPyProc_HAMMER_FRONT_SWING_e && triPla->GetNP()->y < 0.64278764f))
{
if (mEquipItem != dItem_DEKU_LEAF_e) {
@@ -1454,13 +1454,13 @@ BOOL daPy_lk_c::procCutTurn() {
}
if (frameCtrl.checkPass(daPy_HIO_cutTurn_c0::m.field_0x34)) {
m331C.field_0x4 = 0x80;
m332C.field_0x4 = 0x80;
m333C.field_0x4 = 0x80;
} else if (m331C.field_0x4 == 0x80) {
m331C.field_0x4 = 0;
m332C.field_0x4 = 0;
m333C.field_0x4 = 0;
m331C.setAlpha(0x80);
m332C.setAlpha(0x80);
m333C.setAlpha(0x80);
} else if (m331C.getAlpha() == 0x80) {
m331C.setAlpha(0x00);
m332C.setAlpha(0x00);
m333C.setAlpha(0x00);
}
m34C2 = 1;
return true;
+4 -5
View File
@@ -99,7 +99,7 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* param_0, cXyz* param_1, cXyz* par
local_3c.z = param_2->z + cM_ssin(uVar3) * daPy_HIO_wall_c0::m.field_0x50;
mGndChk.SetPos(&local_3c);
float f31 = bgs->GroundCross(&mGndChk);
if (C_BG_MIN_HEIGHT != f31 && (!(bgs->GetTriPla(mGndChk)->GetNP()->y >= 0.5f))) {
if (C_BG_MIN_HEIGHT != f31 && (!cBgW_CheckBGround(bgs->GetTriPla(mGndChk)->GetNP()->y))) {
return NULL;
}
@@ -350,7 +350,6 @@ BOOL daPy_lk_c::procWHideWait_init() {
/* 80137DF0-80138074 .text procWHideWait__9daPy_lk_cFv */
BOOL daPy_lk_c::procWHideWait() {
cXyz cStack_24;
cXyz cStack_3c;
cXyz cStack_48;
@@ -385,7 +384,7 @@ BOOL daPy_lk_c::procWHideWait() {
}
if (mStickDistance > 0.05f && C_BG_MIN_HEIGHT != mAcch.GetGroundH() &&
dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f)
cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y))
{
int direction = getDirectionFromCurrentAngle();
if (direction == DIR_RIGHT || direction == DIR_LEFT) {
@@ -453,7 +452,7 @@ BOOL daPy_lk_c::procWHideMove() {
if (checkWHideModeChange(&acStack_24) != 0) {
fVar2 = 0.0f;
} else if (mStickDistance > 0.05f && C_BG_MIN_HEIGHT != mAcch.GetGroundH() &&
dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f)
cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y))
{
int direction = getDirectionFromCurrentAngle();
if (direction == DIR_BACKWARD) {
@@ -492,7 +491,7 @@ BOOL daPy_lk_c::procWHideMove() {
if (std::fabsf(mVelocity) <= 0.001f) {
return procWHideWait_init();
}
if (mAcch.GetGroundH() == C_BG_MIN_HEIGHT || !(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y >= 0.5f) ||
if (mAcch.GetGroundH() == C_BG_MIN_HEIGHT || !cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mAcch.m_gnd)->GetNP()->y) ||
!checkWHideBackWall(&cStack_30))
{
mVelocity = 0.0f;
+28 -28
View File
@@ -174,11 +174,11 @@ void action_dousa(pw_class* i_this) {
daPy_py_c* player = daPy_getPlayerActorClass();
camera_class* camera = dComIfGp_getCamera(0);
cXyz camfwd;
switch (i_this->mState) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, PW_BCK_WAIT1, 7.0, J3DFrameCtrl::EMode_LOOP, 1.0, -1);
i_this->m346 = 0;
i_this->mState += 1;
i_this->mMode += 1;
break;
case 1:
if (fopAcM_searchPlayerDistance(i_this) < 500.0f) {
@@ -188,7 +188,7 @@ void action_dousa(pw_class* i_this) {
i_this->shape_angle.y = i_this->m38C;
i_this->m3A4 = -80.0f;
i_this->m340 = 1;
i_this->mState += 1;
i_this->mMode += 1;
}
break;
case 2:
@@ -207,13 +207,13 @@ void action_dousa(pw_class* i_this) {
particle->setGlobalRTMatrix(i_this->mpMorf->getModel()->getAnmMtx(0x17)); // j_pw_item_r1 joint
}
i_this->attention_info.flags = 0;
i_this->mState = 0x0A;
i_this->mMode = 0x0A;
}
break;
case 9:
i_this->m39A = 0;
i_this->m39C = 0;
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
case 10:
if (i_this->mBehaviorType == InvisibleAtStart) {
@@ -224,15 +224,15 @@ void action_dousa(pw_class* i_this) {
i_this->m382 = 5;
switch (i_this->mBehaviorType) {
case InvisibleAtStart:
i_this->mState = 0xB;
i_this->mMode = 0xB;
break;
case OnlyLanternVisibleAtStart:
i_this->m341 = 2;
i_this->mState = 8;
i_this->mMode = 8;
break;
default:
i_this->m346 = 1;
i_this->mState = 0xD;
i_this->mMode = 0xD;
break;
}
}
@@ -256,7 +256,7 @@ void action_dousa(pw_class* i_this) {
first_mode_change(i_this);
i_this->m382 = 3;
i_this->m346 = 1;
i_this->mState = 0xD;
i_this->mMode = 0xD;
}
}
break;
@@ -269,7 +269,7 @@ void action_dousa(pw_class* i_this) {
i_this->mBehaviorType = VisibleFromStart;
i_this->m346 = 1;
first_mode_change(i_this);
i_this->mState = 0xD;
i_this->mMode = 0xD;
}
break;
case 7:
@@ -278,7 +278,7 @@ void action_dousa(pw_class* i_this) {
i_this->current.angle.y = i_this->m38C;
i_this->shape_angle.y = i_this->m38C;
anm_init(i_this, PW_BCK_DERUB2, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mState = 6;
i_this->mMode = 6;
}
break;
case 8:
@@ -286,7 +286,7 @@ void action_dousa(pw_class* i_this) {
i_this->m346 = 1;
if (fopAcM_searchPlayerDistance(i_this) < i_this->m3AC) {
anm_init(i_this, PW_BCK_DERUB1, 3.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
i_this->mState = 7;
i_this->mMode = 7;
}
break;
case 13:
@@ -301,14 +301,14 @@ void action_dousa(pw_class* i_this) {
} else if (i_this->mBckIdx != PW_BCK_WAIT2) {
anm_init(i_this, PW_BCK_WAIT2, 7.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
}
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
case 14:
cLib_addCalc0(&i_this->speedF, 1.0f, 1.0f);
if (i_this->m378) {
break;
}
i_this->mState += 1;
i_this->mMode += 1;
// Fall-through
case 15:
i_this->m378 = cM_rndF(120.0f) + 120.0f;
@@ -323,9 +323,9 @@ void action_dousa(pw_class* i_this) {
}
i_this->m38C += (s16)cM_rndFX(16384.0f);
if (i_this->mPathIndex != 0xFF && i_this->mpPath != NULL) {
i_this->mState = 0x14;
i_this->mMode = 0x14;
} else {
i_this->mState = 0x10;
i_this->mMode = 0x10;
}
break;
case 16:
@@ -335,7 +335,7 @@ void action_dousa(pw_class* i_this) {
if (Line_check(i_this, i_this->current.pos, 0) || hani_check(i_this)) {
i_this->m37A = 10;
} else if (i_this->m378 == 0) {
i_this->mState = 0xF;
i_this->mMode = 0xF;
}
}
break;
@@ -361,14 +361,14 @@ void action_dousa(pw_class* i_this) {
i_this->m38C = fopAcM_searchPlayerAngleY(i_this);
anm_init(i_this, PW_BCK_DAMAGE_K1, 9.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->speedF = -2.0f;
i_this->mState += 1;
i_this->mMode += 1;
break;
case 26:
break;
case 27:
case 28:
if (!fopAcM_CheckStatus(i_this, fopAcStts_HOOK_CARRY_e)) {
i_this->mState = 0x5A;
i_this->mMode = 0x5A;
}
break;
case 101:
@@ -385,12 +385,12 @@ void action_dousa(pw_class* i_this) {
break;
case 100:
anm_init(i_this, PW_BCK_JITTAIKA1, 6.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mState += 1;
i_this->mMode += 1;
break;
case 110:
anm_init(i_this, PW_BCK_ATTACK1, 7.0f, J3DFrameCtrl::EMode_LOOP, 1.0f, -1);
// TODO
i_this->mState += 1;
i_this->mMode += 1;
break;
case 111:
if (i_this->m5C4.getEmitter() != NULL) {
@@ -404,30 +404,30 @@ void action_dousa(pw_class* i_this) {
i_this->speed.setall(0.0f);
i_this->gravity = 0.0f;
anm_init(i_this, PW_BCK_SIRIMOTI1, 0.0f, J3DFrameCtrl::EMode_NONE, 1.0f, -1);
i_this->mState += 1;
i_this->mMode += 1;
case 112:
// Fall-through
if (i_this->mpMorf->isStop()) {
i_this->mState = 90;
i_this->mMode = 90;
}
break;
}
if (i_this->mState <= 11) {
if (i_this->mMode <= 11) {
return;
}
if (i_this->m37C == 0 && i_this->mState < 90) {
if (i_this->mState == 14 || i_this->mState == 16 || i_this->mState == 20) {
if (i_this->m37C == 0 && i_this->mMode < 90) {
if (i_this->mMode == 14 || i_this->mMode == 16 || i_this->mMode == 20) {
if (!hani_check(i_this) && fopAcM_searchPlayerDistance(i_this) < 500.0f && std::fabsf(i_this->current.pos.y - player->current.pos.y) < 100.0f) {
if (!Line_check(i_this, i_this->current.pos, 1) && (i_this->m346 == 1 || !TORITUKI_ON)) {
i_this->mAction = 1;
i_this->mState = 30;
i_this->mMode = 30;
}
}
}
}
if (i_this->mState >= 10 && i_this->mState < 90) {
if (i_this->mMode >= 10 && i_this->mMode < 90) {
alpha_anime(i_this);
}
+5 -5
View File
@@ -601,7 +601,7 @@ bool daRd_c::checkTgHit() {
case AT_TYPE_FIRE:
case AT_TYPE_UNK20000:
r29 = false;
if (mEnemyFire.mState == 0) {
if (mEnemyFire.mMode == 0) {
mEnemyFire.mFireDuration = l_HIO.m4C;
} else {
mHitType = 0xD;
@@ -800,7 +800,7 @@ void daRd_c::modeDeath() {
fopAcM_SetGroup(this, fopAc_ENV_e);
if (cLib_calcTimer(&mTimer1) == 0) {
fopAcM_createDisappear(this, &current.pos, 5);
fopAcM_createDisappear(this, &current.pos, 5, daDisItem_IBALL_e);
fopAcM_delete(this);
}
}
@@ -887,7 +887,7 @@ void daRd_c::modeMove() {
temp = 0.1f;
}
f32 temp2 = l_HIO.m68;
if (mEnemyFire.mState != 0) {
if (mEnemyFire.mMode != 0) {
temp2 *= 2.0f;
}
cLib_addCalc2(&speedF, temp2*temp, 0.1f, 0.1f + REG12_F(0));
@@ -943,7 +943,7 @@ void daRd_c::modeCry() {
temp = 0.1f;
}
f32 temp2 = l_HIO.m68;
if (mEnemyFire.mState != 0) {
if (mEnemyFire.mMode != 0) {
temp2 *= 2.0f;
}
cLib_addCalc2(&speedF, temp2*temp, 0.1f, 0.1f + REG12_F(0));
@@ -1592,7 +1592,7 @@ bool daRd_c::_execute() {
}
current.angle = shape_angle;
if (mEnemyFire.mState == 0) { // Not on fire (TODO enum)
if (mEnemyFire.mMode == 0) { // Not on fire (TODO enum)
mCyl.SetAtType(0);
m6D4 = l_HIO.m4E;
} else {
+4 -4
View File
@@ -4252,20 +4252,20 @@ BOOL daShip_c::execute() {
cyl->SetC(sp9C);
dComIfG_Ccsp()->Set(cyl);
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
cyl->SetTgGrp(cCcD_AtSPrm_VsPlayer_e);
cyl->SetTgGrp(cCcD_TgSPrm_IsPlayer_e);
}
else {
cyl->SetTgGrp(cCcD_AtSPrm_VsPlayer_e | cCcD_AtSPrm_VsOther_e);
cyl->SetTgGrp(cCcD_TgSPrm_IsPlayer_e | cCcD_TgSPrm_IsOther_e);
}
}
cMtx_multVec(mpHeadAnm->getModel()->getAnmMtx(8), &sph_offset, &sp9C);
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
mSph.SetTgGrp(cCcD_AtSPrm_VsPlayer_e);
mSph.SetTgGrp(cCcD_TgSPrm_IsPlayer_e);
}
else {
mSph.SetTgGrp(cCcD_AtSPrm_VsPlayer_e | cCcD_AtSPrm_VsOther_e);
mSph.SetTgGrp(cCcD_TgSPrm_IsPlayer_e | cCcD_TgSPrm_IsOther_e);
}
mSph.SetC(sp9C);
+1 -1
View File
@@ -198,7 +198,7 @@ void dBgS_Acch::LineCheck(dBgS& i_bgs) {
pm_out_poly_info->SetPolyInfo(linChk);
cM3dGPla* pla = i_bgs.GetTriPla(linChk);
if (!(pla->GetNP()->y >= 0.5f)) {
if (!cBgW_CheckBGround(pla->GetNP()->y)) {
VECAdd(pm_pos, pla->GetNP(), pm_pos);
if (!cM3d_IsZero(std::sqrtf(pla->GetNP()->x*pla->GetNP()->x + pla->GetNP()->z*pla->GetNP()->z)))
pm_acch_cir[i].SetWallHDirect(pm_pos->y);
+1 -1
View File
@@ -104,7 +104,7 @@ BOOL dCamParam_c::Change(s32 i_styleIdx) {
mpStyle = &styles[mStyleIdx];
return TRUE;
} else {
mpStyle = &styles[0];
mpStyle = &styles[dCamStyle_NN00_e];
return FALSE;
}
}
+291 -291
View File
File diff suppressed because it is too large Load Diff
+267 -257
View File
@@ -5,263 +5,273 @@
#include "d/d_camera.h"
// Note: Not matching for JPN yet.
// All these array values are different because they're indexes into dCamParam_c::styles, which got shifted around.
// Need to make an enum for these.
const dCamera__Type dCamera_c::types[63] = {
{ "Empty", {
{ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
}},
{ "Plain", {
{ 0x55, 0x55, 0x48, 0x08, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Keep", {
{ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0004, 0xFFFF, 0xFFFF, 0xFFFF },
}},
{ "Event", {
{ 0x0004, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0004, 0xFFFF, 0xFFFF, 0xFFFF },
}},
{ "Boss01", {
{ 0x5C, 0x5C, 0x4A, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x30, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Cliff", {
{ 0x7A, 0x7A, 0x15, 0x07, 0x88, 0x21, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x32, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "PlaySlide", {
{ 0x5E, 0x5E, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Field", {
{ 0x53, 0x53, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "ThrowUp", {
{ 0x5F, 0x5F, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x31, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Gamoss", {
{ 0x61, 0x61, 0x4C, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x8E, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "MiniIsland", {
{ 0x62, 0x62, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x3B, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Cliff2", {
{ 0x63, 0x59, 0x17, 0x07, 0x88, 0x37, 0x35, 0x0D, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x3C, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "FieldCushion", {
{ 0x5A, 0x5A, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "FixdPos", {
{ 0x02, 0x54, 0x47, 0x07, 0x88, 0xFFFF, 0xFFFF, 0x0E, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "SmoothFixdPos", {
{ 0x03, 0x54, 0x47, 0x07, 0x88, 0xFFFF, 0xFFFF, 0x0E, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "WaterBattle", {
{ 0x28, 0x28, 0x45, 0x07, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0xFFFF, 0xFFFF, 0x75, 0xFFFF, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "SmoothFixdPosC", {
{ 0x40, 0x54, 0x47, 0x07, 0x88, 0xFFFF, 0xFFFF, 0x0E, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "ThrowInto", {
{ 0x2B, 0x2B, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x31, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Boss03", {
{ 0x66, 0x66, 0x4D, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "P_Ganon1", {
{ 0x67, 0x67, 0x4E, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "P_Ganon2", {
{ 0x68, 0x68, 0x4F, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "WindBoss", {
{ 0x69, 0x69, 0x50, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x8E, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "P_Ganon3", {
{ 0x6A, 0x6A, 0x4F, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Test01", {
{ 0x64, 0x64, 0x4B, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Amoss", {
{ 0x6B, 0x6B, 0x51, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Dungeon", {
{ 0x54, 0x54, 0x47, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x8E, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "Jump", {
{ 0x01, 0x01, 0x47, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x8E, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "DungeonCorner", {
{ 0x57, 0x57, 0x16, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x8E, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "DungeonWide", {
{ 0x59, 0x59, 0x17, 0x07, 0x88, 0x37, 0x35, 0x0D, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x3C, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "CannonGame", {
{ 0x3F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x04, 0xFFFF, 0xFFFF, 0xFFFF },
}},
{ "FieldFOX", {
{ 0x38, 0x38, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "G_Roof", {
{ 0x41, 0x41, 0x52, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x44, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "G_BedRoom", {
{ 0x77, 0x77, 0x7B, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x87, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "G_BedRoom2", {
{ 0x77, 0x77, 0x7B, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x3D, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "TowerUp", {
{ 0x43, 0x62, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "MajTower", {
{ 0x80, 0x54, 0x80, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x8E, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Tower", {
{ 0x42, 0x62, 0x43, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Boat", {
{ 0x24, 0x20, 0x45, 0x06, 0x88, 0x1A, 0x6F, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0x2C, 0x2D, 0x76, 0xFFFF, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "BoatBattle", {
{ 0x2A, 0x29, 0x6C, 0x06, 0x88, 0x1A, 0x6F, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0x2C, 0x2D, 0x76, 0xFFFF, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "WindHall", {
{ 0x90, 0x71, 0x17, 0x07, 0x88, 0x37, 0x35, 0x0D, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x3C, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "Tornado", {
{ 0x34, 0x20, 0x45, 0x06, 0x88, 0x1A, 0x6E, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0x2C, 0x2D, 0xFFFF, 0xFFFF, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "OverLook", {
{ 0x82, 0x82, 0x46, 0x70, 0x88, 0x21, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x3A, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "Dome", {
{ 0x72, 0x85, 0x47, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x3A, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "ForceFixdPos", {
{ 0x02, 0xFFFF, 0xFFFF, 0xFFFF, 0x88, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0x2C, 0x2D, 0xFFFF, 0x13, 0x19, 0xFFFF, 0x04, 0xFFFF, 0xFFFF, 0xFFFF },
}},
{ "FixdFrm", {
{ 0x1D, 0xFFFF, 0xFFFF, 0xFFFF, 0x88, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0x2C, 0x2D, 0xFFFF, 0x13, 0x19, 0xFFFF, 0x04, 0xFFFF, 0xFFFF, 0xFFFF },
}},
{ "DStairs", {
{ 0x54, 0x54, 0x47, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x73, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "Boss02", {
{ 0x78, 0x78, 0x4A, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Seagal", {
{ 0x86, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0xFFFF, 0xFFFF, 0x39, 0xFFFF, 0xFFFF, 0xFFFF, 0x04, 0xFFFF, 0xFFFF, 0xFFFF },
}},
{ "SmallRoom", {
{ 0x79, 0x79, 0x49, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x8D, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "DanMae", {
{ 0x7F, 0x7F, 0x47, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x7D, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "Cafe", {
{ 0x65, 0x65, 0x49, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x84, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "DungeonPassage", {
{ 0x5D, 0x5D, 0x16, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x84, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "Corridor", {
{ 0x05, 0x05, 0x17, 0x07, 0x88, 0x37, 0x35, 0x0D, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x84, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "Subject", {
{ 0x33, 0xFFFF, 0xFFFF, 0xFFFF, 0x88, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0x2C, 0x2D, 0xFFFF, 0x14, 0x19, 0xFFFF, 0x04, 0xFFFF, 0xFFFF, 0xFFFF },
}},
{ "BigBird", {
{ 0x81, 0x81, 0x89, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2E, 0x2D, 0x39, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Room", {
{ 0x58, 0x58, 0x49, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x8C, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "DungeonDown", {
{ 0x85, 0x85, 0x47, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x83, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "Boss04", {
{ 0x6D, 0x85, 0x47, 0x07, 0x88, 0x37, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x3A, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x8A },
}},
{ "UnderTheEaves", {
{ 0x53, 0x53, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x8B, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Restrict", {
{ 0x36, 0xFFFF, 0xFFFF, 0xFFFF, 0x88, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0x2C, 0x2D, 0xFFFF, 0x13, 0x19, 0xFFFF, 0x04, 0xFFFF, 0xFFFF, 0xFFFF },
}},
{ "DungeonUp", {
{ 0x56, 0x56, 0x15, 0x07, 0x88, 0x21, 0x35, 0x0E, 0x0B, 0x0F },
{ 0x2C, 0x2D, 0x3C, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7E },
}},
{ "Block", {
{ 0x53, 0x53, 0x46, 0x06, 0x88, 0x37, 0x35, 0x0D, 0x1F, 0x1E },
{ 0x2C, 0x2D, 0x8F, 0x13, 0x19, 0x1C, 0x04, 0x27, 0x23, 0x7C },
}},
{ "Water", {
{ 0x5B, 0x5B, 0x47, 0x07, 0x88, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF },
{ 0x2C, 0x2D, 0x74, 0x13, 0x19, 0x1C, 0x04, 0xFFFF, 0xFFFF, 0xFFFF },
}},
const dCamera__Type dCamera_c::types[] = {
{
"Empty",
{dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
{
"Plain",
{dCamStyle_FN03_e, dCamStyle_FN03_e, dCamStyle_LL03_e, dCamStyle_TT03_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Keep",
{dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
{
"Event",
{dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
{
"Boss01",
{dCamStyle_FN15_e, dCamStyle_FN15_e, dCamStyle_LL05_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM05_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Cliff",
{dCamStyle_FN19_e, dCamStyle_FN19_e, dCamStyle_LL06_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW02_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM04_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"PlaySlide",
{dCamStyle_FN20_e, dCamStyle_FN20_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Field",
{dCamStyle_FN01_e, dCamStyle_FN01_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"ThrowUp",
{dCamStyle_FN21_e, dCamStyle_FN21_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM09_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Gamoss",
{dCamStyle_FN23_e, dCamStyle_FN23_e, dCamStyle_LL09_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM03_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"MiniIsland",
{dCamStyle_FN24_e, dCamStyle_FN24_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM10_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Cliff2",
{dCamStyle_FN26_e, dCamStyle_FN07_e, dCamStyle_LL07_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM08_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"FieldCushion",
{dCamStyle_FN10_e, dCamStyle_FN10_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"FixdPos",
{dCamStyle_PN05_e, dCamStyle_FN02_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"SmoothFixdPos",
{dCamStyle_PN12_e, dCamStyle_FN02_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"WaterBattle",
{dCamStyle_FN25_e, dCamStyle_FN25_e, dCamStyle_LL11_e, dCamStyle_TT02_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_MM15_e, dCamStyle_NONE_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"SmoothFixdPosC",
{dCamStyle_PN13_e, dCamStyle_FN02_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"ThrowInto",
{dCamStyle_FN29_e, dCamStyle_FN29_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM09_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Boss03",
{dCamStyle_FN30_e, dCamStyle_FN30_e, dCamStyle_LL12_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"P_Ganon1",
{dCamStyle_FN31_e, dCamStyle_FN31_e, dCamStyle_LL13_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"P_Ganon2",
{dCamStyle_FN32_e, dCamStyle_FN32_e, dCamStyle_LL14_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"WindBoss",
{dCamStyle_FN33_e, dCamStyle_FN33_e, dCamStyle_LL15_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM03_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"P_Ganon3",
{dCamStyle_FN34_e, dCamStyle_FN34_e, dCamStyle_LL14_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Test01",
{dCamStyle_FN27_e, dCamStyle_FN27_e, dCamStyle_LL10_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Amoss",
{dCamStyle_FN35_e, dCamStyle_FN35_e, dCamStyle_LL16_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Dungeon",
{dCamStyle_FN02_e, dCamStyle_FN02_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM03_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"Jump",
{dCamStyle_FN08_e, dCamStyle_FN08_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM03_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
#if VERSION == VERSION_JPN
{
"DungeonUp",
{dCamStyle_FN04_e, dCamStyle_FN04_e, dCamStyle_LL06_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW02_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM02_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
#endif
{
"DungeonCorner",
{dCamStyle_FN06_e, dCamStyle_FN06_e, dCamStyle_LL08_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM03_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"DungeonWide",
{dCamStyle_FN07_e, dCamStyle_FN07_e, dCamStyle_LL07_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM08_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"CannonGame",
{dCamStyle_ZZ00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
{
"FieldFOX",
{dCamStyle_GN01_e, dCamStyle_GN01_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"G_Roof",
{dCamStyle_FN82_e, dCamStyle_FN82_e, dCamStyle_LL82_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM82_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"G_BedRoom",
{dCamStyle_FN81_e, dCamStyle_FN81_e, dCamStyle_LL81_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM81_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"G_BedRoom2",
{dCamStyle_FN81_e, dCamStyle_FN81_e, dCamStyle_LL81_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM83_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"TowerUp",
{dCamStyle_IN02_e, dCamStyle_FN24_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"MajTower",
{dCamStyle_IN03_e, dCamStyle_FN02_e, dCamStyle_IN03_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM03_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Tower",
{dCamStyle_IN01_e, dCamStyle_FN24_e, dCamStyle_IN02_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Boat",
{dCamStyle_BN07_e, dCamStyle_BP07_e, dCamStyle_LL11_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_BW07_e, dCamStyle_BE07_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM07_e, dCamStyle_NONE_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"BoatBattle",
{dCamStyle_BN08_e, dCamStyle_BP08_e, dCamStyle_LL17_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_BW07_e, dCamStyle_BE07_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM07_e, dCamStyle_NONE_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
#if VERSION == VERSION_JPN
{
"Water",
{dCamStyle_FN14_e, dCamStyle_FN14_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM14_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_NONE_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
#endif
{
"WindHall",
{dCamStyle_FN38_e, dCamStyle_FP38_e, dCamStyle_LL07_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM08_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"Tornado",
{dCamStyle_QN07_e, dCamStyle_BP07_e, dCamStyle_LL11_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_BW07_e, dCamStyle_BE08_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"OverLook",
{dCamStyle_FN11_e, dCamStyle_FN11_e, dCamStyle_LL01_e, dCamStyle_TT04_e, dCamStyle_SS01_e, dCamStyle_LW02_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM02_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"Dome",
{dCamStyle_FN39_e, dCamStyle_FN05_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM02_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"ForceFixdPos",
{dCamStyle_PN05_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SS01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_NONE_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_NONE_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
{
"FixdFrm",
{dCamStyle_XN06_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SS01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_NONE_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_NONE_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
{
"DStairs",
{dCamStyle_FN02_e, dCamStyle_FN02_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM16_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"Boss02",
{dCamStyle_FN40_e, dCamStyle_FN40_e, dCamStyle_LL05_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Seagal",
{dCamStyle_FN36_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_MM01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
{
"SmallRoom",
{dCamStyle_FN41_e, dCamStyle_FN41_e, dCamStyle_LL04_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM17_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"DanMae",
{dCamStyle_FN42_e, dCamStyle_FN42_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM19_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"Cafe",
{dCamStyle_FN28_e, dCamStyle_FN28_e, dCamStyle_LL04_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM20_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"DungeonPassage",
{dCamStyle_FN17_e, dCamStyle_FN17_e, dCamStyle_LL08_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM20_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"Corridor",
{dCamStyle_FN12_e, dCamStyle_FN12_e, dCamStyle_LL07_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM20_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"Subject",
{dCamStyle_LN17_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SS01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_NONE_e, dCamStyle_CC02_e, dCamStyle_SN15_e, dCamStyle_NONE_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
{
"BigBird",
{dCamStyle_FN43_e, dCamStyle_FN43_e, dCamStyle_LL18_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX02_e, dCamStyle_SY01_e, dCamStyle_MM01_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Room",
{dCamStyle_FN09_e, dCamStyle_FN09_e, dCamStyle_LL04_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM18_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"DungeonDown",
{dCamStyle_FN05_e, dCamStyle_FN05_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM21_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"Boss04",
{dCamStyle_FN37_e, dCamStyle_FN05_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM02_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD04_e},
},
{
"UnderTheEaves",
{dCamStyle_FN01_e, dCamStyle_FN01_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM22_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Restrict",
{dCamStyle_LN01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SS01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_NONE_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_NONE_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
#if VERSION != VERSION_JPN
{
"DungeonUp",
{dCamStyle_FN04_e, dCamStyle_FN04_e, dCamStyle_LL06_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_LW02_e, dCamStyle_LE01_e, dCamStyle_LH02_e, dCamStyle_LA02_e, dCamStyle_LB02_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM08_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD02_e},
},
{
"Block",
{dCamStyle_FN01_e, dCamStyle_FN01_e, dCamStyle_LL01_e, dCamStyle_TT01_e, dCamStyle_SS01_e, dCamStyle_LW01_e, dCamStyle_LE01_e, dCamStyle_LH01_e, dCamStyle_LA01_e, dCamStyle_LB01_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM23_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_HN18_e, dCamStyle_HN16_e, dCamStyle_DD01_e},
},
{
"Water",
{dCamStyle_FN14_e, dCamStyle_FN14_e, dCamStyle_LL02_e, dCamStyle_TT02_e, dCamStyle_SS01_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_SX01_e, dCamStyle_SY01_e, dCamStyle_MM14_e, dCamStyle_CC01_e, dCamStyle_SN15_e, dCamStyle_JN05_e, dCamStyle_EN00_e, dCamStyle_NONE_e, dCamStyle_NONE_e, dCamStyle_NONE_e},
},
#endif
};
const int dCamera_c::type_num = ARRAY_SIZE(types);

Some files were not shown because too many files have changed in this diff Show More