void nofBuildingWorker::Draw(DrawPoint drawPt) { switch(state) { case STATE_FIGUREWORK: case STATE_HUNTER_CHASING: case STATE_HUNTER_WALKINGTOCADAVER: case STATE_HUNTER_FINDINGSHOOTINGPOINT: { DrawWalking(drawPt); } break; case STATE_WORK: case STATE_HUNTER_SHOOTING: case STATE_HUNTER_EVISCERATING: case STATE_CATAPULT_TARGETBUILDING: case STATE_CATAPULT_BACKOFF: DrawWorking(drawPt); break; case STATE_CARRYOUTWARE: DrawWalkingWithWare(drawPt); break; case STATE_WALKINGHOME: case STATE_ENTERBUILDING: if(ware != GD_NOTHING) DrawWalkingWithWare(drawPt); else DrawWalking(drawPt); break; default: DrawOtherStates(drawPt); break; } }
/// Zeichnet Figur beim Hereinlaufen/nach Hause laufen mit evtl. getragenen Waren void nofBuildingWorker::DrawReturnStates(const int x, const int y) { // Beim Nachhausegehen (Landarbeiter) und beim Reingehen kann entweder eine Ware getragen werden oder nicht if(ware != GD_NOTHING) DrawWalking(x, y, LOADER.GetBobN("jobs"), GetCarryID(), JOB_CONSTS[job].fat); else DrawWalking(x, y); }
/// Draws the figure while returning home / entering the building (often carrying wares) void nofCharburner::DrawReturnStates(const int x, const int y) { // Carry coal? if(ware == GD_COAL) DrawWalking(x, y, "charburner_bobs", 200); else // Draw normal walking otherwise DrawWalking(x, y); }
/// Draws the figure while returning home / entering the building (often carrying wares) void nofCharburner::DrawReturnStates(DrawPoint drawPt) { // Carry coal? if(ware == GD_COAL) DrawWalking(drawPt, "charburner_bobs", 200); else // Draw normal walking otherwise DrawWalking(drawPt); }
/// Zeichnet Figur beim Hereinlaufen/nach Hause laufen mit evtl. getragenen Waren void nofBuildingWorker::DrawWalkingWithWare(DrawPoint drawPt) { unsigned short id = GetCarryID(); // >=100 -> carrier.bob else jobs.bob! if(id >= 100) DrawWalking(drawPt, LOADER.GetBobN("carrier"), id - 100, JOB_CONSTS[job_].fat); else DrawWalking(drawPt, LOADER.GetBobN("jobs"), id, JOB_CONSTS[job_].fat); }
void nofTradeDonkey::Draw(int x, int y) { if(job == JOB_PACKDONKEY) { // Wenn wir warten auf ein freies Plätzchen, müssen wir den stehend zeichnen! // Wenn event = 0, dann sind wir mittem auf dem Weg angehalten! unsigned ani_step = GAMECLIENT.Interpolate(ASCENT_ANIMATION_STEPS[ascent],current_ev)%8; CalcFigurRelative(x,y); // Läuft normal mit oder ohne Ware // Esel LOADER.GetMapImageN(2000+((dir+3)%6)*8+ani_step)->Draw(x,y); // Schatten des Esels LOADER.GetMapImageN(2048+dir%3)->Draw(x,y,0,0,0,0,0,0,COLOR_SHADOW); if(gt != GD_NOTHING) { // Ware im Korb zeichnen LOADER.GetMapImageN(2350+gt) ->Draw(x+WARE_POS_DONKEY[dir*16+ani_step*2],y+WARE_POS_DONKEY[dir*16+ani_step*2+1]); } } else DrawWalking(x,y); }
void noFigure::DrawWalking(int x, int y) { // Figurentyp unterscheiden switch(job_) { case JOB_PACKDONKEY: { // Wenn wir warten, ani-step 2 benutzen unsigned ani_step = waiting_for_free_node ? 2 : GAMECLIENT.Interpolate(ASCENT_ANIMATION_STEPS[ascent], current_ev) % 8; // Wenn man wartet, stehend zeichnen, es sei denn man wartet mittem auf dem Weg! if(!waiting_for_free_node || pause_walked_gf) CalcFigurRelative(x, y); // Esel LOADER.GetMapImageN(2000 + ((GetCurMoveDir() + 3) % 6) * 8 + ani_step)->Draw(x, y); // Schatten des Esels LOADER.GetMapImageN(2048 + GetCurMoveDir() % 3)->Draw(x, y, 0, 0, 0, 0, 0, 0, COLOR_SHADOW); } return; case JOB_CHARBURNER: { DrawWalking(x, y, "charburner_bobs", 53); } return; default: { DrawWalkingBobJobs(x, y, job_); } return; } }
/// Zeichnen der Figur in sonstigen Arbeitslagen void nofFarmhand::DrawOtherStates(const int x, const int y) { switch(state) { case STATE_WALKTOWORKPOINT: { // Normales Laufen zeichnen DrawWalking(x, y); } break; default: return; } }
/// Draws the charburner while walking /// (overriding standard method of nofFarmhand) void nofCharburner::DrawOtherStates(const int x, const int y) { switch(state) { case STATE_WALKTOWORKPOINT: { // Carry ware? if(!harvest) { if(wt == WT_WOOD) DrawWalking(x, y, "charburner_bobs", 102); else DrawWalking(x, y, "charburner_bobs", 151); } else // Draw normal walking DrawWalking(x, y); } break; default: return; } }
void nofBuildingWorker::Draw(int x, int y) { switch(state) { case STATE_FIGUREWORK: case STATE_HUNTER_CHASING: case STATE_HUNTER_WALKINGTOCADAVER: case STATE_HUNTER_FINDINGSHOOTINGPOINT: { DrawWalking(x, y); } break; case STATE_WORK: case STATE_HUNTER_SHOOTING: case STATE_HUNTER_EVISCERATING: case STATE_CATAPULT_TARGETBUILDING: case STATE_CATAPULT_BACKOFF: DrawWorking(x, y); break; case STATE_CARRYOUTWARE: { unsigned short id = GetCarryID(); // Über 100 bedeutet aus der carrier.bob nehmen, ansonsten aus der jobs.bob! if(id >= 100) DrawWalking(x, y, LOADER.GetBobN("carrier"), GetCarryID() - 100, JOB_CONSTS[job].fat); else DrawWalking(x, y, LOADER.GetBobN("jobs"), GetCarryID(), JOB_CONSTS[job].fat); } break; case STATE_WALKINGHOME: case STATE_ENTERBUILDING: { DrawReturnStates(x, y); } break; default: DrawOtherStates(x, y); break; } }
/// Zeichnen der Figur in sonstigen Arbeitslagen void nofShipWright::DrawOtherStates(const int x, const int y) { switch(state) { case STATE_WALKTOWORKPOINT: { // Schiffsbauer mit Brett zeichnen DrawWalking(x, y, LOADER.GetBobN("jobs"), 92, false); } break; default: return; } }
void noFigure::DrawWalkingBobJobs(int x, int y, unsigned int job) { if ((job == JOB_SCOUT) || ((job >= JOB_PRIVATE) && (job <= JOB_GENERAL))) { DrawWalking(x, y, LOADER.GetBobN("jobs"), JOB_CONSTS[job].jobs_bob_id + NATION_RTTR_TO_S2[gwg->GetPlayer(player).nation] * 6, false); return; } // Wenn wir warten auf ein freies Plätzchen, müssen wir den stehend zeichnen! unsigned ani_step = waiting_for_free_node ? 2 : GAMECLIENT.Interpolate(ASCENT_ANIMATION_STEPS[ascent], current_ev) % 8; // Wenn man wartet, stehend zeichnen, es sei denn man wartet mittem auf dem Weg! if(!waiting_for_free_node || pause_walked_gf) CalcFigurRelative(x, y); LOADER.bob_jobs_cache[gwg->GetPlayer(player).nation][job][GetCurMoveDir()][ani_step].draw(x, y, 0xFFFFFFFF, COLORS[gwg->GetPlayer(player).color]); }
void nofScout_Free::Draw(int x, int y) { //assert(this->GetObjId()!= 8215505); // normales Laufen zeichnen DrawWalking(x, y); }
/// Zeichnen void nofPassiveWorker::Draw(int x, int y) { DrawWalking(x,y); }
void nofTradeLeader::Draw(int x, int y) { DrawWalking(x, y); }
void nofSoldier::DrawSoldierWalking(int x, int y, bool waitingsoldier) { DrawWalking(x, y, LOADER.GetBobN("jobs"), 30 + NATION_RTTR_TO_S2[gwg->GetPlayer(player)->nation] * 6 + job - JOB_PRIVATE, false, waitingsoldier); }