1059 { |
1059 { |
1060 Vehicle *v = GetVehicle(_current_vehicle_id); |
1060 Vehicle *v = GetVehicle(_current_vehicle_id); |
1061 uint temp = ls->total_read; |
1061 uint temp = ls->total_read; |
1062 bool res; |
1062 bool res; |
1063 |
1063 |
|
1064 /* We changed the offset of the vehicle types, so fix it |
|
1065 * Basically v->type -= 0x10; would suffice, but play safely */ |
1064 switch (v->type) { |
1066 switch (v->type) { |
1065 case VEH_Train: res = LoadChunk(ls, &v->u.rail, vehicle_train_chunk); break; |
1067 default: NOT_REACHED(); |
1066 case VEH_Road: res = LoadChunk(ls, &v->u.road, vehicle_road_chunk); break; |
1068 case 0x00 /*VEH_Invalid */: v->type = VEH_Invalid; res = LoadChunk(ls, NULL, vehicle_empty_chunk); break; |
1067 case VEH_Ship: res = LoadChunk(ls, &v->u.ship, vehicle_ship_chunk); break; |
1069 case 0x10 /*VEH_Train */: v->type = VEH_Train; res = LoadChunk(ls, &v->u.rail, vehicle_train_chunk); break; |
1068 case VEH_Aircraft: res = LoadChunk(ls, &v->u.air, vehicle_air_chunk); break; |
1070 case 0x11 /*VEH_Road */: v->type = VEH_Road; res = LoadChunk(ls, &v->u.road, vehicle_road_chunk); break; |
1069 case VEH_Special: res = LoadChunk(ls, &v->u.special, vehicle_special_chunk); break; |
1071 case 0x12 /*VEH_Ship */: v->type = VEH_Ship; res = LoadChunk(ls, &v->u.ship, vehicle_ship_chunk); break; |
1070 case VEH_Disaster: res = LoadChunk(ls, &v->u.disaster, vehicle_disaster_chunk); break; |
1072 case 0x13 /*VEH_Aircraft*/: v->type = VEH_Aircraft; res = LoadChunk(ls, &v->u.air, vehicle_air_chunk); break; |
1071 default: res = LoadChunk(ls, NULL, vehicle_empty_chunk); break; |
1073 case 0x14 /*VEH_Special */: v->type = VEH_Special; res = LoadChunk(ls, &v->u.special, vehicle_special_chunk); break; |
|
1074 case 0x15 /*VEH_Disaster*/: v->type = VEH_Disaster; res = LoadChunk(ls, &v->u.disaster, vehicle_disaster_chunk); break; |
1072 } |
1075 } |
1073 |
1076 |
1074 /* This chunk size should always be 10 bytes */ |
1077 /* This chunk size should always be 10 bytes */ |
1075 if (ls->total_read - temp != 10) { |
1078 if (ls->total_read - temp != 10) { |
1076 DEBUG(oldloader, 4, "Assert failed in Vehicle"); |
1079 DEBUG(oldloader, 4, "Assert failed in Vehicle"); |