3#include <game/bases/d_wm_demo_actor.hpp>
4#include <game/bases/d_wm_en_path.hpp>
5#include <game/bases/d_wm_bgm_sync.hpp>
9class dWmEnemy_c :
public dWmDemoActor_c {
29 virtual int GetIndex() {
return isDead() ? -1 : mPath.mpCurrentPoint->mPointIndex; }
30 virtual int GetNextIndex() {
return mPath.GetNextPointIdx(); }
31 virtual float GetTerritory() {
return 0.0f; }
32 virtual void initWalk() {}
33 virtual bool doWalk();
34 virtual void initDemoAnger();
35 virtual bool procDemoAnger();
36 virtual void initDemoLose();
37 virtual bool procDemoLose();
38 virtual void procDemoLoseEnd();
39 virtual void initDemoStarLose();
40 virtual bool procDemoStarLose();
41 virtual void initDemoBgmDance();
42 virtual bool procDemoBgmDance();
43 virtual mVec3_c calcBlowOffPos(
float offsetX) {
return mVec3_c(
mPos.x + offsetX,
mPos.y,
mPos.z); }
44 virtual mVec3_c getPointOffset(
int index);
45 virtual short getWaitAngle() {
return 0; }
46 virtual float getWalkAnmRate() {
return 1.0f; }
47 virtual void setWalkAnm(
float anmRate) {}
48 virtual bool IsHitToWaitPlayer();
49 virtual int getStartPoint();
50 virtual int vfc4(
int pointNo) {
return pointNo; }
52 virtual void calculateEffect();
53 virtual int getEnemyWalkSeID();
54 virtual bool IsPlayerComing() {
return IsPlayerComingCore(); }
55 virtual bool IsRandomWalk();
56 virtual bool IsRandomMove() {
return true; }
57 virtual short GetChangeDirRate() {
return 50; }
58 virtual int GetMoveRate() {
return 100; }
59 virtual short GetWalkWaitFrame() {
return 20; }
60 virtual void PostWaitWalk() {}
61 virtual void updateBgmAnimRate();
62 virtual int isWaitWalkEnd() {
return mCurrProc != PROC_TYPE_WAIT_WALK; }
64 void initializeBase(
const char **names,
int count,
bool cyclic);
65 void initShapeAngle();
67 bool IsNeedChasePlayer();
68 mVec3_c getNextPointInfo();
69 mVec3_c getCurrentPointInfo();
71 bool isNextThroughPoint();
72 bool CheckIsHitToPlayer();
73 void updatePathInfo(
bool);
79 bool isThroughPoint(
int);
81 void ModelCalc(m3d::mdl_c *mdl,
float yOffset,
float shadowYOffset,
float shadowScale);
82 bool IsPlayerComingCore();
83 bool IsHitToMovePlayer();
84 bool isAllEnemyMoveEnd();
85 bool procDemoLoseBase(
short angle);
89 void init_DemoContinue();
90 void mode_DemoContinue();
98 typedef void (dWmEnemy_c::*ProcFunc)();
102 float m_00, m_04, m_08, m_0c;
110 PROC_TYPE_DEMO_CONTINUE,
126 bool mArrivedAtTarget;
131 PROC_TYPE_e mCurrProc;
133 int mDemoContinueRelated;
135 int mBgmDanceRelated;
141 ACTOR_PARAM_CONFIG(enemyNo, 0, 4);
142 ACTOR_PARAM_CONFIG(startPoint, 4, 4);
145 static const char *smc_PathPointA[];
146 static const char *smc_PathPointB[];
147 static const char *smc_PathPointC[];
mVec3_c mPos
The actor's position.
@ ACTOR_MAP_ENEMY
A map enemy (dWmEnemy_c).
virtual int execute()
do method for the execute operation.
virtual int vfc4(int pointNo)
virtual int doDelete()
do method for the delete operation.
POINT_TYPE_e mNextPointType
0 = stop point, 1 = through point
virtual int GetActorType()
Gets the actor kind. See ACTOR_KIND_e.
virtual int draw()
do method for the draw operation.
bool csCommand(int id, bool b)
void demoJump(const mVec3_c &pos, JumpData_s &jumpData, float scale)
virtual int create()
do method for the create operation.
@ SUCCEEDED
The step was completed successfully.
A three-dimensional short angle vector.