Changeset - r11580:d95a638b75a9
[Not reviewed]
master
0 2 0
peter1138 - 15 years ago 2009-04-05 08:01:36
peter1138@openttd.org
(svn r15956) -Codechange: Enumorize station spec flags.
2 files changed with 10 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/newgrf_station.cpp
Show inline comments
 
@@ -555,13 +555,13 @@ static const SpriteGroup *StationResolve
 

	
 
		default:
 
			cargo = st->goods[cargo_type].cargo.Count();
 
			break;
 
	}
 

	
 
	if (HasBit(statspec->flags, 1)) cargo /= (st->trainst_w + st->trainst_h);
 
	if (HasBit(statspec->flags, SSF_DIV_BY_STATION_SIZE)) cargo /= (st->trainst_w + st->trainst_h);
 
	cargo = min(0xfff, cargo);
 

	
 
	if (cargo > statspec->cargo_threshold) {
 
		if (group->g.real.num_loading > 0) {
 
			set = ((cargo - statspec->cargo_threshold) * group->g.real.num_loading) / (4096 - statspec->cargo_threshold);
 
			return group->g.real.loading[set];
 
@@ -901,13 +901,13 @@ void AnimateStationTile(TileIndex tile)
 
	uint8 frame      = GetStationAnimationFrame(tile);
 
	uint8 num_frames = ss->anim_frames;
 

	
 
	bool frame_set_by_callback = false;
 

	
 
	if (HasBit(ss->callbackmask, CBM_STATION_ANIMATION_NEXT_FRAME)) {
 
		uint32 param = HasBit(ss->flags, 2) ? Random() : 0;
 
		uint32 param = HasBit(ss->flags, SSF_CB141_RANDOM_BITS) ? Random() : 0;
 
		uint16 callback = GetStationCallback(CBID_STATION_ANIM_NEXT_FRAME, param, 0, ss, st, tile);
 

	
 
		if (callback != CALLBACK_FAILED) {
 
			frame_set_by_callback = true;
 

	
 
			switch (callback & 0xFF) {
src/newgrf_station.h
Show inline comments
 
@@ -26,12 +26,20 @@ enum StationClassID {
 
template <> struct EnumPropsT<StationClassID> : MakeEnumPropsT<StationClassID, byte, STAT_CLASS_BEGIN, STAT_CLASS_MAX, STAT_CLASS_MAX> {};
 
typedef TinyEnumT<StationClassID> StationClassIDByte;
 

	
 
/** Allow incrementing of StationClassID variables */
 
DECLARE_POSTFIX_INCREMENT(StationClassID);
 

	
 
enum StationSpecFlags {
 
	SSF_SEPARATE_GROUND,      ///< Use different sprite set for ground sprites.
 
	SSF_DIV_BY_STATION_SIZE,  ///< Divide cargo amount by station size.
 
	SSF_CB141_RANDOM_BITS,    ///< Callback 141 needs random bits.
 
	SSF_CUSTOM_FOUNDATIONS,   ///< Draw custom foundations.
 
	SSF_EXTENDED_FOUNDATIONS, ///< Extended foundation block instead of simple.
 
};
 

	
 
/* Station layout for given dimensions - it is a two-dimensional array
 
 * where index is computed as (x * platforms) + platform. */
 
typedef byte *StationLayout;
 

	
 
struct StationSpec {
 
	const struct GRFFile *grffile; ///< ID of GRF file station belongs to.
0 comments (0 inline, 0 general)