fix more import bugs

This commit is contained in:
Ted John 2016-04-17 22:18:54 +01:00
parent 7401b5cf39
commit b93429052c
3 changed files with 46 additions and 3 deletions

View File

@ -343,7 +343,14 @@ void S4Importer::ImportRide(rct_ride * dst, rct1_ride * src)
memset(dst, 0, sizeof(rct_ride));
dst->type = RCT1::GetRideType(src->type);
dst->subtype = _vehicleTypeToRideEntryMap[src->vehicle_type];
if (RCT1::RideTypeHasVehicle(src->type))
{
dst->subtype = _rideTypeToRideEntryMap[src->type];
}
else
{
dst->subtype = _vehicleTypeToRideEntryMap[src->vehicle_type];
}
rct_ride_entry * rideEntry = get_ride_entry(dst->subtype);
@ -1263,8 +1270,8 @@ void S4Importer::FixMapElementEntryTypes()
mapElement->properties.fence.type = _wallTypeToEntryMap[mapElement->properties.fence.type];
if (mapElement->properties.fence.type == 255)
{
map_element_remove(mapElement);
map_element_iterator_restart_for_tile(&it);
// map_element_remove(mapElement);
// map_element_iterator_restart_for_tile(&it);
}
break;
}

View File

@ -10,6 +10,8 @@ namespace RCT1
uint8 GetTerrainEdge(uint8 terrainEdge);
uint8 GetRideType(uint8 rideType);
bool RideTypeHasVehicle(uint8 rideType);
const char * GetRideTypeObject(uint8 rideType);
const char * GetVehicleObject(uint8 vehicleType);
const char * GetSmallSceneryObject(uint8 smallSceneryType);

View File

@ -5,6 +5,7 @@
extern "C"
{
#include "../interface/colour.h"
#include "../rct1.h"
#include "../ride/ride.h"
}
@ -193,6 +194,39 @@ namespace RCT1
return map[rideType];
}
bool RideTypeHasVehicle(uint8 rideType)
{
switch (rideType) {
case RCT1_RIDE_TYPE_HEDGE_MAZE:
case RCT1_RIDE_TYPE_SPIRAL_SLIDE:
case RCT1_RIDE_TYPE_ICE_CREAM_STALL:
case RCT1_RIDE_TYPE_FRIES_STALL:
case RCT1_RIDE_TYPE_DRINK_STALL:
case RCT1_RIDE_TYPE_COTTON_CANDY_STALL:
case RCT1_RIDE_TYPE_BURGER_BAR:
case RCT1_RIDE_TYPE_BALLOON_STALL:
case RCT1_RIDE_TYPE_INFORMATION_KIOSK:
case RCT1_RIDE_TYPE_TOILETS:
case RCT1_RIDE_TYPE_SOUVENIR_STALL:
case RCT1_RIDE_TYPE_PIZZA_STALL:
case RCT1_RIDE_TYPE_POPCORN_STALL:
case RCT1_RIDE_TYPE_HOT_DOG_STALL:
case RCT1_RIDE_TYPE_EXOTIC_SEA_FOOD_STALL:
case RCT1_RIDE_TYPE_HAT_STALL:
case RCT1_RIDE_TYPE_CANDY_APPLE_STAND:
case RCT1_RIDE_TYPE_40:
case RCT1_RIDE_TYPE_44:
case RCT1_RIDE_TYPE_T_SHIRT_STALL:
case RCT1_RIDE_TYPE_DOUGHNUT_SHOP:
case RCT1_RIDE_TYPE_COFFEE_SHOP:
case RCT1_RIDE_TYPE_FRIED_CHICKEN_STALL:
case RCT1_RIDE_TYPE_LEMONADE_STALL:
return true;
default:
return false;
}
}
const char * GetRideTypeObject(uint8 rideType)
{
static const char * map[] =