mirror of https://github.com/OpenTTD/OpenTTD
(svn r10270) -Add: prefixed the loading indicator with an arrow, up meaning vehicle is loading, down meaning vehicle is unloading
parent
74b867db72
commit
f80fa33cc5
|
@ -1669,11 +1669,12 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left)
|
||||||
|
|
||||||
/* Calculate the loading indicator fill percent and display */
|
/* Calculate the loading indicator fill percent and display */
|
||||||
if (_patches.loading_indicators && _game_mode != GM_MENU && v->owner == _local_player) {
|
if (_patches.loading_indicators && _game_mode != GM_MENU && v->owner == _local_player) {
|
||||||
int percent = CalcPercentVehicleFilled(v);
|
StringID percent_up_down = STR_NULL;
|
||||||
|
int percent = CalcPercentVehicleFilled(v, &percent_up_down);
|
||||||
if (v->fill_percent_te_id == INVALID_TE_ID) {
|
if (v->fill_percent_te_id == INVALID_TE_ID) {
|
||||||
v->fill_percent_te_id = ShowFillingPercent(v->x_pos, v->y_pos, v->z_pos + 20, percent);
|
v->fill_percent_te_id = ShowFillingPercent(v->x_pos, v->y_pos, v->z_pos + 20, percent, percent_up_down);
|
||||||
} else {
|
} else {
|
||||||
UpdateFillingPercent(v->fill_percent_te_id, percent);
|
UpdateFillingPercent(v->fill_percent_te_id, percent, percent_up_down);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3292,8 +3292,12 @@ STR_TRANSPARENT_BRIDGES_DESC :{BLACK}Toggle t
|
||||||
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Toggle transparency for structures like lighthouses and antennas, maybe in future for eyecandy
|
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Toggle transparency for structures like lighthouses and antennas, maybe in future for eyecandy
|
||||||
STR_TRANSPARENT_LOADING_DESC :{BLACK}Toggle transparency for loading indicators
|
STR_TRANSPARENT_LOADING_DESC :{BLACK}Toggle transparency for loading indicators
|
||||||
|
|
||||||
STR_PERCENT_FULL_SMALL :{TINYFONT}{WHITE}{NUM}%
|
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
|
||||||
STR_PERCENT_FULL :{WHITE}{NUM}%
|
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
|
||||||
|
STR_PERCENT_DOWN_SMALL :{TINYFONT}{WHITE}{NUM}%{DOWNARROW}
|
||||||
|
STR_PERCENT_DOWN :{WHITE}{NUM}%{DOWNARROW}
|
||||||
|
STR_PERCENT_UP_DOWN_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}{DOWNARROW}
|
||||||
|
STR_PERCENT_UP_DOWN :{WHITE}{NUM}%{UPARROW}{DOWNARROW}
|
||||||
|
|
||||||
##### Mass Order
|
##### Mass Order
|
||||||
STR_GROUP_NAME_FORMAT :Group {COMMA}
|
STR_GROUP_NAME_FORMAT :Group {COMMA}
|
||||||
|
|
|
@ -644,18 +644,22 @@ void ShowFeederIncomeAnimation(int x, int y, int z, Money cost)
|
||||||
AddTextEffect(STR_FEEDER, pt.x, pt.y, 0x250, TE_RISING);
|
AddTextEffect(STR_FEEDER, pt.x, pt.y, 0x250, TE_RISING);
|
||||||
}
|
}
|
||||||
|
|
||||||
TextEffectID ShowFillingPercent(int x, int y, int z, uint8 percent)
|
TextEffectID ShowFillingPercent(int x, int y, int z, uint8 percent, StringID string)
|
||||||
{
|
{
|
||||||
Point pt = RemapCoords(x, y, z);
|
Point pt = RemapCoords(x, y, z);
|
||||||
|
|
||||||
|
assert(string != STR_NULL);
|
||||||
|
|
||||||
SetDParam(0, percent);
|
SetDParam(0, percent);
|
||||||
return AddTextEffect(STR_PERCENT_FULL, pt.x, pt.y, 0xFFFF, TE_STATIC);
|
return AddTextEffect(string, pt.x, pt.y, 0xFFFF, TE_STATIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateFillingPercent(TextEffectID te_id, uint8 percent)
|
void UpdateFillingPercent(TextEffectID te_id, uint8 percent, StringID string)
|
||||||
{
|
{
|
||||||
|
assert(string != STR_NULL);
|
||||||
|
|
||||||
SetDParam(0, percent);
|
SetDParam(0, percent);
|
||||||
UpdateTextEffect(te_id, STR_PERCENT_FULL);
|
UpdateTextEffect(te_id, string);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HideFillingPercent(TextEffectID te_id)
|
void HideFillingPercent(TextEffectID te_id)
|
||||||
|
|
|
@ -28,8 +28,8 @@ void CDECL AddTextMessage(uint16 color, uint8 duration, const char *message, ...
|
||||||
void UndrawTextMessage();
|
void UndrawTextMessage();
|
||||||
|
|
||||||
/* misc_gui.cpp */
|
/* misc_gui.cpp */
|
||||||
TextEffectID ShowFillingPercent(int x, int y, int z, uint8 percent);
|
TextEffectID ShowFillingPercent(int x, int y, int z, uint8 percent, StringID color);
|
||||||
void UpdateFillingPercent(TextEffectID te_id, uint8 percent);
|
void UpdateFillingPercent(TextEffectID te_id, uint8 percent, StringID color);
|
||||||
void HideFillingPercent(TextEffectID te_id);
|
void HideFillingPercent(TextEffectID te_id);
|
||||||
|
|
||||||
#endif /* TEXTEFF_HPP */
|
#endif /* TEXTEFF_HPP */
|
||||||
|
|
|
@ -2271,19 +2271,32 @@ bool IsVehicleInDepot(const Vehicle *v)
|
||||||
/**
|
/**
|
||||||
* Calculates how full a vehicle is.
|
* Calculates how full a vehicle is.
|
||||||
* @param v The Vehicle to check. For trains, use the first engine.
|
* @param v The Vehicle to check. For trains, use the first engine.
|
||||||
|
* @param color The string to show depending on if we are unloading or loading
|
||||||
* @return A percentage of how full the Vehicle is.
|
* @return A percentage of how full the Vehicle is.
|
||||||
*/
|
*/
|
||||||
uint8 CalcPercentVehicleFilled(Vehicle *v)
|
uint8 CalcPercentVehicleFilled(Vehicle *v, StringID *color)
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int max = 0;
|
int max = 0;
|
||||||
|
int cars = 0;
|
||||||
|
int unloading = 0;
|
||||||
|
|
||||||
|
assert(color != NULL);
|
||||||
|
|
||||||
/* Count up max and used */
|
/* Count up max and used */
|
||||||
for (; v != NULL; v = v->next) {
|
for (; v != NULL; v = v->next) {
|
||||||
count += v->cargo.Count();
|
count += v->cargo.Count();
|
||||||
max += v->cargo_cap;
|
max += v->cargo_cap;
|
||||||
|
if (v->cargo_cap != 0) {
|
||||||
|
unloading += HASBIT(v->vehicle_flags, VF_CARGO_UNLOADING) ? 1 : 0;
|
||||||
|
cars++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (unloading == 0) *color = STR_PERCENT_UP;
|
||||||
|
else if (cars == unloading) *color = STR_PERCENT_DOWN;
|
||||||
|
else *color = STR_PERCENT_UP_DOWN;
|
||||||
|
|
||||||
/* Train without capacity */
|
/* Train without capacity */
|
||||||
if (max == 0) return 100;
|
if (max == 0) return 100;
|
||||||
|
|
||||||
|
|
|
@ -505,7 +505,7 @@ void *VehicleFromPos(TileIndex tile, void *data, VehicleFromPosProc *proc);
|
||||||
void *VehicleFromPosXY(int x, int y, void *data, VehicleFromPosProc *proc);
|
void *VehicleFromPosXY(int x, int y, void *data, VehicleFromPosProc *proc);
|
||||||
void CallVehicleTicks();
|
void CallVehicleTicks();
|
||||||
Vehicle *FindVehicleOnTileZ(TileIndex tile, byte z);
|
Vehicle *FindVehicleOnTileZ(TileIndex tile, byte z);
|
||||||
uint8 CalcPercentVehicleFilled(Vehicle *v);
|
uint8 CalcPercentVehicleFilled(Vehicle *v, StringID *color);
|
||||||
|
|
||||||
void InitializeTrains();
|
void InitializeTrains();
|
||||||
byte VehicleRandomBits();
|
byte VehicleRandomBits();
|
||||||
|
|
Loading…
Reference in New Issue