Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
239
GameTools/Zallad3D SceneClass/BoidScene2.h
Normal file
239
GameTools/Zallad3D SceneClass/BoidScene2.h
Normal file
@@ -0,0 +1,239 @@
|
||||
#ifndef __BOID_H__
|
||||
#define __BOID_H__
|
||||
#include <d3dx8.h>
|
||||
#include "CGemRender.h"
|
||||
#include <time.h>
|
||||
|
||||
//#include "datadefine.h"
|
||||
//#include " SectorDefine.h"
|
||||
|
||||
#define BOIDUNLIMIT -100000
|
||||
#define BOIDMAXLIMIT 10000000
|
||||
|
||||
#define SEENDEFAULT 50.0f
|
||||
#define FEARFULL 1.0f
|
||||
#define NOTFEAR 0.0f
|
||||
//separate
|
||||
#define BOIDRAD 10.0f
|
||||
//align
|
||||
#define ALIGN 0.00005f
|
||||
|
||||
#define TEST_SECNUM 0
|
||||
#define TEST_SECSIZE 800
|
||||
#define BPI 3.14159f
|
||||
#define BHALF_PI (BPI/2)
|
||||
#define BGRAVITY 9.806650f
|
||||
// 0~1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> return
|
||||
#define BRAND() (float) (rand()/(RAND_MAX * 1.0))
|
||||
|
||||
//change value
|
||||
#define BMAXSPEED 0.5f
|
||||
#define BMIN 0.05f
|
||||
#define BMAX 0.1f
|
||||
#define BMAXCHANGE (BMAXSPEED * BMAX)
|
||||
//#define BDesiredSpeed (BMAXSPEED/2)
|
||||
|
||||
enum SPACE{ LAND,
|
||||
WATER,
|
||||
FLY};
|
||||
enum PAT{ BOIDGROUP,
|
||||
INDIVIDUAL};
|
||||
// <20><><EFBFBD><EFBFBD> <20>ൿ<EFBFBD><E0B5BF><EFBFBD><EFBFBD> (ȸ<><C8B8>,<2C><EFBFBD>,<2C>л<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
enum SUBPAT{ AVOID,
|
||||
RELEASE,
|
||||
SPREAD,
|
||||
SAMELOOK,
|
||||
MASTER
|
||||
};
|
||||
|
||||
enum LOD{ NOT,
|
||||
MIDDLE,
|
||||
FAR
|
||||
};
|
||||
enum ACT{ SLEEP,
|
||||
PEACE,
|
||||
WALK,
|
||||
RUN,
|
||||
FLYING
|
||||
};
|
||||
|
||||
|
||||
|
||||
class CBoidGroup{
|
||||
public:
|
||||
// <20>Ϲ<EFBFBD> <20><><EFBFBD>̵<EFBFBD> <20><><EFBFBD><EFBFBD>ü
|
||||
class BoidUnit {
|
||||
public:
|
||||
BoidUnit() {
|
||||
pos.x = pos.y = pos.z = 0.0f;
|
||||
before_pos = pos;
|
||||
Live = true;
|
||||
rot[0] = rot[1] =rot[2] = 0.0f;
|
||||
speed = 0.0f;
|
||||
look.x = look.y = look.z = 0.0f;
|
||||
before_look.x = before_look.y = before_look.z = 0.0f;
|
||||
fwd.x = fwd.y =fwd.z = 0.0f;
|
||||
before_fwd.x = before_fwd.y = before_fwd.z = 0.0f;
|
||||
vot = 1.0f;
|
||||
backup_vot = vot;
|
||||
backup_frame = 0.0f;
|
||||
active = 0;
|
||||
height = -1;
|
||||
frame = 0.0f;
|
||||
m_fly = 0;
|
||||
start_vot = 0.0f;
|
||||
}
|
||||
~BoidUnit() {
|
||||
|
||||
}
|
||||
bool Live;
|
||||
float frame;
|
||||
D3DXVECTOR3 pos;
|
||||
D3DXVECTOR3 before_pos;
|
||||
|
||||
//ȸ<><C8B8> <20><>
|
||||
// D3DXVECTOR3 rotaxis;
|
||||
float rot[3];
|
||||
|
||||
//speed (fwd<77><64> length)
|
||||
float speed;
|
||||
|
||||
// <20><>ǥ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
D3DXVECTOR3 look;
|
||||
D3DXVECTOR3 before_look;
|
||||
|
||||
D3DXVECTOR3 fwd;
|
||||
D3DXVECTOR3 before_fwd;
|
||||
int height;
|
||||
// <20><EFBFBD><EEB5BF><EFBFBD><EFBFBD>
|
||||
int active;
|
||||
float vot;
|
||||
float backup_vot;
|
||||
float backup_frame;
|
||||
|
||||
float start_vot;
|
||||
int m_fly;
|
||||
|
||||
};
|
||||
|
||||
CBoidGroup();
|
||||
~CBoidGroup();
|
||||
// Boid Mesh Name setting
|
||||
void SetBoidName(char *filename,char *path);
|
||||
char *GetBoidName();
|
||||
|
||||
void RandomRot(BoidUnit *, float );
|
||||
|
||||
// boid Update
|
||||
// õ<><C3B5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Update
|
||||
void Update();
|
||||
void SetSpace(int s) { Space = s; }
|
||||
// ȸ<><C8B8> :: <20><><EFBFBD>ֹ<EFBFBD><D6B9>̳<EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> ȸ<><C8B8>
|
||||
void avoid();
|
||||
|
||||
// <20>浹 <20><><EFBFBD>ϱ<EFBFBD> :: <20><><EFBFBD><EFBFBD> <20><EFBFBD><D7B7><EFBFBD> boid <20><> <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD>.
|
||||
void separate(BoidUnit *,D3DXVECTOR3 *);
|
||||
// <20>浹<EFBFBD><E6B5B9><EFBFBD>ϱ<EFBFBD> :: <20><><EFBFBD><EFBFBD><EFBFBD>ൿ <20><><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void separate2(BoidUnit *);
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>浹 <20><><EFBFBD>ϱ<EFBFBD>
|
||||
void HeightSeparate(BoidUnit *,D3DXVECTOR3 *);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD> :: <20><><EFBFBD><EFBFBD> <20><EFBFBD><D7B7><EFBFBD> boid <20><><EFBFBD><EFBFBD> <20><><EFBFBD>⺤<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void align(BoidUnit *,D3DXVECTOR3 *);
|
||||
//<2F><><EFBFBD><EFBFBD> :: <20><><EFBFBD><EFBFBD> <20><EFBFBD><D7B7><EFBFBD> boid <20><><EFBFBD><EFBFBD> <20><>ǥ <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void concenter(BoidUnit *,D3DXVECTOR3 *);
|
||||
void randomvec(BoidUnit *,D3DXVECTOR3 *);
|
||||
// rot setting
|
||||
void RotSet(BoidUnit *);
|
||||
|
||||
// <20><><EFBFBD>踦 <20><><EFBFBD> boid<69><64> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
void Bound(BoidUnit *);
|
||||
|
||||
void SetUnit();
|
||||
void SetBoidSpeed(float s) {
|
||||
Boid_Speed = s;
|
||||
}
|
||||
void SetBoidRange(float x,float y,float z,float limit) {
|
||||
Boid_Range.x = x;
|
||||
Boid_Range.y = y;
|
||||
Boid_Range.z = z;
|
||||
m_LimitHeight = limit;
|
||||
|
||||
}
|
||||
|
||||
// Boid Render failed : 0 return
|
||||
bool Render(LPDIRECT3DDEVICE8 );
|
||||
// <20><EFBFBD><EEB5BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(0 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1: <20><><EFBFBD><EFBFBD><EFBFBD>ൿ<EFBFBD><E0B5BF>)
|
||||
void SetPat(int v) {pat = v;}
|
||||
int GetPat() { return pat;}
|
||||
void SetUnitVot(float vot);
|
||||
void SetPos(float x,float y,float z);
|
||||
void CreateMaster();
|
||||
float GetHeight(float x,float z);
|
||||
|
||||
void SetMesh(CGemRender *mesh) {BoidMesh = mesh;}
|
||||
void SetFwd(D3DXVECTOR3 sp) { fwd = sp; }
|
||||
void SetFwd(float x,float y,float z) { fwd.x = x;fwd.y = y;fwd.z = z;}
|
||||
void SetFwd();
|
||||
void SetPick(bool b) {m_Pick = b;}
|
||||
|
||||
void SetBoidKind(int v) {m_BoidKind = v;}
|
||||
|
||||
void SetUnitNum(int n);
|
||||
void butterfly(BoidUnit &);
|
||||
|
||||
int pat;
|
||||
private:
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><>Ȳ <20><><EFBFBD><EFBFBD>.(<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
int CloseGroup;
|
||||
// <20><><EFBFBD><EFBFBD> <20><>
|
||||
int Space;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..)
|
||||
D3DXVECTOR3 limit;
|
||||
// Speed
|
||||
D3DXVECTOR3 fwd;
|
||||
D3DXVECTOR3 m_SetPos;
|
||||
// <20><><EFBFBD><EFBFBD> <20><EFBFBD><D7B7><EFBFBD> boid <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>浹<EFBFBD><E6B5B9> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
float BoidBox;
|
||||
|
||||
// <20><> <20><EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20>νİ<CEBD><C4B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
float SeenRad;
|
||||
// <20><> <20><><EFBFBD>̵<EFBFBD> <20><EFBFBD><D7B7><EFBFBD> <20>ൿ <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>,<2C><>ü)
|
||||
int Pattern;
|
||||
// <20><><EFBFBD><EFBFBD> <20>ൿ<EFBFBD><E0B5BF><EFBFBD><EFBFBD> (ȸ<><C8B8>,<2C><EFBFBD>,<2C>л<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
int SubPattern;
|
||||
// <20≯<EFBFBD><CCB8><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD> (0.0f~1.0f)
|
||||
float FearValue;
|
||||
|
||||
|
||||
// Boid Unit Number
|
||||
int Unit_Num;
|
||||
int Lod;
|
||||
//sector id
|
||||
int SecX,SecY;
|
||||
|
||||
|
||||
BoidUnit *Units;
|
||||
// move range
|
||||
D3DXVECTOR3 Boid_Range;
|
||||
float m_LimitHeight;
|
||||
|
||||
// speed
|
||||
float Boid_Speed;
|
||||
|
||||
// Boid<69><64> Mesh Data
|
||||
CGemRender *BoidMesh;
|
||||
char m_BoidName[256];
|
||||
bool m_Pick;
|
||||
unsigned long m_BeforeFrame;
|
||||
unsigned long m_CurrentFrame;
|
||||
int m_BoidKind;
|
||||
bool startup;
|
||||
int tick;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user