diff options
| author | Colin Noga <Tempus@Spectrum-Song.local> | 2011-10-14 18:10:36 -0500 | 
|---|---|---|
| committer | Colin Noga <Tempus@Spectrum-Song.local> | 2011-10-14 18:10:36 -0500 | 
| commit | 51861f825f6c0efd7814309417d038dbb5bc3bba (patch) | |
| tree | e0878d462bbfc91a1e96d4fca1ca4f3f021c1cce /src | |
| parent | aecb0ff2ad22f35dbc392a99de6c3d270e0d0a48 (diff) | |
| parent | c624775bf5f5c57757fdc5b24891dca83d7f81fd (diff) | |
| download | kamek-51861f825f6c0efd7814309417d038dbb5bc3bba.tar.gz kamek-51861f825f6c0efd7814309417d038dbb5bc3bba.zip | |
Merge branch 'level-select' of ssh://treeki.shacknet.nu:30000/Kamek into level-select
Diffstat (limited to 'src')
| -rw-r--r-- | src/bossMegaGoomba.cpp | 28 | ||||
| -rw-r--r-- | src/player.cpp | 24 | ||||
| -rw-r--r-- | src/player.h | 1 | 
3 files changed, 48 insertions, 5 deletions
| diff --git a/src/bossMegaGoomba.cpp b/src/bossMegaGoomba.cpp index e836afb..032cfa8 100644 --- a/src/bossMegaGoomba.cpp +++ b/src/bossMegaGoomba.cpp @@ -44,7 +44,10 @@ class daMegaGoomba_c : public dEn_c {  	float JumpTime;  	bool takeHit(char count); + +	void bindAnimChr_and_setUpdateRate(const char* name, int unk, float unk2); +	void dieFall_Begin();  	void dieFall_Execute();  	static daMegaGoomba_c *build(); @@ -167,8 +170,17 @@ void daMegaGoomba_c::_vf120(ActivePhysics *apThis, ActivePhysics *apOther) { OSR  void daMegaGoomba_c::_vf110(ActivePhysics *apThis, ActivePhysics *apOther) { OSReport("_vf110:\n"); }  void daMegaGoomba_c::_vf108(ActivePhysics *apThis, ActivePhysics *apOther) { OSReport("_vf108:\n"); } +void daMegaGoomba_c::bindAnimChr_and_setUpdateRate(const char* name, int unk, float unk2) { +	nw4r::g3d::ResAnmChr anmChr = this->resFile.GetResAnmChr(name); +	this->animationChr.bind(&this->bodyModel, anmChr, unk); +	this->bodyModel.bindAnim(&this->animationChr, unk2); +	this->animationChr.setUpdateRate(1.0); +} - +void daMegaGoomba_c::dieFall_Begin() { +	//this->bindAnimChr_and_setUpdateRate("split", 0, 0.0); +	//dSprite_c::dieFall_Begin(); +}  //TODO make this real perty like  void daMegaGoomba_c::dieFall_Execute() { @@ -215,6 +227,7 @@ void daMegaGoomba_c::setupBodyModel() {  	bool ret;  	nw4r::g3d::ResAnmChr anmChr = this->resFile.GetResAnmChr("walk");  	ret = this->animationChr.setup(mdl, anmChr, &this->allocator, 0); +	this->bodyModel.bindAnim(&this->animationChr, 0.0);  	nw4r::g3d::ResAnmTexPat anmPat = this->resFile.GetResAnmTexPat("walk");  	this->resTexPat = anmPat; @@ -309,7 +322,8 @@ int daMegaGoomba_c::onExecute() {  int daMegaGoomba_c::onDraw() {  	bodyModel.scheduleForDrawing(); -	animationChr.process(); +	bodyModel._vf1C(); +	//animationChr.process();  	animationPat.process();  	return true;  } @@ -508,9 +522,11 @@ void daMegaGoomba_c::beginState_Walk() {  	//SETUP WALK ANIMATION//  	nw4r::g3d::ResAnmChr anmChr = this->resFile.GetResAnmChr("walk"); -	this->animationChr.bind(&this->bodyModel, anmChr, 0); -	this->bodyModel.bindAnim(&this->animationChr, 2.0); -	/*this->animationChr._setUpdateRate(2.0); FIXME*/ +	this->animationChr.bind(&this->bodyModel, anmChr, 1); +	this->bodyModel.bindAnim(&this->animationChr, 0.0); +	this->animationChr.setUpdateRate(1.0); +	//OSReport("Current anmChr frame: %f\n", this->animationChr.getCurrentFrame()); +	//OSReport("Is animation done? %d\n", this->animationChr.isAnimationDone());  	this->bodyModel.bindAnim(&this->animationPat, 0.0);  	this->animationPat.setUpdateRateForEntry(1.0, 0);  	this->animationPat.setEntryByte34(0, 0); @@ -527,6 +543,8 @@ void daMegaGoomba_c::executeState_Walk() {  	   Vec vctr;  	   ConvertMatrixToTranslationVector(&mtx, &vctr);  	*/ +	if(this->animationChr.isAnimationDone()) +		this->animationChr.setCurrentFrame(0.0);  	//HandleAcceleration(this);  	//HandleXSpeed(this); diff --git a/src/player.cpp b/src/player.cpp index 75224b9..d70c19c 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -33,3 +33,27 @@ char NearestPlayer(dStageActor_c* actor) {  	return nearest;  } +void setNewActivePhysicsRect(dStageActor_c* actor, Vec* scale) { +	float amtX = scale->x; +	float amtY = scale->y; + +	ActivePhysics::Info info; +	info.xDistToCenter = 0.0; +	info.yDistToCenter = 3.0 * amtY; +	info.xDistToEdge   = 4.0 * amtX; +	info.yDistToEdge   = 4.0 * amtY; + +	info.category1  = actor->aPhysics.info.category1; +	info.category2  = actor->aPhysics.info.category2; +	info.bitfield1  = actor->aPhysics.info.bitfield1; +	info.bitfield2  = actor->aPhysics.info.bitfield2; +	info.unkShort1C = actor->aPhysics.info.unkShort1C; +	info.callback   = actor->aPhysics.info.callback; + +	//OSReport("Making new Physics Class and adding to the list\n"); +	actor->aPhysics.removeFromList(); +	actor->aPhysics.initWithStruct(actor, &info); +	actor->aPhysics.addToList(); +} + + diff --git a/src/player.h b/src/player.h index d225083..4e036ae 100644 --- a/src/player.h +++ b/src/player.h @@ -6,6 +6,7 @@  extern "C" dStageActor_c* GetSpecificPlayerActor(int number);  char NearestPlayer(dStageActor_c* actor); +void setNewActivePhysicsRect(dStageActor_c* actor, Vec* scale);  #endif | 
