Missing field initializers part 2

This commit tackles the more difficult-to-fix warnings that -Wmissing-field-initializers reported. I've compares the new tables in TrackData with the old ones through a script to make sure they are in fact the same.
This commit is contained in:
Hielke Morsink 2018-06-04 23:57:59 +02:00
parent 5d0022a5cb
commit 9c8c2a2820
8 changed files with 253 additions and 263 deletions

View File

@ -87,12 +87,12 @@ enum
constexpr char NAC = '\0';
#define ExampleTableEnd { NULL, NULL }
#define OptionTableEnd { UINT8_MAX, NULL, NAC, NULL, NULL }
#define CommandTableEnd { NULL, NULL, NULL, NULL }
#define ExampleTableEnd { nullptr, nullptr }
#define OptionTableEnd { UINT8_MAX, nullptr, NAC, nullptr, nullptr }
#define CommandTableEnd { nullptr, nullptr, nullptr, nullptr, nullptr }
#define DefineCommand(name, params, options, func) { name, params, options, NULL, func }
#define DefineSubCommand(name, subcommandtable) { name, "", NULL, subcommandtable, NULL }
#define DefineCommand(name, params, options, func) { name, params, options, nullptr, func }
#define DefineSubCommand(name, subcommandtable) { name, "", nullptr, subcommandtable, nullptr }
namespace CommandLine
{

View File

@ -769,6 +769,8 @@ static sint32
console.WriteLineError("OpenRCT2 build not compiled with Twitch integration.");
#else
// TODO: Add some twitch commands
// Display a message to the player for now
console.WriteLine("To be implemented");
#endif
return 0;
}
@ -1097,7 +1099,7 @@ static constexpr const console_command console_command_table[] = {
"This is a safer method opposed to \"open object_selection\".",
"load_object <objectfilenodat>" },
{ "object_count", cc_object_count, "Shows the number of objects of each type in the scenario.", "object_count" },
{ "twitch", cc_twitch, "Twitch API" },
{ "twitch", cc_twitch, "Twitch API", "twitch" },
{ "reset_user_strings", cc_reset_user_strings, "Resets all user-defined strings, to fix incorrectly occurring 'Chosen name in use already' errors.", "reset_user_strings" },
{ "rides", cc_rides, "Ride management.", "rides <subcommand>" },
{ "staff", cc_staff, "Staff management.", "staff <subcommand>"},

View File

