(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:
tron 2005-11-16 12:52:01 +00:00
parent 272d63b062
commit 8cebe2f607
6 changed files with 19 additions and 36 deletions

View File

@ -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)
{

View File

@ -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)
{

View File

@ -1733,10 +1733,6 @@ void OnNewDay_RoadVeh(Vehicle *v)
InvalidateWindowClasses(WC_ROADVEH_LIST);
}
void HandleClickOnRoadVeh(Vehicle *v)
{
ShowRoadVehViewWindow(v);
}
void RoadVehiclesYearlyLoop(void)
{

View File

@ -801,10 +801,6 @@ void Ship_Tick(Vehicle *v)
ShipController(v);
}
void HandleClickOnShip(Vehicle *v)
{
ShowShipViewWindow(v);
}
void ShipsYearlyLoop(void)
{

View File

@ -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)
{

View File

@ -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;