mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r3204) Make handling of clicking on vehicles a bit less ugly by avoiding function declarations in .c files and unnecessary indirection
This commit is contained in:
parent
272d63b062
commit
8cebe2f607
@ -538,10 +538,6 @@ int32 CmdRefitAircraft(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
||||
return cost;
|
||||
}
|
||||
|
||||
void HandleClickOnAircraft(Vehicle *v)
|
||||
{
|
||||
ShowAircraftViewWindow(v);
|
||||
}
|
||||
|
||||
static void CheckIfAircraftNeedsService(Vehicle *v)
|
||||
{
|
||||
|
@ -690,10 +690,6 @@ void DisasterVehicle_Tick(Vehicle *v)
|
||||
_disastervehicle_tick_procs[v->subtype](v);
|
||||
}
|
||||
|
||||
void HandleClickOnDisasterVeh(Vehicle *v)
|
||||
{
|
||||
// not used
|
||||
}
|
||||
|
||||
void OnNewDay_DisasterVehicle(Vehicle *v)
|
||||
{
|
||||
|
@ -1733,10 +1733,6 @@ void OnNewDay_RoadVeh(Vehicle *v)
|
||||
InvalidateWindowClasses(WC_ROADVEH_LIST);
|
||||
}
|
||||
|
||||
void HandleClickOnRoadVeh(Vehicle *v)
|
||||
{
|
||||
ShowRoadVehViewWindow(v);
|
||||
}
|
||||
|
||||
void RoadVehiclesYearlyLoop(void)
|
||||
{
|
||||
|
@ -801,10 +801,6 @@ void Ship_Tick(Vehicle *v)
|
||||
ShipController(v);
|
||||
}
|
||||
|
||||
void HandleClickOnShip(Vehicle *v)
|
||||
{
|
||||
ShowShipViewWindow(v);
|
||||
}
|
||||
|
||||
void ShipsYearlyLoop(void)
|
||||
{
|
||||
|
@ -3630,11 +3630,6 @@ void TrainsYearlyLoop(void)
|
||||
}
|
||||
}
|
||||
|
||||
void HandleClickOnTrain(Vehicle *v)
|
||||
{
|
||||
if (v->subtype != TS_Front_Engine) v = GetFirstVehicleInChain(v);
|
||||
ShowTrainViewWindow(v);
|
||||
}
|
||||
|
||||
void InitializeTrains(void)
|
||||
{
|
||||
|
34
viewport.c
34
viewport.c
@ -4,6 +4,7 @@
|
||||
#include "openttd.h"
|
||||
#include "debug.h"
|
||||
#include "functions.h"
|
||||
#include "gui.h"
|
||||
#include "spritecache.h"
|
||||
#include "strings.h"
|
||||
#include "table/sprites.h"
|
||||
@ -1696,25 +1697,28 @@ static void CheckClickOnLandscape(const ViewPort *vp, int x, int y)
|
||||
if (pt.x != -1) ClickTile(TileVirtXY(pt.x, pt.y));
|
||||
}
|
||||
|
||||
void HandleClickOnTrain(Vehicle *v);
|
||||
void HandleClickOnRoadVeh(Vehicle *v);
|
||||
void HandleClickOnAircraft(Vehicle *v);
|
||||
void HandleClickOnShip(Vehicle *v);
|
||||
static void HandleClickOnSpecialVeh(Vehicle *v) {}
|
||||
void HandleClickOnDisasterVeh(Vehicle *v);
|
||||
typedef void OnVehicleClickProc(Vehicle *v);
|
||||
static OnVehicleClickProc * const _on_vehicle_click_proc[6] = {
|
||||
HandleClickOnTrain,
|
||||
HandleClickOnRoadVeh,
|
||||
HandleClickOnShip,
|
||||
HandleClickOnAircraft,
|
||||
HandleClickOnSpecialVeh,
|
||||
HandleClickOnDisasterVeh,
|
||||
|
||||
static void SafeShowTrainViewWindow(const Vehicle* v)
|
||||
{
|
||||
if (v->subtype != TS_Front_Engine) v = GetFirstVehicleInChain(v);
|
||||
ShowTrainViewWindow(v);
|
||||
}
|
||||
|
||||
static void Nop(const Vehicle* v) {}
|
||||
|
||||
typedef void OnVehicleClickProc(const Vehicle* v);
|
||||
static OnVehicleClickProc* const _on_vehicle_click_proc[] = {
|
||||
SafeShowTrainViewWindow,
|
||||
ShowRoadVehViewWindow,
|
||||
ShowShipViewWindow,
|
||||
ShowAircraftViewWindow,
|
||||
Nop, // Special vehicles
|
||||
Nop // Disaster vehicles
|
||||
};
|
||||
|
||||
void HandleViewportClicked(const ViewPort *vp, int x, int y)
|
||||
{
|
||||
Vehicle* v;
|
||||
const Vehicle* v;
|
||||
|
||||
if (CheckClickOnTown(vp, x, y)) return;
|
||||
if (CheckClickOnStation(vp, x, y)) return;
|
||||
|
Loading…
Reference in New Issue
Block a user