@ -69,7 +69,7 @@ struct rct_ride_data_4 {
uint16 flags;
uint8 default_music;
uint8 alternate_type;
uint8 pad[2];
uint8 pad[2] = {};
};
struct ride_cost {
@ -85,7 +85,7 @@ struct rct_ride_data_5 {
uint8 z;
uint8 price;
uint8 bonus_value; // Deprecated. Use rideBonusValue instead
uint8 pad;
uint8 pad = 0;
};
struct rct_ride_lift_data {

View File

@ -29,14 +29,12 @@ struct rct_trackdefinition
uint8 bank_end;
uint8 bank_start;
sint8 preview_z_offset;
uint8 pad[2];
uint8 pad[2] = {};
};
assert_struct_size(rct_trackdefinition, 8);
#pragma pack(pop)
/**
* Size: 0x0A
*/
/* size 0x0A */
struct rct_preview_track
{
uint8 index; // 0x00

View File

@ -27900,7 +27900,7 @@ CREATE_VEHICLE_INFO(TrackVehicleInfo_9571BC, {
{ 16, -63, 0, 24, 0, 0 }, { 16, -64, 0, 24, 0, 0 },
})
CREATE_VEHICLE_INFO(TrackVehicleInfo_000000, { 0 })
CREATE_VEHICLE_INFO(TrackVehicleInfo_000000, { { 0, 0, 0, 0, 0, 0 } })
static constexpr const rct_vehicle_info_list *TrackVehicleInfoList_8B8F98[] = {
&TrackVehicleInfo_8BE57A, &TrackVehicleInfo_8BE69C, &TrackVehicleInfo_8BE7BE, &TrackVehicleInfo_8BE8E0, &TrackVehicleInfo_8BE57A, &TrackVehicleInfo_8BE69C,

View File

@ -982,53 +982,51 @@ void track_paint_util_draw_station_metal_supports_2(paint_session * session, uin
}
}
// clang-format off
const LocationXY16 defaultRightHelixUpSmallQuarterBoundLengths[4][3][2] = {
{
{32, 20},
{16, 16},
{20, 32}
{ { 32, 20 }, { 0, 0 } },
{ { 16, 16 }, { 0, 0 } },
{ { 20, 32 }, { 0, 0 } },
},
{
{20, 32},
{16, 16},
{ {32, 20}, {32, 1} }
{ { 20, 32 }, { 0, 0 } },
{ { 16, 16 }, { 0, 0 } },
{ { 32, 20 }, { 32, 1 } },
},
{
{ {0}, {32, 1} },
{16, 16},
{ {0}, {1, 32} }
{ { 0, 0 }, { 32, 1 } },
{ { 16, 16 }, { 0, 0 } },
{ { 0, 0 }, { 1, 32 } },
},
{
{ {20, 32}, {1, 32} },
{16, 16},
{32, 20},
}
{ { 20, 32 }, { 1, 32 } },
{ { 16, 16 }, { 0, 0 } },
{ { 32, 20 }, { 0, 0 } },
},
};
const LocationXYZ16 defaultRightHelixUpSmallQuarterBoundOffsets[4][3][2] = {
{
{0, 6},
{16, 16},
{6, 0},
{ { 0, 6, 0 }, { 0, 0, 0 } },
{ { 16, 16, 0 }, { 0, 0, 0 } },
{ { 6, 0, 0 }, { 0, 0, 0 } },
},
{
{6, 0},
{16, 0},
{ {0, 6}, {0, 27} },
{ { 6, 0, 0 }, { 0, 0, 0 } },
{ { 16, 0, 0 }, { 0, 0, 0 } },
{ { 0, 6, 0 }, { 0, 27, 0 } },
},
{
{ {0}, {0, 27} },
{0, 0, 27},
{ {0}, {27, 0} },
{ { 0, 0, 0 }, { 0, 27, 0 } },
{ { 0, 0, 27 }, { 0, 0, 0 } },
{ { 0, 0, 0 }, { 27, 0, 0 } },
},
{
{ {6, 0}, {27, 0} },
{0, 16},
{0, 6},
}
{ { 6, 0, 0 }, { 27, 0, 0 } },
{ { 0, 16, 0 }, { 0, 0, 0 } },
{ { 0, 6, 0 }, { 0, 0, 0 } },
},
};
// clang-format on
static constexpr const sint8 right_helix_up_small_quarter_tiles_sprite_map[] = { 0, -1, 1, 2 };
@ -1071,69 +1069,67 @@ void track_paint_util_right_helix_up_small_quarter_tiles_paint(paint_session * s
}
}
// clang-format off
const LocationXYZ16 defaultRightHelixUpLargeQuarterBoundOffsets[4][5][2] = {
{
{0, 6},
{0, 16},
{0, 0},
{16, 0},
{6, 0},
{ { 0, 6, 0 }, { 0, 0, 0 } },
{ { 0, 16, 0 }, { 0, 0, 0 } },
{ { 0, 0, 0 }, { 0, 0, 0 } },
{ { 16, 0, 0 }, { 0, 0, 0 } },
{ { 6, 0, 0 }, { 0, 0, 0 } },
},
{
{6, 0},
{16, 0},
{0, 16},
{0, 0},
{ {0, 6}, {0, 27} },
{ { 6, 0, 0 }, { 0, 0, 0 } },
{ { 16, 0, 0 }, { 0, 0, 0 } },
{ { 0, 16, 0 }, { 0, 0, 0 } },
{ { 0, 0, 0 }, { 0, 0, 0 } },
{ { 0, 6, 0 }, { 0, 27, 0 } },
},
{
{ {0}, {0, 27} },
{0, 0, 27},
{16, 16, 27},
{0, 0, 27},
{ {0}, {27, 0} },
{ { 0, 0, 0 }, { 0, 27, 0 } },
{ { 0, 0, 27 }, { 0, 0, 0 } },
{ { 16, 16, 27 }, { 0, 0, 0 } },
{ { 0, 0, 27 }, { 0, 0, 0 } },
{ { 0, 0, 0 }, { 27, 0, 0 } },
},
{
{{6, 0}, {27, 0} },
{0, 0},
{16, 0},
{0, 16},
{0, 6},
}
{ { 6, 0, 0 }, { 27, 0, 0 } },
{ { 0, 0, 0 }, { 0, 0, 0 } },
{ { 16, 0, 0 }, { 0, 0, 0 } },
{ { 0, 16, 0 }, { 0, 0, 0 } },
{ { 0, 6, 0 }, { 0, 0, 0 } },
},
};
const LocationXY16 defaultRightHelixUpLargeQuarterBoundLengths[4][5][2] = {
{
{32, 20},
{32, 16},
{16, 16},
{16, 32},
{20, 32},
{ { 32, 20 }, { 0, 0 } },
{ { 32, 16 }, { 0, 0 } },
{ { 16, 16 }, { 0, 0 } },
{ { 16, 32 }, { 0, 0 } },
{ { 20, 32 }, { 0, 0 } },
},
{
{20, 32},
{16, 32},
{16, 16},
{32, 16},
{ {32, 20}, {32, 1} },
{ { 20, 32 }, { 0, 0 } },
{ { 16, 32 }, { 0, 0 } },
{ { 16, 16 }, { 0, 0 } },
{ { 32, 16 }, { 0, 0 } },
{ { 32, 20 }, { 32, 1 } },
},
{
{ {0}, {32, 1} },
{32, 16},
{16, 16},
{16, 32},
{ {0}, {1, 32} },
{ { 0, 0 }, { 32, 1 } },
{ { 32, 16 }, { 0, 0 } },
{ { 16, 16 }, { 0, 0 } },
{ { 16, 32 }, { 0, 0 } },
{ { 0, 0 }, { 1, 32 } },
},
{
{{20, 32}, {1, 32} },
{16, 32},
{16, 16},
{32, 16},
{32, 20},
}
{ { 20, 32 }, { 1, 32 } },
{ { 16, 32 }, { 0, 0 } },
{ { 16, 16 }, { 0, 0 } },
{ { 32, 16 }, { 0, 0 } },
{ { 32, 20 }, { 0, 0 } },
},
};
// clang-format on
static constexpr const sint8 right_helix_up_large_quarter_sprite_map[] = { 0, -1, 1, 2, -1, 3, 4 };
void track_paint_util_right_helix_up_large_quarter_tiles_paint(paint_session * session, const sint8 thickness[2], sint16 height,
@ -1175,112 +1171,111 @@ void track_paint_util_right_helix_up_large_quarter_tiles_paint(paint_session * s
}
}
// clang-format off
const LocationXY16 defaultLeftEighthToDiagBoundLengths[4][4] = {
{
{32, 20},
{32, 16},
{16, 16},
{16, 16},
{ 32, 20 },
{ 32, 16 },
{ 16, 16 },
{ 16, 16 },
},
{
{20, 32},
{16, 34},
{16, 16},
{18, 16},
{ 20, 32 },
{ 16, 34 },
{ 16, 16 },
{ 18, 16 },
},
{
{32, 20},
{32, 16},
{16, 16},
{16, 16},
{ 32, 20 },
{ 32, 16 },
{ 16, 16 },
{ 16, 16 },
},
{
{20, 32},
{16, 32},
{16, 16},
{16, 16},
{ 20, 32 },
{ 16, 32 },
{ 16, 16 },
{ 16, 16 },
},
};
const LocationXYZ16 defaultLeftEighthToDiagBoundOffsets[4][4] = {
{
{0, 6},
{0, 0},
{0, 16},
{16, 16},
{ 0, 6, 0 },
{ 0, 0, 0 },
{ 0, 16, 0 },
{ 16, 16, 0 },
},
{
{6, 0},
{0, 0},
{16, 16},
{16, 0},
{ 6, 0, 0 },
{ 0, 0, 0 },
{ 16, 16, 0 },
{ 16, 0, 0 },
},
{
{0, 6},
{0, 16},
{16, 0},
{0, 0},
{ 0, 6, 0 },
{ 0, 16, 0 },
{ 16, 0, 0 },
{ 0, 0, 0 },
},
{
{6, 0},
{16, 0},
{0, 0},
{0, 16},
{ 6, 0, 0 },
{ 16, 0, 0 },
{ 0, 0, 0 },
{ 0, 16, 0 },
},
};
const LocationXY16 defaultRightEighthToDiagBoundLengths[4][4] = {
{
{32, 20},
{32, 16},
{16, 16},
{16, 16},
{ 32, 20 },
{ 32, 16 },
{ 16, 16 },
{ 16, 16 },
},
{
{20, 32},
{16, 32},
{16, 16},
{16, 16},
{ 20, 32 },
{ 16, 32 },
{ 16, 16 },
{ 16, 16 },
},
{
{32, 20},
{34, 16},
{28, 28},
{16, 18},
{ 32, 20 },
{ 34, 16 },
{ 28, 28 },
{ 16, 18 },
},
{
{20, 32},
{16, 32},
{16, 16},
{16, 16},
{ 20, 32 },
{ 16, 32 },
{ 16, 16 },
{ 16, 16 },
},
};
const LocationXYZ16 defaultRightEighthToDiagBoundOffsets[4][4] = {
{
{0, 6},
{0, 16},
{0, 0},
{16, 0},
{ 0, 6, 0 },
{ 0, 16, 0 },
{ 0, 0, 0 },
{ 16, 0, 0 },
},
{
{6, 0},
{16, 0},
{0, 16},
{0, 0},
{ 6, 0, 0 },
{ 16, 0, 0 },
{ 0, 16, 0 },
{ 0, 0, 0 },
},
{
{0, 6},
{0, 0},
{4, 4},
{0, 16},
{ 0, 6, 0 },
{ 0, 0, 0 },
{ 4, 4, 0 },
{ 0, 16, 0 },
},
{
{6, 0},
{0, 0},
{16, 0},
{16, 16},
{ 6, 0, 0 },
{ 0, 0, 0 },
{ 16, 0, 0 },
{ 16, 16, 0 },
},
};
@ -1310,7 +1305,6 @@ const sint8 defaultEighthToDiagThickness[4][4] = {
1,
},
};
// clang-format on
const uint8 mapLeftEighthTurnToOrthogonal[] = { 4, 2, 3, 1, 0 };
@ -1383,100 +1377,98 @@ void track_paint_util_diag_tiles_paint(paint_session * session, sint8 thickness,
const uint8 mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[] = { 6, 4, 5, 3, 1, 2, 0 };
// clang-format off
const LocationXY16 defaultRightQuarterTurn5TilesOffsets[4][5] = {
{
{0, 6},
{0, 16},
{0, 0},
{16, 0},
{6, 0},
{ 0, 6 },
{ 0, 16 },
{ 0, 0 },
{ 16, 0 },
{ 6, 0 },
},
{
{6, 0},
{16, 0},
{0, 16},
{0, 0},
{0, 6},
{ 6, 0 },
{ 16, 0 },
{ 0, 16 },
{ 0, 0 },
{ 0, 6 },
},
{
{0, 6},
{0, 0},
{16, 16},
{0, 0},
{6, 0},
{ 0, 6 },
{ 0, 0 },
{ 16, 16 },
{ 0, 0 },
{ 6, 0 },
},
{
{6, 0},
{0, 0},
{16, 0},
{0, 16},
{0, 6},
}
{ 6, 0 },
{ 0, 0 },
{ 16, 0 },
{ 0, 16 },
{ 0, 6 },
},
};
const LocationXYZ16 defaultRightQuarterTurn5TilesBoundOffsets[4][5] = {
{
{0, 6},
{0, 16},
{0, 0},
{16, 0},
{6, 0},
{ 0, 6, 0 },
{ 0, 16, 0 },
{ 0, 0, 0 },
{ 16, 0, 0 },
{ 6, 0, 0 },
},
{
{6, 0},
{16, 0},
{0, 16},
{0, 0},
{0, 6},
{ 6, 0, 0 },
{ 16, 0, 0 },
{ 0, 16, 0 },
{ 0, 0, 0 },
{ 0, 6, 0 },
},
{
{0, 6},
{0, 0},
{16, 16},
{0, 0},
{6, 0},
{ 0, 6, 0 },
{ 0, 0, 0 },
{ 16, 16, 0 },
{ 0, 0, 0 },
{ 6, 0, 0 },
},
{
{6, 0},
{0, 0},
{16, 0},
{0, 16},
{0, 6},
}
{ 6, 0, 0 },
{ 0, 0, 0 },
{ 16, 0, 0 },
{ 0, 16, 0 },
{ 0, 6, 0 },
},
};
const LocationXY16 defaultRightQuarterTurn5TilesBoundLengths[4][5] = {
{
{32, 20},
{32, 16},
{16, 16},
{16, 32},
{20, 32},
{ 32, 20 },
{ 32, 16 },
{ 16, 16 },
{ 16, 32 },
{ 20, 32 },
},
{
{20, 32},
{16, 32},
{16, 16},
{32, 16},
{32, 20},
{ 20, 32 },
{ 16, 32 },
{ 16, 16 },
{ 32, 16 },
{ 32, 20 },
},
{
{32, 20},
{32, 16},
{16, 16},
{16, 32},
{20, 32},
{ 32, 20 },
{ 32, 16 },
{ 16, 16 },
{ 16, 32 },
{ 20, 32 },
},
{
{20, 32},
{16, 32},
{16, 16},
{32, 16},
{32, 20},
}
{ 20, 32 },
{ 16, 32 },
{ 16, 16 },
{ 32, 16 },
{ 32, 20 },
},
};
// clang-format on
static constexpr const sint8 right_quarter_turn_5_tiles_sprite_map[] = { 0, -1, 1, 2, -1, 3, 4 };
void track_paint_util_right_quarter_turn_5_tiles_paint(paint_session * session, sint8 thickness, sint16 height,
@ -1574,76 +1566,74 @@ void track_paint_util_right_quarter_turn_5_tiles_wooden_supports(paint_session *
const uint8 mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[] = { 3, 1, 2, 0 };
// clang-format off
const LocationXY16 defaultRightQuarterTurn3TilesOffsets[4][3] = {
{
{0, 6},
{16, 16},
{6, 0},
{ 0, 6 },
{ 16, 16 },
{ 6, 0 },
},
{
{6, 0},
{16, 0},
{0, 6},
{ 6, 0 },
{ 16, 0 },
{ 0, 6 },
},
{
{0, 6},
{0, 0},
{6, 0},
{ 0, 6 },
{ 0, 0 },
{ 6, 0 },
},
{
{6, 0},
{0, 16},
{0, 6},
}
{ 6, 0 },
{ 0, 16 },
{ 0, 6 },
},
};
const LocationXYZ16 defaultRightQuarterTurn3TilesBoundOffsets[4][3] = {
{
{0, 6},
{16, 16},
{6, 0},
{ 0, 6, 0 },
{ 16, 16, 0 },
{ 6, 0, 0 },
},
{
{6, 0},
{16, 0},
{0, 6},
{ 6, 0, 0 },
{ 16, 0, 0 },
{ 0, 6, 0 },
},
{
{0, 6},
{0, 0},
{6, 0},
{ 0, 6, 0 },
{ 0, 0, 0 },
{ 6, 0, 0 },
},
{
{6, 0},
{0, 16},
{0, 6},
}
{ 6, 0, 0 },
{ 0, 16, 0 },
{ 0, 6, 0 },
},
};
const LocationXY16 defaultRightQuarterTurn3TilesBoundLengths[4][3] = {
{
{32, 20},
{16, 16},
{20, 32},
{ 32, 20 },
{ 16, 16 },
{ 20, 32 },
},
{
{20, 32},
{16, 16},
{32, 20},
{ 20, 32 },
{ 16, 16 },
{ 32, 20 },
},
{
{32, 20},
{16, 16},
{20, 32},
{ 32, 20 },
{ 16, 16 },
{ 20, 32 },
},
{
{20, 32},
{16, 16},
{32, 20},
}
{ 20, 32 },
{ 16, 16 },
{ 32, 20 },
},
};
// clang-format on
static constexpr const sint8 right_quarter_turn_3_tiles_sprite_map[] = { 0, -1, 1, 2 };
void track_paint_util_right_quarter_turn_3_tiles_paint(paint_session * session, sint8 thickness, sint16 height,

View File

@ -82,9 +82,9 @@ struct rct_ride_entry_vehicle {
uint8 draw_order;
uint8 num_vertical_frames_override; // 0x60 , 0x7A, A custom number that can be used rather than letting RCT2 determine it. Needs the VEHICLE_ENTRY_FLAG_OVERRIDE_NUM_VERTICAL_FRAMES flag to be set.
uint8 peep_loading_waypoint_segments; // 0x61 new
uint8 pad_62[6]; // 0x62 , 0x7B
std::vector<std::array<sLocationXY8, 3> > peep_loading_waypoints;
std::vector<sint8> peep_loading_positions; // previously 0x61 , 0x7B
uint8 pad_62[6] = {}; // 0x62 , 0x7B
std::vector<std::array<sLocationXY8, 3>> peep_loading_waypoints = {};
std::vector<sint8> peep_loading_positions = {}; // previously 0x61 , 0x7B
};
#ifdef __TESTPAINT__
#pragma pack(pop)

View File

@ -460,7 +460,7 @@ static constexpr const top_spin_time_to_sprite_map TopSpinTimeToSpriteMap_0[] =
{ 45, 0 }, { 46, 0 }, { 46, 0 }, { 46, 0 }, { 46, 0 }, { 46, 0 }, { 47, 0 },
{ 47, 0 }, { 47, 0 }, { 47, 0 }, { 47, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
{ 0, 0 }, { 0, 0 },
{ 0xFF },
{ 0xFF, 0 },
};
/** rct2: 0x009A1751 */
@ -565,7 +565,7 @@ static constexpr const top_spin_time_to_sprite_map TopSpinTimeToSpriteMap_1[] =
{ 3, 0 }, { 3, 0 }, { 3, 0 }, { 3, 0 }, { 2, 0 }, { 2, 0 }, { 2, 0 },
{ 2, 0 }, { 2, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 }, { 1, 0 },
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
{ 0xFF },
{ 0xFF, 0 },
};
/** rct2: 0x009A1CC6 */
@ -705,7 +705,7 @@ static constexpr const top_spin_time_to_sprite_map TopSpinTimeToSpriteMap_2[] =
{ 2, 2 }, { 2, 2 }, { 2, 2 }, { 2, 2 }, { 1, 1 }, { 1, 1 }, { 1, 1 },
{ 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
{ 0xFF },
{ 0xFF, 0 },
};
/** rct2: 0x009A12E0 */