diff options
author | celestar <celestar@openttd.org> | 2004-11-13 15:15:41 +0000 |
---|---|---|
committer | celestar <celestar@openttd.org> | 2004-11-13 15:15:41 +0000 |
commit | b8327e0457a8f40d98a8bd5a6889166d4a4afd02 (patch) | |
tree | 0c2c138ef5956ca627597a893d78d83cf457ec1c | |
parent | 6db750373a806f77aa096e6eb5665d7ddfb8de6b (diff) | |
download | openttd-b8327e0457a8f40d98a8bd5a6889166d4a4afd02.tar.xz |
(svn r562) newgrf: Merge most of the road vehicle info to a single
road_vehicle_info table, like it already is for trains and ships. Needed
for GRF custom override support. (pasky)
-rw-r--r-- | ai_new.c | 13 | ||||
-rw-r--r-- | engine.h | 14 | ||||
-rw-r--r-- | roadveh_cmd.c | 130 | ||||
-rw-r--r-- | roadveh_gui.c | 18 | ||||
-rw-r--r-- | table/engines.h | 100 |
5 files changed, 136 insertions, 139 deletions
@@ -516,9 +516,6 @@ static bool AiNew_CheckVehicleStation(Player *p, Station *st) { return true; } -extern const byte _roadveh_speed[88]; -extern const byte _roadveh_capacity[88]; - // This function finds a good spot for a station static void AiNew_State_FindStation(Player *p) { TileIndex tile; @@ -570,7 +567,7 @@ static void AiNew_State_FindStation(Player *p) { if (p->ainew.tbt == AI_BUS && (FACIL_BUS_STOP & st->facilities) == FACIL_BUS_STOP) { if (st->town == town) { // Check how much cargo there is left in the station - if ((st->goods[p->ainew.cargo].waiting_acceptance & 0xFFF) > _roadveh_capacity[i-ROAD_ENGINES_INDEX] * AI_STATION_REUSE_MULTIPLER) { + if ((st->goods[p->ainew.cargo].waiting_acceptance & 0xFFF) > road_vehicle_info(i)->capacity * AI_STATION_REUSE_MULTIPLER) { if (AiNew_CheckVehicleStation(p, st)) { // We did found a station that was good enough! new_tile = st->xy; @@ -829,8 +826,7 @@ static int AiNew_HowManyVehicles(Player *p) { // Passenger run.. how long is the route? length = p->ainew.path_info.route_length; // Calculating tiles a day a vehicle moves is not easy.. this is how it must be done! - // ROAD_ENGINES_INDEX is because the first roadveh engine is ROAD_ENGINES_INDEX, and _roadveh_speed starts from 0 - tiles_a_day = _roadveh_speed[i-ROAD_ENGINES_INDEX] * DAY_TICKS / 256 / 16; + tiles_a_day = road_vehicle_info(i)->max_speed * DAY_TICKS / 256 / 16; // We want a vehicle in a station once a month at least, so, calculate it! // (the * 2 is because we have 2 stations ;)) amount = ((int)(((float)length / (float)tiles_a_day / 30 * 2))) * 2; @@ -845,8 +841,7 @@ static int AiNew_HowManyVehicles(Player *p) { // Passenger run.. how long is the route? length = p->ainew.path_info.route_length; // Calculating tiles a day a vehicle moves is not easy.. this is how it must be done! - // ROAD_ENGINES_INDEX is because the first roadveh engine is ROAD_ENGINES_INDEX, and _roadveh_speed starts from 0 - tiles_a_day = _roadveh_speed[i-ROAD_ENGINES_INDEX] * DAY_TICKS / 256 / 16; + tiles_a_day = road_vehicle_info(i)->max_speed * DAY_TICKS / 256 / 16; if (p->ainew.from_deliver) max_cargo = DEREF_INDUSTRY(p->ainew.from_ic)->total_production[0]; else @@ -857,7 +852,7 @@ static int AiNew_HowManyVehicles(Player *p) { // We want all the cargo to be gone in a month.. so, we know the cargo it delivers // we know what the vehicle takes with him, and we know the time it takes him // to get back here.. now let's do some math! - amount = (int)(((float)length / (float)tiles_a_day / 30 * 2) * ((float)max_cargo / (float)_roadveh_capacity[i-ROAD_ENGINES_INDEX])); + amount = (int)(((float)length / (float)tiles_a_day / 30 * 2) * ((float)max_cargo / (float)road_vehicle_info(i)->capacity)); amount += 1; return amount; } else { @@ -14,6 +14,16 @@ typedef struct RailVehicleInfo { byte cargo_type; } RailVehicleInfo; +typedef struct RoadVehicleInfo { + byte image_index; + byte base_cost; + uint16 max_speed; + byte cargo_type; + uint16 capacity; + byte running_cost; + byte sfx; +} RoadVehicleInfo; + typedef struct ShipVehicleInfo { byte image_index; byte base_cost; @@ -133,6 +143,10 @@ VARDEF StringID _engine_name_strings[TOTAL_NUM_ENGINES]; extern EngineInfo _engine_info[TOTAL_NUM_ENGINES]; extern RailVehicleInfo _rail_vehicle_info[]; +#define road_vehicle_info(e) (&_road_vehicle_info[e - ROAD_ENGINES_INDEX]) +extern RoadVehicleInfo _road_vehicle_info[]; +/* TODO: Change this to return a pointer instead, for the sake of consistency. + * --pasky */ #define ship_vehicle_info(e) _ship_vehicle_info[e - SHIP_ENGINES_INDEX] extern ShipVehicleInfo _ship_vehicle_info[]; diff --git a/roadveh_cmd.c b/roadveh_cmd.c index 30e897897..f4a66bcd9 100644 --- a/roadveh_cmd.c +++ b/roadveh_cmd.c @@ -23,7 +23,6 @@ static const uint16 _roadveh_images[63] = { 0xC5C, 0xC64, 0xC6C, 0xC74, 0xC84, 0xC94, 0xCA4 }; - static const uint16 _roadveh_full_adder[63] = { 0, 88, 0, 0, 0, 0, 48, 48, 48, 48, 0, 0, 64, 64, 0, 16, @@ -35,107 +34,6 @@ static const uint16 _roadveh_full_adder[63] = { 0, 0, 0, 8, 8, 8, 8 }; -static const byte _roadveh_spritenum[88] = { - 0, 17, 17, 34, 51, 51, 51, 1, - 18, 35, 2, 19, 36, 57, 57, 57, - 3, 20, 37, 4, 21, 38, 5, 22, - - 39, 6, 23, 40, 7, 24, 41, 8, - 25, 42, 9, 26, 43, 10, 27, 44, - 11, 28, 45, 12, 29, 46, 13, 30, - 47, 14, 31, 48, 15, 32, 49, 16, - - 33, 50, 52, 52, 52, 53, 53, 53, - 54, 54, 54, 55, 55, 55, 56, 56, - 56, 58, 58, 58, 59, 59, 59, 60, - 60, 60, 61, 61, 61, 62, 62, 62, -}; - -const byte _roadveh_speed[88] = { - 112, 176, 224, 255, 112, 192, 240, 96, - 176, 224, 96, 176, 224, 96, 176, 224, - 96, 176, 224, 96, 176, 224, 96, 176, - 224, 96, 176, 224, 96, 176, 224, 96, - 176, 224, 96, 176, 224, 96, 176, 224, - 96, 176, 224, 96, 176, 224, 96, 176, - 224, 96, 176, 224, 96, 176, 224, 96, - 176, 224, 96, 176, 224, 96, 176, 224, - 96, 176, 224, 96, 176, 224, 96, 176, - 224, 96, 176, 224, 96, 176, 224, 96, - 176, 224, 96, 176, 224, 96, 176, 224, -}; - - -const byte _roadveh_runningcost[88] = { - 91, 128, 178, 240, 91, 171, 240, 90, - 168, 240, 90, 168, 240, 90, 168, 240, - 90, 168, 240, 90, 168, 240, 90, 168, - 240, 90, 168, 240, 90, 168, 240, 90, - 168, 240, 90, 168, 240, 90, 168, 240, - 90, 168, 240, 90, 168, 240, 90, 168, - 240, 90, 168, 240, 90, 168, 240, 90, - 168, 240, 90, 168, 240, 90, 168, 240, - 90, 168, 240, 90, 168, 240, 90, 168, - 240, 90, 168, 240, 90, 168, 240, 90, - 168, 240, 90, 168, 240, 90, 168, 240, -}; - - -const byte _roadveh_capacity[88] = { - 31, 35, 37, 40, 30, 35, 38, 20, - 25, 28, 22, 28, 30, 22, 28, 30, - 21, 25, 27, 14, 16, 18, 14, 16, - 18, 20, 25, 30, 20, 22, 24, 22, - 25, 27, 15, 18, 20, 12, 15, 16, - 17, 20, 22, 15, 18, 20, 22, 25, - 27, 21, 25, 27, 18, 20, 23, 17, - 19, 22, 17, 19, 22, 17, 19, 22, - 17, 19, 22, 17, 19, 22, 17, 19, - 22, 17, 19, 22, 17, 19, 22, 17, - 19, 22, 17, 19, 22, 17, 19, 22, -}; - -const byte _roadveh_cargo_type[88] = { - 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 2, 2, 2, 2, 2, 2, - 3, 3, 3, 4, 4, 4, 5, 5, - 5, 6, 6, 6, 7, 7, 7, 8, - 8, 8, 9, 9, 9,10,10,10, - 11,11,11, 9, 9, 9, 8, 8, - 8, 9, 9, 9, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 7, 7, 7, - 8, 8, 8, 6, 6, 6, 3, 3, - 3, 5, 5, 5, 4, 4, 4,11, - 11,11,10,10,10, 9, 9, 9, -}; - -const byte _roadveh_price[88] = { - 120,140,150,160,120,140,160,108, - 128,138,115,135,145,115,135,145, - 110,140,150,105,130,140,107,130, - 140,114,133,143,118,137,147,121, - 140,150,112,135,145,145,170,180, - 112,134,144,112,135,145,121,140, - 150,111,141,151,118,148,158,117, - 147,157,117,147,157,117,147,157, - 117,147,157,117,147,157,117,147, - 157,117,147,157,117,147,157,117, - 147,157,117,147,157,117,147,157, -}; - -static const byte _road_engine_sounds[88] = { - 23, 26, 25, 25, 60, 62, 60, 23, - 23, 23, 23, 23, 23, 62, 60, 62, - 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 63, 64, 63, 64, 63, 64, - 63, 64, 63, 64, 63, 64, 63, 64, - 63, 64, 63, 64, 63, 64, 63, 64, - 63, 64, 63, 64, 63, 64, 63, 64, -}; static const uint16 _road_veh_fp_ax_or[4] = { 0x100,0x200,1,2, @@ -174,26 +72,24 @@ int GetRoadVehImage(Vehicle *v, byte direction) void DrawRoadVehEngine(int x, int y, int engine, uint32 image_ormod) { - DrawSprite((6 + _roadveh_images[_roadveh_spritenum[engine - ROAD_ENGINES_INDEX]]) | image_ormod, x, y); + DrawSprite((6 + _roadveh_images[road_vehicle_info(engine)->image_index]) | image_ormod, x, y); } void DrawRoadVehEngineInfo(int engine, int x, int y, int maxw) { - engine -= ROAD_ENGINES_INDEX; - - SET_DPARAM32(0, ((_price.roadveh_base >> 3) * _roadveh_price[engine]) >> 5); - SET_DPARAM16(1, _roadveh_speed[engine] * 10 >> 5); - SET_DPARAM32(2, _roadveh_runningcost[engine] * _price.roadveh_running >> 8); + SET_DPARAM32(0, ((_price.roadveh_base >> 3) * road_vehicle_info(engine)->base_cost) >> 5); + SET_DPARAM16(1, road_vehicle_info(engine)->max_speed * 10 >> 5); + SET_DPARAM32(2, road_vehicle_info(engine)->running_cost * _price.roadveh_running >> 8); - SET_DPARAM16(4, _roadveh_capacity[engine]); - SET_DPARAM16(3, _cargoc.names_long_p[_roadveh_cargo_type[engine]]); + SET_DPARAM16(4, road_vehicle_info(engine)->capacity); + SET_DPARAM16(3, _cargoc.names_long_p[road_vehicle_info(engine)->cargo_type]); DrawStringMultiCenter(x, y, STR_902A_COST_SPEED_RUNNING_COST, maxw); } static int32 EstimateRoadVehCost(byte engine_type) { - return ((_price.roadveh_base >> 3) * _roadveh_price[engine_type - ROAD_ENGINES_INDEX]) >> 5; + return ((_price.roadveh_base >> 3) * road_vehicle_info(engine_type)->base_cost) >> 5; } int32 CmdBuildRoadVeh(int x, int y, uint32 flags, uint32 p1, uint32 p2) @@ -235,9 +131,9 @@ int32 CmdBuildRoadVeh(int x, int y, uint32 flags, uint32 p1, uint32 p2) v->u.road.state = 254; v->vehstatus = VS_HIDDEN|VS_STOPPED|VS_DEFPAL; - v->spritenum = _roadveh_spritenum[p1 - ROAD_ENGINES_INDEX]; - v->cargo_type = _roadveh_cargo_type[p1 - ROAD_ENGINES_INDEX]; - v->cargo_cap = _roadveh_capacity[p1 - ROAD_ENGINES_INDEX]; + v->spritenum = road_vehicle_info(p1)->image_index; + v->cargo_type = road_vehicle_info(p1)->cargo_type; + v->cargo_cap = road_vehicle_info(p1)->capacity; // v->cargo_count = 0; v->value = cost; // v->day_counter = 0; @@ -249,7 +145,7 @@ int32 CmdBuildRoadVeh(int x, int y, uint32 flags, uint32 p1, uint32 p2) // v->u.road.overtaking = 0; v->last_station_visited = 0xFF; - v->max_speed = _roadveh_speed[p1 - ROAD_ENGINES_INDEX]; + v->max_speed = road_vehicle_info(p1)->max_speed; v->engine_type = (byte)p1; e = &_engines[p1]; @@ -725,7 +621,7 @@ static void HandleRoadVehLoading(Vehicle *v) static void StartRoadVehSound(Vehicle *v) { - int s = _road_engine_sounds[v->engine_type - ROAD_ENGINES_INDEX]; + int s = road_vehicle_info(v->engine_type)->sfx; if (s == 23 && (v->tick_counter&3) == 0) s++; SndPlayVehicleFx(s, v); } @@ -1569,7 +1465,7 @@ void OnNewDay_RoadVeh(Vehicle *v) if (v->vehstatus & VS_STOPPED) return; - cost = _roadveh_runningcost[v->engine_type - ROAD_ENGINES_INDEX] * _price.roadveh_running / 364; + cost = road_vehicle_info(v->engine_type)->running_cost * _price.roadveh_running / 364; v->profit_this_year -= cost >> 8; diff --git a/roadveh_gui.c b/roadveh_gui.c index 9c55e435f..e240cf01e 100644 --- a/roadveh_gui.c +++ b/roadveh_gui.c @@ -11,12 +11,6 @@ #include "player.h" #include "engine.h" -extern const byte _roadveh_price[88]; -extern const byte _roadveh_speed[88]; -extern const byte _roadveh_runningcost[88]; -extern const byte _roadveh_capacity[88]; -extern const byte _roadveh_cargo_type[88]; - static void DrawRoadVehImage(Vehicle *v, int x, int y, VehicleID selection) { int image = GetRoadVehImage(v, 6); @@ -60,7 +54,7 @@ static void RoadVehDetailsWndProc(Window *w, WindowEvent *e) } SET_DPARAM16(0, str); SET_DPARAM16(2, v->max_age / 366); - SET_DPARAM32(3, _roadveh_runningcost[v->engine_type - ROAD_ENGINES_INDEX] * _price.roadveh_running >> 8); + SET_DPARAM32(3, road_vehicle_info(v->engine_type)->running_cost * _price.roadveh_running >> 8); DrawString(2, 15, STR_900D_AGE_RUNNING_COST_YR, 0); } @@ -356,11 +350,11 @@ static void DrawNewRoadVehWindow(Window *w) if (selected_id != -1) { Engine *e; - SET_DPARAM32(0, _roadveh_price[selected_id - ROAD_ENGINES_INDEX] * (_price.roadveh_base>>3)>>5); - SET_DPARAM16(1, _roadveh_speed[selected_id - ROAD_ENGINES_INDEX] * 10 >> 5); - SET_DPARAM32(2, _roadveh_runningcost[selected_id - ROAD_ENGINES_INDEX] * _price.roadveh_running >> 8); - SET_DPARAM16(4, _roadveh_capacity[selected_id - ROAD_ENGINES_INDEX]); - SET_DPARAM16(3, _cargoc.names_long_p[_roadveh_cargo_type[selected_id - ROAD_ENGINES_INDEX]]); + SET_DPARAM32(0, road_vehicle_info(selected_id)->base_cost * (_price.roadveh_base>>3)>>5); + SET_DPARAM16(1, road_vehicle_info(selected_id)->max_speed * 10 >> 5); + SET_DPARAM32(2, road_vehicle_info(selected_id)->running_cost * _price.roadveh_running >> 8); + SET_DPARAM16(4, road_vehicle_info(selected_id)->capacity); + SET_DPARAM16(3, _cargoc.names_long_p[road_vehicle_info(selected_id)->cargo_type]); e = &_engines[selected_id]; SET_DPARAM16(6, e->lifelength); diff --git a/table/engines.h b/table/engines.h index bbfa266dd..07f7cc88b 100644 --- a/table/engines.h +++ b/table/engines.h @@ -385,12 +385,110 @@ RailVehicleInfo _rail_vehicle_info[] = { }; +RoadVehicleInfo _road_vehicle_info[] = { + /* FIXME: Cargo type constant may not be appropriate for the + * vehicle's climate. --pasky */ + // image_index cargo_type cargo_amount + // | base_cost | | running_cost + // | | max_speed | | sfx + // | | | | | | | + { 0, 120, 112, CT_PASSENGERS, 31, 91, 23 }, /* 0 */ + { 17, 140, 176, CT_PASSENGERS, 35, 128, 26 }, /* 1 */ + { 17, 150, 224, CT_PASSENGERS, 37, 178, 25 }, /* 2 */ + { 34, 160, 255, CT_PASSENGERS, 40, 240, 25 }, /* 3 */ + { 51, 120, 112, CT_PASSENGERS, 30, 91, 60 }, /* 4 */ + { 51, 140, 192, CT_PASSENGERS, 35, 171, 62 }, /* 5 */ + { 51, 160, 240, CT_PASSENGERS, 38, 240, 60 }, /* 6 */ + { 1, 108, 96, CT_COAL, 20, 90, 23 }, /* 7 */ + { 18, 128, 176, CT_COAL, 25, 168, 23 }, /* 8 */ + { 35, 138, 224, CT_COAL, 28, 240, 23 }, /* 9 */ + { 2, 115, 96, CT_MAIL, 22, 90, 23 }, /* 10 */ + { 19, 135, 176, CT_MAIL, 28, 168, 23 }, /* 11 */ + { 36, 145, 224, CT_MAIL, 30, 240, 23 }, /* 12 */ + { 57, 115, 96, CT_MAIL, 22, 90, 62 }, /* 13 */ + { 57, 135, 176, CT_MAIL, 28, 168, 60 }, /* 14 */ + { 57, 145, 224, CT_MAIL, 30, 240, 62 }, /* 15 */ + { 3, 110, 96, CT_OIL, 21, 90, 23 }, /* 16 */ + { 20, 140, 176, CT_OIL, 25, 168, 23 }, /* 17 */ + { 37, 150, 224, CT_OIL, 27, 240, 23 }, /* 18 */ + { 4, 105, 96, CT_LIVESTOCK, 14, 90, 23 }, /* 19 */ + { 21, 130, 176, CT_LIVESTOCK, 16, 168, 23 }, /* 20 */ + { 38, 140, 224, CT_LIVESTOCK, 18, 240, 23 }, /* 21 */ + { 5, 107, 96, CT_GOODS, 14, 90, 23 }, /* 22 */ + { 22, 130, 176, CT_GOODS, 16, 168, 23 }, /* 23 */ + { 39, 140, 224, CT_GOODS, 18, 240, 23 }, /* 24 */ + { 6, 114, 96, CT_GRAIN, 20, 90, 23 }, /* 25 */ + { 23, 133, 176, CT_GRAIN, 25, 168, 23 }, /* 26 */ + { 40, 143, 224, CT_GRAIN, 30, 240, 23 }, /* 27 */ + { 7, 118, 96, CT_WOOD, 20, 90, 23 }, /* 28 */ + { 24, 137, 176, CT_WOOD, 22, 168, 23 }, /* 29 */ + { 41, 147, 224, CT_WOOD, 24, 240, 23 }, /* 30 */ + { 8, 121, 96, CT_IRON_ORE, 22, 90, 23 }, /* 31 */ + { 25, 140, 176, CT_IRON_ORE, 25, 168, 23 }, /* 32 */ + { 42, 150, 224, CT_IRON_ORE, 27, 240, 23 }, /* 33 */ + { 9, 112, 96, CT_STEEL, 15, 90, 23 }, /* 34 */ + { 26, 135, 176, CT_STEEL, 18, 168, 23 }, /* 35 */ + { 43, 145, 224, CT_STEEL, 20, 240, 23 }, /* 36 */ + { 10, 145, 96, CT_VALUABLES, 12, 90, 23 }, /* 37 */ + { 27, 170, 176, CT_VALUABLES, 15, 168, 23 }, /* 38 */ + { 44, 180, 224, CT_VALUABLES, 16, 240, 23 }, /* 39 */ + { 11, 112, 96, CT_FOOD, 17, 90, 23 }, /* 40 */ + { 28, 134, 176, CT_FOOD, 20, 168, 23 }, /* 41 */ + { 45, 144, 224, CT_FOOD, 22, 240, 23 }, /* 42 */ + { 12, 112, 96, CT_STEEL, 15, 90, 23 }, /* 43 */ + { 29, 135, 176, CT_STEEL, 18, 168, 23 }, /* 44 */ + { 46, 145, 224, CT_STEEL, 20, 240, 23 }, /* 45 */ + { 13, 121, 96, CT_IRON_ORE, 22, 90, 23 }, /* 46 */ + { 30, 140, 176, CT_IRON_ORE, 25, 168, 23 }, /* 47 */ + { 47, 150, 224, CT_IRON_ORE, 27, 240, 23 }, /* 48 */ + { 14, 111, 96, CT_STEEL, 21, 90, 23 }, /* 49 */ + { 31, 141, 176, CT_STEEL, 25, 168, 23 }, /* 50 */ + { 48, 151, 224, CT_STEEL, 27, 240, 23 }, /* 51 */ + { 15, 118, 96, CT_LIVESTOCK, 18, 90, 23 }, /* 52 */ + { 32, 148, 176, CT_LIVESTOCK, 20, 168, 23 }, /* 53 */ + { 49, 158, 224, CT_LIVESTOCK, 23, 240, 23 }, /* 54 */ + { 16, 117, 96, CT_COAL, 17, 90, 23 }, /* 55 */ + { 33, 147, 176, CT_COAL, 19, 168, 23 }, /* 56 */ + { 50, 157, 224, CT_COAL, 22, 240, 23 }, /* 57 */ + { 52, 117, 96, CT_COAL, 17, 90, 63 }, /* 58 */ + { 52, 147, 176, CT_COAL, 19, 168, 64 }, /* 59 */ + { 52, 157, 224, CT_COAL, 22, 240, 63 }, /* 60 */ + { 53, 117, 96, CT_WOOD, 17, 90, 64 }, /* 61 */ + { 53, 147, 176, CT_WOOD, 19, 168, 63 }, /* 62 */ + { 53, 157, 224, CT_WOOD, 22, 240, 64 }, /* 63 */ + { 54, 117, 96, CT_IRON_ORE, 17, 90, 63 }, /* 64 */ + { 54, 147, 176, CT_IRON_ORE, 19, 168, 64 }, /* 65 */ + { 54, 157, 224, CT_IRON_ORE, 22, 240, 63 }, /* 66 */ + { 55, 117, 96, CT_GRAIN, 17, 90, 64 }, /* 67 */ + { 55, 147, 176, CT_GRAIN, 19, 168, 63 }, /* 68 */ + { 55, 157, 224, CT_GRAIN, 22, 240, 64 }, /* 69 */ + { 56, 117, 96, CT_OIL, 17, 90, 63 }, /* 70 */ + { 56, 147, 176, CT_OIL, 19, 168, 64 }, /* 71 */ + { 56, 157, 224, CT_OIL, 22, 240, 63 }, /* 72 */ + { 58, 117, 96, CT_GOODS, 17, 90, 64 }, /* 73 */ + { 58, 147, 176, CT_GOODS, 19, 168, 63 }, /* 74 */ + { 58, 157, 224, CT_GOODS, 22, 240, 64 }, /* 75 */ + { 59, 117, 96, CT_LIVESTOCK, 17, 90, 63 }, /* 76 */ + { 59, 147, 176, CT_LIVESTOCK, 19, 168, 64 }, /* 77 */ + { 59, 157, 224, CT_LIVESTOCK, 22, 240, 63 }, /* 78 */ + { 60, 117, 96, CT_FOOD, 17, 90, 64 }, /* 79 */ + { 60, 147, 176, CT_FOOD, 19, 168, 63 }, /* 80 */ + { 60, 157, 224, CT_FOOD, 22, 240, 64 }, /* 81 */ + { 61, 117, 96, CT_VALUABLES, 17, 90, 63 }, /* 82 */ + { 61, 147, 176, CT_VALUABLES, 19, 168, 64 }, /* 83 */ + { 61, 157, 224, CT_VALUABLES, 22, 240, 63 }, /* 84 */ + { 62, 117, 96, CT_STEEL, 17, 90, 64 }, /* 85 */ + { 62, 147, 176, CT_STEEL, 19, 168, 63 }, /* 86 */ + { 62, 157, 224, CT_STEEL, 22, 240, 64 }, /* 87 */ +}; + + ShipVehicleInfo _ship_vehicle_info[] = { // image_index cargo_type cargo_amount refittable // | base_cost | | running_cost // | | max_speed | | sfx | // | | | | | | | | - { 1, 160, 48, CT_OIL, 220, 140, 4, 0 }, /* 0 */ + { 1, 160, 48, CT_OIL, 220, 140, 4, 0 }, /* 0 */ { 1, 176, 80, CT_OIL, 350, 125, 4, 0 }, /* 1 */ { 2, 96, 64, CT_PASSENGERS, 100, 90, 5, 0 }, /* 2 */ { 2, 112, 128, CT_PASSENGERS, 130, 80, 5, 0 }, /* 3 */ |