This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Functions | |
void | make_scrap_table (MECH *mech) |
void | make_damage_table (MECH *mech) |
int | is_under_repair (MECH *mech, int i) |
char * | damages_func (MECH *mech) |
void | show_mechs_damage (dbref player, void *data, char *buffer) |
void | tech_fix (dbref player, void *data, char *buffer) |
char* damages_func | ( | MECH * | mech | ) |
Definition at line 261 of file mech.tech.damages.c.
References damage_last, damage_table, ENHCRIT_AMMOB, ENHCRIT_AMMOM, ENHCRIT_BARREL, ENHCRIT_CRYSTAL, ENHCRIT_FOCUS, ENHCRIT_MISC, ENHCRIT_RANGING, FIXARMOR, FIXARMOR_R, FIXINTERNAL, FullAmmo(), GetPartData, is_under_repair(), make_damage_table(), make_scrap_table(), MBUF_SIZE, MechMove, MechType, pos_part_name(), RELOAD, REPAIRG, REPAIRP, REPAIRP_T, SCRAPG, SCRAPP, ShortArmorSectionString(), unit_is_fixable(), and UNLOAD.
Referenced by fun_btdamages().
00262 { 00263 static char buffer[MBUF_SIZE]; 00264 int i; 00265 00266 if(unit_is_fixable(mech)) 00267 make_damage_table(mech); 00268 else 00269 make_scrap_table(mech); 00270 00271 buffer[0] = '\0'; 00272 if(!damage_last) 00273 return ""; 00274 for(i = 0; i < damage_last; i++) { 00275 /* Ok... i think we want: */ 00276 /* repairnum|location|typenum|data|fixing? */ 00277 if(i) 00278 sprintf(buffer, "%s,", buffer); 00279 sprintf(buffer, "%s%d|%s|%d|", buffer, i + 1, 00280 ShortArmorSectionString(MechType(mech), MechMove(mech), 00281 damage_table[i][1]), 00282 (int) damage_table[i][0]); 00283 switch (damage_table[i][0]) { 00284 case REPAIRP: 00285 case REPAIRP_T: 00286 case REPAIRG: 00287 case ENHCRIT_MISC: 00288 case ENHCRIT_FOCUS: 00289 case ENHCRIT_CRYSTAL: 00290 case ENHCRIT_BARREL: 00291 case ENHCRIT_AMMOB: 00292 case ENHCRIT_RANGING: 00293 case ENHCRIT_AMMOM: 00294 case SCRAPP: 00295 case SCRAPG: 00296 sprintf(buffer, "%s%s", buffer, pos_part_name(mech, 00297 damage_table[i][1], 00298 damage_table[i] 00299 [2])); 00300 break; 00301 case RELOAD: 00302 sprintf(buffer, "%s%s:%d", buffer, pos_part_name(mech, 00303 damage_table[i] 00304 [1], 00305 damage_table[i] 00306 [2]), 00307 FullAmmo(mech, damage_table[i][1], 00308 damage_table[i][2]) - GetPartData(mech, 00309 damage_table[i] 00310 [1], 00311 damage_table[i] 00312 [2])); 00313 break; 00314 case UNLOAD: 00315 sprintf(buffer, "%s%s:%d", buffer, pos_part_name(mech, 00316 damage_table[i] 00317 [1], 00318 damage_table[i] 00319 [2]), 00320 GetPartData(mech, damage_table[i][1], damage_table[i] 00321 [2])); 00322 break; 00323 case FIXARMOR: 00324 case FIXARMOR_R: 00325 case FIXINTERNAL: 00326 sprintf(buffer, "%s%d", buffer, damage_table[i][2]); 00327 break; 00328 default: 00329 sprintf(buffer, "%s-", buffer); 00330 } 00331 sprintf(buffer, "%s|%d", buffer, is_under_repair(mech, i)); 00332 } 00333 return buffer; 00334 }
int is_under_repair | ( | MECH * | mech, | |
int | i | |||
) |
Definition at line 222 of file mech.tech.damages.c.
References damage_table, DETACH, ENHCRIT_AMMOB, ENHCRIT_AMMOM, ENHCRIT_BARREL, ENHCRIT_CRYSTAL, ENHCRIT_FOCUS, ENHCRIT_MISC, ENHCRIT_RANGING, FIXARMOR, FIXARMOR_R, FIXINTERNAL, REATTACH, RELOAD, REPAIRG, REPAIRP, REPAIRP_T, REPLACESUIT, RESEAL, SCRAPG, SCRAPP, SomeoneAttaching(), SomeoneFixing(), SomeoneRepairing(), SomeoneReplacingSuit(), SomeoneResealing(), SomeoneScrappingLoc(), SomeoneScrappingPart(), and UNLOAD.
Referenced by damages_func(), and show_mechs_damage().
00223 { 00224 int v1 = damage_table[i][1]; 00225 int v2 = damage_table[i][2]; 00226 00227 switch (damage_table[i][0]) { 00228 case RELOAD: 00229 case REPAIRP: 00230 case REPAIRP_T: 00231 case REPAIRG: 00232 case UNLOAD: 00233 case ENHCRIT_MISC: 00234 case ENHCRIT_FOCUS: 00235 case ENHCRIT_CRYSTAL: 00236 case ENHCRIT_BARREL: 00237 case ENHCRIT_AMMOB: 00238 case ENHCRIT_RANGING: 00239 case ENHCRIT_AMMOM: 00240 return SomeoneRepairing(mech, v1, v2); 00241 case REATTACH: 00242 return SomeoneAttaching(mech, v1); 00243 case RESEAL: 00244 return SomeoneResealing(mech, v1); 00245 case FIXARMOR_R: 00246 return SomeoneFixing(mech, v1 + 8); 00247 case FIXARMOR: 00248 case FIXINTERNAL: 00249 return SomeoneFixing(mech, v1); 00250 case DETACH: 00251 return SomeoneScrappingLoc(mech, v1); 00252 case SCRAPP: 00253 case SCRAPG: 00254 return SomeoneScrappingPart(mech, v1, v2); 00255 case REPLACESUIT: 00256 return SomeoneReplacingSuit(mech, v1); 00257 } 00258 return 0; 00259 }
void make_damage_table | ( | MECH * | mech | ) |
Definition at line 199 of file mech.tech.damages.c.
References CHECK, check_for_damage(), CLASS_MECH, CTORSO, damage_last, GetSectOInt, HEAD, LARM, LLEG, LTORSO, MechType, NUM_SECTIONS, RARM, RLEG, and RTORSO.
Referenced by damages_func(), fun_btnumrepjobs(), show_mechs_damage(), and tech_fix().
00200 { 00201 int i; 00202 00203 damage_last = 0; 00204 if(MechType(mech) == CLASS_MECH) { 00205 if(check_for_damage(mech, CTORSO)) { 00206 if(check_for_damage(mech, LTORSO)) { 00207 CHECK(LARM); 00208 } 00209 if(check_for_damage(mech, RTORSO)) { 00210 CHECK(RARM); 00211 } 00212 CHECK(LLEG); 00213 CHECK(RLEG); 00214 CHECK(HEAD); 00215 } 00216 } else 00217 for(i = 0; i < NUM_SECTIONS; i++) 00218 if(GetSectOInt(mech, i)) 00219 check_for_damage(mech, i); 00220 }
void make_scrap_table | ( | MECH * | mech | ) |
Definition at line 176 of file mech.tech.damages.c.
References check_for_scrappage(), CLASS_MECH, CTORSO, damage_last, GetSectOInt, HEAD, LARM, LLEG, LTORSO, MechType, NUM_SECTIONS, RARM, RLEG, and RTORSO.
Referenced by damages_func(), fun_btnumrepjobs(), show_mechs_damage(), and tech_fix().
00177 { 00178 int i = 4; 00179 00180 damage_last = 0; 00181 if(MechType(mech) == CLASS_MECH) { 00182 if(check_for_scrappage(mech, RARM)) 00183 i -= check_for_scrappage(mech, RTORSO); 00184 if(check_for_scrappage(mech, LARM)) 00185 i -= check_for_scrappage(mech, LTORSO); 00186 i -= check_for_scrappage(mech, RLEG); 00187 i -= check_for_scrappage(mech, LLEG); 00188 00189 if(!i) 00190 check_for_scrappage(mech, CTORSO); 00191 00192 check_for_scrappage(mech, HEAD); 00193 } else 00194 for(i = 0; i < NUM_SECTIONS; i++) 00195 if(GetSectOInt(mech, i)) 00196 check_for_scrappage(mech, i); 00197 }
void show_mechs_damage | ( | dbref | player, | |
void * | data, | |||
char * | buffer | |||
) |
Definition at line 336 of file mech.tech.damages.c.
References addline, c, cent, CLASS_MECH, damage_last, damage_table, DETACH, DOCHECK, ENHCRIT_AMMOB, ENHCRIT_AMMOM, ENHCRIT_BARREL, ENHCRIT_CRYSTAL, ENHCRIT_FOCUS, ENHCRIT_MISC, ENHCRIT_RANGING, FIXARMOR, FIXARMOR_R, FIXINTERNAL, FullAmmo(), GetMechID(), GetPartData, is_under_repair(), KillCoolMenu(), make_damage_table(), make_scrap_table(), MBUF_SIZE, MechMove, MechType, pos_part_name(), REATTACH, RELOAD, repair_need_msgs, REPAIRG, REPAIRP, REPAIRP_T, REPLACESUIT, RESEAL, SCRAPG, SCRAPP, ShortArmorSectionString(), ShowCoolMenu(), TECHCOMMANDD, tprintf(), unit_is_fixable(), UNLOAD, and vsi.
00337 { 00338 MECH *mech = data; 00339 coolmenu *c = NULL; 00340 int i, j, v1, v2; 00341 char buf[MBUF_SIZE]; 00342 char buf2[MBUF_SIZE]; 00343 int isds; 00344 00345 TECHCOMMANDD; 00346 if(unit_is_fixable(mech)) 00347 make_damage_table(mech); 00348 else 00349 make_scrap_table(mech); 00350 DOCHECK(!damage_last && 00351 MechType(mech) == CLASS_MECH, 00352 "The 'mech is in pristine condition!"); 00353 DOCHECK(!damage_last, "It's in pristine condition!"); 00354 addline(); 00355 cent(tprintf("Damage for %s", GetMechID(mech))); 00356 addline(); 00357 for(i = 0; i < damage_last; i++) { 00358 v1 = damage_table[i][1]; 00359 v2 = damage_table[i][2]; 00360 switch (damage_table[i][0]) { 00361 case REATTACH: 00362 case DETACH: 00363 case RESEAL: 00364 case REPLACESUIT: 00365 strcpy(buf, repair_need_msgs[(int) damage_table[i][0]]); 00366 break; 00367 case REPAIRP: 00368 case REPAIRP_T: 00369 case REPAIRG: 00370 case ENHCRIT_MISC: 00371 case ENHCRIT_FOCUS: 00372 case ENHCRIT_CRYSTAL: 00373 case ENHCRIT_BARREL: 00374 case ENHCRIT_AMMOB: 00375 case ENHCRIT_RANGING: 00376 case ENHCRIT_AMMOM: 00377 case SCRAPP: 00378 case SCRAPG: 00379 sprintf(buf, repair_need_msgs[(int) damage_table[i][0]], 00380 pos_part_name(mech, v1, v2)); 00381 break; 00382 case RELOAD: 00383 sprintf(buf, repair_need_msgs[(int) damage_table[i][0]], 00384 pos_part_name(mech, v1, v2), FullAmmo(mech, v1, 00385 v2) - 00386 GetPartData(mech, v1, v2)); 00387 break; 00388 case UNLOAD: 00389 sprintf(buf, repair_need_msgs[(int) damage_table[i][0]], 00390 pos_part_name(mech, v1, v2), GetPartData(mech, v1, v2)); 00391 break; 00392 case FIXARMOR: 00393 case FIXARMOR_R: 00394 case FIXINTERNAL: 00395 sprintf(buf, repair_need_msgs[(int) damage_table[i][0]], 00396 damage_table[i][2]); 00397 break; 00398 } 00399 j = is_under_repair(mech, i); 00400 sprintf(buf2, "%%ch%s%-2d:%s %%cn%s%s", j ? "%cg" : "%cy", i + 1, 00401 ShortArmorSectionString(MechType(mech), MechMove(mech), v1), 00402 buf, j ? " (*)" : ""); 00403 vsi(buf2); 00404 } 00405 addline(); 00406 vsi("(*) / %ch%cgGreen%cn = Job already done. %ch%cyYellow%cn = To be done."); 00407 addline(); 00408 ShowCoolMenu(player, c); 00409 KillCoolMenu(c); 00410 }
void tech_fix | ( | dbref | player, | |
void * | data, | |||
char * | buffer | |||
) |
Definition at line 491 of file mech.tech.damages.c.
References CLASS_MECH, damage_last, DOCHECK, fix_entry(), make_damage_table(), make_scrap_table(), MechType, skipws, TECHCOMMANDC, and unit_is_fixable().
00492 { 00493 MECH *mech = data; 00494 int n = atoi(buffer); 00495 int low, high; 00496 int isds; 00497 00498 skipws(buffer); 00499 TECHCOMMANDC; 00500 if(unit_is_fixable(mech)) 00501 make_damage_table(mech); 00502 else 00503 make_scrap_table(mech); 00504 DOCHECK(!damage_last && 00505 MechType(mech) == CLASS_MECH, 00506 "The 'mech is in pristine condition!"); 00507 DOCHECK(!damage_last, "It's in pristine condition!"); 00508 if(sscanf(buffer, "%d-%d", &low, &high) == 2) { 00509 DOCHECK(low < 1 || low > damage_last, "Invalid low #!"); 00510 DOCHECK(high < 1 || high > damage_last, "Invalid high #!"); 00511 for(n = low; n <= high; n++) 00512 fix_entry(player, mech, n); 00513 return; 00514 } 00515 DOCHECK(n < 1 || n > damage_last, "Invalid #!"); 00516 fix_entry(player, mech, n); 00517 }