Exemplo n.º 1
0
    // constructor, specifying stream and buffer size in bytes 
     pablioBuffer(
	  unsigned  int framesPerSecond,
          unsigned char bytesPerSample,
          unsigned char samplesPerFrame,
	  unsigned long frames) : _buffer(0),PCMsound(framesPerSecond, bytesPerSample, samplesPerFrame) {
	SetFrames(frames);
	_reallocateBuffer();
     }
Exemplo n.º 2
0
Moose::Moose(SimianBase * theApp, char * theName) : Entity(theApp, theName)
{
	SetType(ET_MOOSE);
	SetState(ES_IDLE);
	SetFrames(6, 3);

	int WalkLeft[]		= {0,1,0,2};
	int WalkRight[]		= {5,3,5,4};
	int WalkUp[]		= {9,10,9,11};
	int WalkDown[]		= {6,7,6,8};
	int WalkLength[]	= {4,4,4,4};

	int StandLeft[]		= {0};
	int StandRight[]	= {5};
	int StandUp[]   	= {9};
	int StandDown[] 	= {6};
	int StandLength[]	= {1,1,1,1};

	int ChargeLeft[]	= {12, 13};
	int ChargeRight[]	= {15, 16};
	int ChargeUp[]		= {10, 11};
	int ChargeDown[]	= {7, 8};
	int ChargeLength[]  = {2,2,2,2};

	ANIMATION_RUNNING	= AddAnimation(WalkUp, WalkDown, WalkLeft, WalkRight, WalkLength);
	ANIMATION_STANDING	= AddAnimation(StandUp, StandDown, StandLeft, StandRight, StandLength);
	ANIMATION_WALKING	= AddAnimation(WalkUp, WalkDown, WalkLeft, WalkRight, WalkLength);
	ANIMATION_EATING	= AddAnimation(StandUp, StandDown, StandLeft, StandRight, StandLength);
	ANIMATION_CHARGING  = AddAnimation(ChargeUp, ChargeDown, ChargeLeft, ChargeRight, ChargeLength);

	SetAnimationSpeed(200);
	PlayAnimation(ANIMATION_WALKING);

	mWanderStep		= 50;
	mPauseTime		= 1000;
	mMoveSpeed		= 0.5;
	mSearchDistance = 200;
	mSearchAngle	= 60;
	mTargetType		= ET_GRASS;

	mHungerTimer = 1000;
}
Exemplo n.º 3
0
void ScreamerNode::Update(void)
{
	switch(m_state){
		case WAIT:{
			if(m_waitreply == false){
				m_waitreply = true;

				m_jobfile.clear();
				m_jobfile.open(m_job.c_str(),std::ios::out);

				m_jobfile << "wait";

				m_jobfile.close();

				SetAvailable(true);
			}else{
				if(ReadReply(WAIT) == true){
					m_waitreply = false;
				}
			}
		}break;

		case INIT:{
			if(m_waitreply == false){
				m_waitreply = true;

				m_jobfile.clear();
				m_jobfile.open(m_job.c_str(),std::ios::out);

				m_jobfile << "init";

				m_jobfile.close();

				SetAvailable(false);
			}else{
				if(ReadReply(INIT) == true){
					m_waitreply = false;
					m_state			= CONTENT;
				}
			}
		}break;

		case CONTENT:{
			if(m_waitreply == false){
				m_waitreply = true;

				m_jobfile.clear();
				m_jobfile.open(m_job.c_str(),std::ios::out);


				m_jobfile << "content " << m_contentdir << std::endl;

				m_jobfile.close();
			}else{
				if(ReadReply(CONTENT) == true){
					m_waitreply = false;
					m_state			= LOAD;
				}
			}
		}break;

		case LOAD:{
			if(m_waitreply == false){
				m_waitreply = true;

				m_jobfile.clear();
				m_jobfile.open(m_job.c_str(),std::ios::out);

				m_jobfile << "load" << std::endl << m_scenefile;

				m_jobfile.close();
			}else{
				if(ReadReply(LOAD) == true){
					m_waitreply	=	false;

					m_state			=	RENDERWAIT;
				}
			}
		}break;

		case RENDERWAIT:{
			if(m_waitreply == false){
				m_waitreply = true;

				m_jobfile.clear();
				m_jobfile.open(m_job.c_str(),std::ios::out);

				m_jobfile << "wait";

				m_jobfile.close();
			}else{
				if(ReadReply(WAIT) == true){
					switch(m_renderstate){
						case REQ_BATCH:{
							m_scene->RequestBatch(m_start,m_end,m_step);

							m_state				=	RENDER;
							m_renderstate = RENDERING;
	
							SetFrames();

							m_waitreply = false;

							if(m_start == SCENE_COMPLETE){
								SetAvailable(true);

								ClearScene();
								ClearFrames();

								m_state	= WAIT;
							}
						}break;

						case RENDERING:{
							m_scene->FrameComplete();
							scene_view->Update(m_scene->GetID());

							if(m_start >= m_end){
								m_renderstate = REQ_BATCH;
							}else{
								m_waitreply	= false;

								m_state	=	RENDER;

								m_start++;
							}
						}
					};
				}
			}
		}break;

		case RENDERPAUSE:{
			if(m_waitreply == false){
				m_waitreply = true;
			}else{
				m_waitreply = false;
			}
		}break;

		case RENDER:{
			if(m_waitreply == false){
				m_waitreply = true;

				m_jobfile.clear();
				m_jobfile.open(m_job.c_str(),std::ios::out);

				m_jobfile << "render " << m_start << " " << m_start << " " << m_step;

				m_jobfile.close();
			}else{

				if(ReadReply(RENDER) == true){
					m_waitreply	= false;
					m_state			= RENDERWAIT;
				}
			}
		}break;


	};

	screamer_view->Update(m_number);
}