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
nofBaker::nofBaker(const unsigned short x, const unsigned short y,const unsigned char player,nobUsual * workplace)
43
: nofWorkman(JOB_BAKER,x,y,player,workplace)
42
nofBaker::nofBaker(const unsigned short x, const unsigned short y, const unsigned char player, nobUsual* workplace)
43
: nofWorkman(JOB_BAKER, x, y, player, workplace)
47
nofBaker::nofBaker(SerializedGameData * sgd, const unsigned obj_id) : nofWorkman(sgd,obj_id)
47
nofBaker::nofBaker(SerializedGameData* sgd, const unsigned obj_id) : nofWorkman(sgd, obj_id)
51
51
void nofBaker::DrawWorking(int x, int y)
53
signed char offsets[NATION_COUNT][2] = { {40,-4},{-16,8},{-5,9},{-8,7},{-16,8} };
54
signed char walkoffsets[NATION_COUNT][8][2] = { //nation, schrit, x-y
55
{ {10,10},{17,12},{24,14},{32,14},{34,9},{36,4},{38,-1},{40,-4} },
56
{ {9,11},{11,13},{7,17},{3,20},{-1,17},{-5,14},{-9,12},{-13,10} },
57
{ {9,9},{11,11},{9,13},{7,15},{4,13},{1,11},{-2,9},{-5,9} },
58
{ {9,11},{11,13},{9,15},{7,17},{4,15},{1,13},{-2,11},{-5,9} },
59
{ {9,11},{11,13},{7,17},{3,20},{-1,17},{-5,14},{-9,12},{-13,10} }
61
signed char walkdirection[NATION_COUNT][6]= {
53
signed char offsets[NATION_COUNT][2] = { {40, -4}, { -16, 8}, { -5, 9}, { -8, 7}, { -16, 8} };
54
signed char walkoffsets[NATION_COUNT][8][2] = //nation, schrit, x-y
56
{ {10, 10}, {17, 12}, {24, 14}, {32, 14}, {34, 9}, {36, 4}, {38, -1}, {40, -4} },
57
{ {9, 11}, {11, 13}, {7, 17}, {3, 20}, { -1, 17}, { -5, 14}, { -9, 12}, { -13, 10} },
58
{ {9, 9}, {11, 11}, {9, 13}, {7, 15}, {4, 13}, {1, 11}, { -2, 9}, { -5, 9} },
59
{ {9, 11}, {11, 13}, {9, 15}, {7, 17}, {4, 15}, {1, 13}, { -2, 11}, { -5, 9} },
60
{ {9, 11}, {11, 13}, {7, 17}, {3, 20}, { -1, 17}, { -5, 14}, { -9, 12}, { -13, 10} }
62
signed char walkdirection[NATION_COUNT][6] =
69
71
unsigned int max_id = 120;
70
unsigned now_id = GAMECLIENT.Interpolate(max_id,current_ev);
71
unsigned char wpNation = workplace->GetNation();
72
unsigned int plColor = GAMECLIENT.GetPlayer(player)->color;
74
//position zum rauslaufen berechnen
75
int walkx = x+walkoffsets[wpNation][now_id%8][0];
76
int walky = y+walkoffsets[wpNation][now_id%8][1];
77
//position zum reinlaufen berechnen
78
int walkx_r = x+walkoffsets[wpNation][7-(now_id%8)][0];
79
int walky_r = y+walkoffsets[wpNation][7-(now_id%8)][1];
82
if(now_id<2){ //hinauslaufen teil 1
83
LOADER.GetNationImageN(wpNation,250+5*BLD_BAKERY+4)->Draw(x,y,0,0,0,0,0,0);
84
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][0]][now_id%8].draw(walkx, walky, COLOR_WHITE, COLORS[plColor]);
72
unsigned now_id = GAMECLIENT.Interpolate(max_id, current_ev);
73
unsigned char wpNation = workplace->GetNation();
74
unsigned int plColor = GAMECLIENT.GetPlayer(player)->color;
76
//position zum rauslaufen berechnen
77
int walkx = x + walkoffsets[wpNation][now_id % 8][0];
78
int walky = y + walkoffsets[wpNation][now_id % 8][1];
79
//position zum reinlaufen berechnen
80
int walkx_r = x + walkoffsets[wpNation][7 - (now_id % 8)][0];
81
int walky_r = y + walkoffsets[wpNation][7 - (now_id % 8)][1];
84
if(now_id < 2) //hinauslaufen teil 1
86
LOADER.GetNationImageN(wpNation, 250 + 5 * BLD_BAKERY + 4)->Draw(x, y, 0, 0, 0, 0, 0, 0);
87
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][0]][now_id % 8].draw(walkx, walky, COLOR_WHITE, COLORS[plColor]);
85
88
// LOADER.GetBobN("jobs")->Draw(17,walkdirection[wpNation][0],true,now_id%8,walkx,walky,COLORS[plColor]);
87
if((now_id>=2) && (now_id<4) ){ //hinauslaufen teil 2
88
LOADER.GetNationImageN(wpNation,250+5*BLD_BAKERY+4)->Draw(x,y,0,0,0,0,0,0);
89
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][1]][now_id%8].draw(walkx, walky, COLOR_WHITE, COLORS[plColor]);
90
if((now_id >= 2) && (now_id < 4) ) //hinauslaufen teil 2
92
LOADER.GetNationImageN(wpNation, 250 + 5 * BLD_BAKERY + 4)->Draw(x, y, 0, 0, 0, 0, 0, 0);
93
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][1]][now_id % 8].draw(walkx, walky, COLOR_WHITE, COLORS[plColor]);
90
94
// LOADER.GetBobN("jobs")->Draw(17,walkdirection[wpNation][1],true,now_id%8,walkx,walky,COLORS[plColor]);
92
if((now_id>=4) && (now_id<8) ){ //hinauslaufen teil 3
93
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][2]][now_id%8].draw(walkx, walky, COLOR_WHITE, COLORS[plColor]);
96
if((now_id >= 4) && (now_id < 8) ) //hinauslaufen teil 3
98
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][2]][now_id % 8].draw(walkx, walky, COLOR_WHITE, COLORS[plColor]);
94
99
// LOADER.GetBobN("jobs")->Draw(17,walkdirection[wpNation][2],true,now_id%8,walkx,walky,COLORS[plColor]);
96
if((now_id>=8) && (now_id<16) ){ //brot in den ofen schieben
97
LOADER.GetImageN("rom_bobs", 182+(now_id%8))
98
->Draw(x+offsets[wpNation][0],y+offsets[wpNation][1],0,0,0,0,0,0,COLOR_WHITE, COLORS[plColor]);
101
if((now_id >= 8) && (now_id < 16) ) //brot in den ofen schieben
103
LOADER.GetImageN("rom_bobs", 182 + (now_id % 8))
104
->Draw(x + offsets[wpNation][0], y + offsets[wpNation][1], 0, 0, 0, 0, 0, 0, COLOR_WHITE, COLORS[plColor]);
100
// "Brot-rein/raus"-Sound
103
SoundManager::inst().PlayNOSound(68,this,now_id);
106
// "Brot-rein/raus"-Sound
107
if((now_id % 8) == 4)
109
SoundManager::inst().PlayNOSound(68, this, now_id);
107
if((now_id>=16) && (now_id<max_id-16) ){ //warten
113
if((now_id >= 16) && (now_id < max_id - 16) ) //warten
108
115
LOADER.GetImageN("rom_bobs", 189)
109
->Draw(x+offsets[wpNation][0],y+offsets[wpNation][1],0,0,0,0,0,0,COLOR_WHITE, COLORS[plColor]);
116
->Draw(x + offsets[wpNation][0], y + offsets[wpNation][1], 0, 0, 0, 0, 0, 0, COLOR_WHITE, COLORS[plColor]);
111
if((now_id>=max_id-16) && (now_id<max_id-8) ){ //brot aus dem ofen holen
112
LOADER.GetImageN("rom_bobs", 182+7-(now_id%8))
113
->Draw(x+offsets[wpNation][0],y+offsets[wpNation][1],0,0,0,0,0,0,COLOR_WHITE, COLORS[plColor]);
118
if((now_id >= max_id - 16) && (now_id < max_id - 8) ) //brot aus dem ofen holen
120
LOADER.GetImageN("rom_bobs", 182 + 7 - (now_id % 8))
121
->Draw(x + offsets[wpNation][0], y + offsets[wpNation][1], 0, 0, 0, 0, 0, 0, COLOR_WHITE, COLORS[plColor]);
115
// "Brot-rein/raus"-Sound
118
SoundManager::inst().PlayNOSound(68,this,now_id);
123
// "Brot-rein/raus"-Sound
124
if((now_id % 8) == 4)
126
SoundManager::inst().PlayNOSound(68, this, now_id);
122
if((now_id>=max_id-8) && (now_id<max_id-4) ){ //reingehn teil 1
123
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][3]][now_id%8].draw(walkx_r, walky_r, COLOR_WHITE, COLORS[plColor]);
130
if((now_id >= max_id - 8) && (now_id < max_id - 4) ) //reingehn teil 1
132
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][3]][now_id % 8].draw(walkx_r, walky_r, COLOR_WHITE, COLORS[plColor]);
124
133
// LOADER.GetBobN("jobs")->Draw(17,walkdirection[wpNation][3],true,now_id%8,walkx_r,walky_r,COLORS[plColor]);
126
if((now_id>=max_id-4) && (now_id<max_id-2) ){ //reingehn teil 1
127
LOADER.LOADER.GetNationImageN(wpNation,250+5*BLD_BAKERY+4)->Draw(x,y,0,0,0,0,0,0);
128
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][4]][now_id%8].draw(walkx_r, walky_r, COLOR_WHITE, COLORS[plColor]);
135
if((now_id >= max_id - 4) && (now_id < max_id - 2) ) //reingehn teil 1
137
LOADER.LOADER.GetNationImageN(wpNation, 250 + 5 * BLD_BAKERY + 4)->Draw(x, y, 0, 0, 0, 0, 0, 0);
138
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][4]][now_id % 8].draw(walkx_r, walky_r, COLOR_WHITE, COLORS[plColor]);
129
139
// LOADER.GetBobN("jobs")->Draw(17,walkdirection[wpNation][4],true,now_id%8,walkx_r,walky_r,COLORS[plColor]);
131
if((now_id>=max_id-2) && (now_id<max_id) ){ //reingehn teil 2
132
LOADER.LOADER.GetNationImageN(wpNation,250+5*BLD_BAKERY+4)->Draw(x,y,0,0,0,0,0,0);
133
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][5]][now_id%8].draw(walkx_r, walky_r, COLOR_WHITE, COLORS[plColor]);
141
if((now_id >= max_id - 2) && (now_id < max_id) ) //reingehn teil 2
143
LOADER.LOADER.GetNationImageN(wpNation, 250 + 5 * BLD_BAKERY + 4)->Draw(x, y, 0, 0, 0, 0, 0, 0);
144
Loader::bob_jobs_cache[wpNation][JOB_BAKER][walkdirection[wpNation][5]][now_id % 8].draw(walkx_r, walky_r, COLOR_WHITE, COLORS[plColor]);
134
145
// LOADER.GetBobN("jobs")->Draw(17,walkdirection[wpNation][5],true,now_id%8,walkx_r,walky_r,COLORS[plColor]);