34
34
///////////////////////////////////////////////////////////////////////////////
35
35
// Makros / Defines
36
36
#if defined _WIN32 && defined _DEBUG && defined _MSC_VER
37
#define new new(_NORMAL_BLOCK, THIS_FILE, __LINE__)
39
static char THIS_FILE[] = __FILE__;
37
#define new new(_NORMAL_BLOCK, THIS_FILE, __LINE__)
39
static char THIS_FILE[] = __FILE__;
42
nofStonemason::nofStonemason(const unsigned short x, const unsigned short y,const unsigned char player,nobUsual * workplace)
43
: nofFarmhand(JOB_STONEMASON,x,y,player,workplace)
42
nofStonemason::nofStonemason(const unsigned short x, const unsigned short y, const unsigned char player, nobUsual* workplace)
43
: nofFarmhand(JOB_STONEMASON, x, y, player, workplace)
47
nofStonemason::nofStonemason(SerializedGameData * sgd, const unsigned obj_id) : nofFarmhand(sgd,obj_id)
47
nofStonemason::nofStonemason(SerializedGameData* sgd, const unsigned obj_id) : nofFarmhand(sgd, obj_id)
51
51
/// Malt den Arbeiter beim Arbeiten
52
void nofStonemason::DrawWorking(int x,int y)
52
void nofStonemason::DrawWorking(int x, int y)
57
LOADER.GetImageN("rom_bobs", 40+(now_id=GAMECLIENT.Interpolate(64,current_ev))%8)
58
->Draw(x,y,0,0,0,0,0,0, COLOR_WHITE, COLORS[gwg->GetPlayer(player)->color]);
62
SoundManager::inst().PlayNOSound(56,this,now_id);
57
LOADER.GetImageN("rom_bobs", 40 + (now_id = GAMECLIENT.Interpolate(64, current_ev)) % 8)
58
->Draw(x, y, 0, 0, 0, 0, 0, 0, COLOR_WHITE, COLORS[gwg->GetPlayer(player)->color]);
62
SoundManager::inst().PlayNOSound(56, this, now_id);
68
68
/// Fragt die abgeleitete Klasse um die ID in JOBS.BOB, wenn der Beruf Waren raustr�gt (bzw rein)
69
69
unsigned short nofStonemason::GetCarryID() const
74
74
/// Abgeleitete Klasse informieren, wenn sie anf�ngt zu arbeiten (Vorbereitungen)
79
79
/// Abgeleitete Klasse informieren, wenn fertig ist mit Arbeiten
80
80
void nofStonemason::WorkFinished()
82
// Stein abhauen (wenn er nur noch ganz klein ist, dann wird er von der Landkarte getilgt)
83
if(gwg->GetSpecObj<noGranite>(x,y)->IsSmall())
85
// Granitkl�tzchen l�schen
86
gwg->GetSpecObj<noGranite>(x,y)->Destroy();
87
delete gwg->GetSpecObj<noGranite>(x,y);
90
// Minimap Bescheid geben (Granitgl�tzchen muss weg)
91
gwg->GetGameInterface()->GI_UpdateMinimap(x,y);
93
// Drumherum BQ neu berechnen, da diese sich ja jetzt h�tten �ndern k�nnen
94
gwg->RecalcBQAroundPoint(x,y);
97
// ansonsten wird er um 1 kleiner
98
gwg->GetSpecObj<noGranite>(x,y)->Hew();
100
// Stein in die Hand nehmen
82
// Stein abhauen (wenn er nur noch ganz klein ist, dann wird er von der Landkarte getilgt)
83
if(gwg->GetSpecObj<noGranite>(x, y)->IsSmall())
85
// Granitkl�tzchen l�schen
86
gwg->GetSpecObj<noGranite>(x, y)->Destroy();
87
delete gwg->GetSpecObj<noGranite>(x, y);
90
// Minimap Bescheid geben (Granitgl�tzchen muss weg)
91
gwg->GetGameInterface()->GI_UpdateMinimap(x, y);
93
// Drumherum BQ neu berechnen, da diese sich ja jetzt h�tten �ndern k�nnen
94
gwg->RecalcBQAroundPoint(x, y);
97
// ansonsten wird er um 1 kleiner
98
gwg->GetSpecObj<noGranite>(x, y)->Hew();
100
// Stein in die Hand nehmen
104
104
/// Returns the quality of this working point or determines if the worker can work here at all
105
105
nofFarmhand::PointQuality nofStonemason::GetPointQuality(const MapCoord x, const MapCoord y)
107
// An dieser Position muss es nur Stein geben
108
return ((gwg->GetNO(x,y)->GetType() == NOP_GRANITE) ? PQ_CLASS1 : PQ_NOTPOSSIBLE);
107
// An dieser Position muss es nur Stein geben
108
return ((gwg->GetNO(x, y)->GetType() == NOP_GRANITE) ? PQ_CLASS1 : PQ_NOTPOSSIBLE);