(svn r557) -newgrf: Rename all 'superset' tokens to 'group' and some other small renamings (pasky and octo).

pull/155/head
darkvater 20 years ago
parent 76341a9173
commit 22f627c8e1

@ -175,7 +175,7 @@ uint32 _engine_refit_masks[256];
struct WagonOverride {
byte *train_id;
int trains;
struct SpriteSuperSet superset;
struct SpriteGroup group;
};
static struct WagonOverrides {
@ -183,7 +183,7 @@ static struct WagonOverrides {
struct WagonOverride *overrides;
} _engine_wagon_overrides[256];
void SetWagonOverrideSprites(byte engine, struct SpriteSuperSet *superset,
void SetWagonOverrideSprites(byte engine, struct SpriteGroup *group,
byte *train_id, int trains)
{
struct WagonOverrides *wos;
@ -195,13 +195,13 @@ void SetWagonOverrideSprites(byte engine, struct SpriteSuperSet *superset,
wos->overrides_count * sizeof(struct WagonOverride));
wo = &wos->overrides[wos->overrides_count - 1];
wo->superset = *superset;
wo->group = *group;
wo->trains = trains;
wo->train_id = malloc(trains);
memcpy(wo->train_id, train_id, trains);
}
static struct SpriteSuperSet *GetWagonOverrideSpriteSet(byte engine, byte overriding_engine)
static struct SpriteGroup *GetWagonOverrideSpriteSet(byte engine, byte overriding_engine)
{
struct WagonOverrides *wos = &_engine_wagon_overrides[engine];
int i;
@ -215,7 +215,7 @@ static struct SpriteSuperSet *GetWagonOverrideSpriteSet(byte engine, byte overri
for (j = 0; j < wo->trains; j++) {
if (wo->train_id[j] == overriding_engine)
return &wo->superset;
return &wo->group;
}
}
return NULL;
@ -227,44 +227,44 @@ byte _engine_original_sprites[256];
// (It isn't and shouldn't be like this in the GRF files since new cargo types
// may appear in future - however it's more convenient to store it like this in
// memory. --pasky)
static struct SpriteSuperSet _engine_custom_sprites[256][NUM_CID];
static struct SpriteGroup _engine_custom_sprites[256][NUM_CID];
void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteSuperSet *superset)
void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteGroup *group)
{
assert(superset->sprites_per_set == 4 || superset->sprites_per_set == 8);
_engine_custom_sprites[engine][cargo] = *superset;
assert(group->sprites_per_set == 4 || group->sprites_per_set == 8);
_engine_custom_sprites[engine][cargo] = *group;
}
int GetCustomEngineSprite(byte engine, uint16 overriding_engine, byte cargo,
byte loaded, byte in_motion, byte direction)
{
struct SpriteSuperSet *superset = &_engine_custom_sprites[engine][cargo];
struct SpriteGroup *group = &_engine_custom_sprites[engine][cargo];
int totalsets, spriteset;
int r;
if (overriding_engine != 0xffff) {
struct SpriteSuperSet *overset;
struct SpriteGroup *overset;
overset = GetWagonOverrideSpriteSet(engine, overriding_engine);
if (overset) superset = overset;
if (overset) group = overset;
}
if (!superset->sprites_per_set && cargo != 29) {
// This superset is empty but perhaps there'll be a default one.
superset = &_engine_custom_sprites[engine][29];
if (!group->sprites_per_set && cargo != 29) {
// This group is empty but perhaps there'll be a default one.
group = &_engine_custom_sprites[engine][29];
}
if (!superset->sprites_per_set) {
// This superset is empty. This function users should therefore
if (!group->sprites_per_set) {
// This group is empty. This function users should therefore
// look up the sprite number in _engine_original_sprites.
return 0;
}
direction %= 8;
if (superset->sprites_per_set == 4)
if (group->sprites_per_set == 4)
direction %= 4;
totalsets = in_motion ? superset->loaded_count : superset->loading_count;
totalsets = in_motion ? group->loaded_count : group->loading_count;
// My aim here is to make it possible to visually determine absolutely
// empty and totally full vehicles. --pasky
@ -281,7 +281,7 @@ int GetCustomEngineSprite(byte engine, uint16 overriding_engine, byte cargo,
spriteset--;
}
r = (in_motion ? superset->loaded[spriteset] : superset->loading[spriteset]) + direction;
r = (in_motion ? group->loaded[spriteset] : group->loading[spriteset]) + direction;
return r;
}

@ -59,12 +59,12 @@ enum {
void StartupEngines();
struct SpriteSuperSet {
struct SpriteGroup {
// XXX: Would anyone ever need more than 16 spritesets? Maybe we should
// use even less, now we take whole 8kb for custom sprites table, oh my!
byte sprites_per_set; // means number of directions - 4 or 8
// Loaded = in motion, loading = not moving
// Each superset contains several spritesets, for various loading stages
// Each group contains several spritesets, for various loading stages
byte loaded_count;
uint16 loaded[16]; // sprite ids
byte loading_count;
@ -83,8 +83,8 @@ extern byte _local_cargo_id_landscape[NUM_CID];
extern uint32 _engine_refit_masks[256];
extern byte _engine_original_sprites[256];
void SetWagonOverrideSprites(byte engine, struct SpriteSuperSet *superset, byte *train_id, int trains);
void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteSuperSet *superset);
void SetWagonOverrideSprites(byte engine, struct SpriteGroup *group, byte *train_id, int trains);
void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteGroup *group);
// loaded is in percents, overriding_engine 0xffff is none
int GetCustomEngineSprite(byte engine, uint16 overriding_engine, byte cargo, byte loaded, byte in_motion, byte direction);
#define GetCustomVehicleSprite(v, direction) \

@ -534,9 +534,9 @@ ignoring:
}
/* A sprite superset contains all sprites of a given vehicle (or multiple
/* A sprite group contains all sprites of a given vehicle (or multiple
* vehicles) when carrying given cargo. It consists of several sprite sets.
* Superset ids are refered as "cargo id"s by TTDPatch documentation,
* Group ids are refered as "cargo id"s by TTDPatch documentation,
* contributing to the global confusion.
*
* A sprite set contains all sprites of a given vehicle carrying given cargo at
@ -551,10 +551,10 @@ static int _spriteset_numents;
static int _spriteset_feature;
static int _spritesset_count;
static struct SpriteSuperSet *_spritesset;
static struct SpriteGroup *_spritesset;
/* Action 0x01 */
static void SpriteNewSet(byte *buf, int len)
static void NewSpriteSet(byte *buf, int len)
{
/* <01> <feature> <num-sets> <num-ent>
*
@ -587,7 +587,7 @@ static void SpriteNewSet(byte *buf, int len)
}
/* Action 0x02 */
static void SpriteNewSuperset(byte *buf, int len)
static void NewSpriteGroup(byte *buf, int len)
{
byte *bufend = buf + len;
@ -609,17 +609,17 @@ static void SpriteNewSuperset(byte *buf, int len)
uint8 setid;
uint8 numloaded;
uint8 numloading;
struct SpriteSuperSet *superset;
struct SpriteGroup *group;
int i;
check_length(len, 5, "SpriteNewSuperset");
check_length(len, 5, "SpriteNewGroup");
feature = buf[1];
setid = buf[2];
numloaded = buf[3];
numloading = buf[4];
if (feature == 4) {
grfmsg(GMS_WARN, "SpriteNewSuperset: Stations unsupported, skipping.");
grfmsg(GMS_WARN, "SpriteNewGroup: Stations unsupported, skipping.");
return;
}
@ -628,9 +628,9 @@ static void SpriteNewSuperset(byte *buf, int len)
// a semi-futile ask because the great Patchman himself says
// this is just buggy. It dereferences last (first) byte of
// a schedule list pointer of the vehicle and if it's 0xff
// it uses superset 01, otherwise it uses superset 00. Now
// it uses group 01, otherwise it uses group 00. Now
// if _you_ understand _that_... We just assume it is never
// 0xff and therefore go for superset 00. --pasky
// 0xff and therefore go for group 00. --pasky
uint8 var = buf[4];
//uint8 shiftnum = buf[5];
//uint8 andmask = buf[6];
@ -638,14 +638,14 @@ static void SpriteNewSuperset(byte *buf, int len)
//uint32 val;
uint16 def;
grfmsg(GMS_WARN, "SpriteNewSuperset(0x81): Unsupported variable %x. Using default cid.", var);
grfmsg(GMS_WARN, "SpriteNewGroup(0x81): Unsupported variable %x. Using default cid.", var);
//val = (0xff << shiftnum) & andmask;
//Go for the default.
if (setid >= _spritesset_count) {
_spritesset_count = setid + 1;
_spritesset = realloc(_spritesset, _spritesset_count * sizeof(struct SpriteSuperSet));
_spritesset = realloc(_spritesset, _spritesset_count * sizeof(struct SpriteGroup));
}
buf += 8 + nvar * 4;
def = grf_load_word(&buf);
@ -653,27 +653,27 @@ static void SpriteNewSuperset(byte *buf, int len)
return;
} else if (numloaded & 0x80) {
grfmsg(GMS_WARN, "SpriteNewSuperset(0x%x): Unsupported special superset.", numloaded);
grfmsg(GMS_WARN, "SpriteNewGroup(0x%x): Unsupported special group.", numloaded);
return;
}
if (!_spriteset_start) {
grfmsg(GMS_WARN, "SpriteNewSuperset: No sprite set to work on! Skipping.");
grfmsg(GMS_WARN, "SpriteNewGroup: No sprite set to work on! Skipping.");
return;
}
if (_spriteset_feature != feature) {
grfmsg(GMS_WARN, "SpriteNewSuperset: Superset feature %x doesn't match set feature %x! Skipping.", feature, _spriteset_feature);
grfmsg(GMS_WARN, "SpriteNewGroup: Group feature %x doesn't match set feature %x! Skipping.", feature, _spriteset_feature);
return;
}
if (setid >= _spritesset_count) {
_spritesset_count = setid + 1;
_spritesset = realloc(_spritesset, _spritesset_count * sizeof(struct SpriteSuperSet));
_spritesset = realloc(_spritesset, _spritesset_count * sizeof(struct SpriteGroup));
}
superset = &_spritesset[setid];
memset(superset, 0, sizeof(struct SpriteSuperSet));
superset->sprites_per_set = _spriteset_numents;
group = &_spritesset[setid];
memset(group, 0, sizeof(struct SpriteGroup));
group->sprites_per_set = _spriteset_numents;
buf += 5;
@ -681,10 +681,10 @@ static void SpriteNewSuperset(byte *buf, int len)
uint16 spriteset_id = grf_load_word(&buf);
if (_spritesset[setid].loaded_count > 16) {
grfmsg(GMS_WARN, "SpriteNewSuperset: More than 16 sprites in superset %x, skipping.", setid);
grfmsg(GMS_WARN, "SpriteNewGroup: More than 16 sprites in group %x, skipping.", setid);
return;
}
superset->loaded[superset->loaded_count++]
group->loaded[group->loaded_count++]
= _spriteset_start + spriteset_id * _spriteset_numents;
}
@ -692,15 +692,15 @@ static void SpriteNewSuperset(byte *buf, int len)
uint16 spriteset_id = grf_load_word(&buf);
if (_spritesset[setid].loading_count > 16) {
grfmsg(GMS_WARN, "SpriteNewSuperset: More than 16 sprites in superset %x, skipping.", setid);
grfmsg(GMS_WARN, "SpriteNewGroup: More than 16 sprites in group %x, skipping.", setid);
return;
}
superset->loading[superset->loading_count++] = _spriteset_start + spriteset_id * _spriteset_numents;
group->loading[group->loading_count++] = _spriteset_start + spriteset_id * _spriteset_numents;
}
}
/* Action 0x03 */
static void VehicleMapSpriteSuperset(byte *buf, int len)
static void NewVehicle_SpriteGroupMapping(byte *buf, int len)
{
/* <03> <feature> <n-id> <ids>... <num-cid> [<cargo-type> <cid>]... <def-cid>
* id-list := [<id>] [id-list]
@ -710,11 +710,11 @@ static void VehicleMapSpriteSuperset(byte *buf, int len)
* B n-id bits 0-6: how many IDs this definition applies to
* bit 7: if set, this is a wagon override definition (see below)
* B ids the IDs for which this definition applies
* B num-cid number of cargo IDs in this definition
* B num-cid number of cargo IDs (sprite group IDs) in this definition
* can be zero, in that case the def-cid is used always
* B cargo-type type of this cargo type (e.g. mail=2, wood=7, see below)
* W cid cargo ID for this type of cargo
* W def-cid default cargo ID */
* W cid cargo ID (sprite group ID) for this type of cargo
* W def-cid default cargo ID (sprite group ID) */
/* TODO: Only trains supported now. */
/* TODO: Multiple cargo support could be useful even for trains/cars -
* cargo id 0xff is used for showing images in the build train list. */
@ -727,14 +727,14 @@ static void VehicleMapSpriteSuperset(byte *buf, int len)
uint8 cidcount;
int c, i;
check_length(len, 7, "VehicleMapSpriteSuperset");
check_length(len, 7, "VehicleMapSpriteGroup");
feature = buf[1];
idcount = buf[2] & 0x7F;
wagover = buf[2] & 0x80;
cidcount = buf[3 + idcount];
if (feature == 4) {
grfmsg(GMS_WARN, "VehicleMapSpriteSuperset: Stations unsupported, skipping.");
grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Stations unsupported, skipping.");
return;
}
@ -743,7 +743,7 @@ static void VehicleMapSpriteSuperset(byte *buf, int len)
// what should we exactly do with that? --pasky
if (!_spriteset_start || !_spritesset) {
grfmsg(GMS_WARN, "VehicleMapSpriteSuperset: No sprite set to work on! Skipping.");
grfmsg(GMS_WARN, "VehicleMapSpriteGroup: No sprite set to work on! Skipping.");
return;
}
@ -758,10 +758,10 @@ static void VehicleMapSpriteSuperset(byte *buf, int len)
for (c = 0; c < cidcount; c++) {
uint8 ctype = grf_load_byte(&bp);
uint16 supersetid = grf_load_word(&bp);
uint16 groupid = grf_load_word(&bp);
if (supersetid >= _spritesset_count) {
grfmsg(GMS_WARN, "VehicleMapSpriteSuperset: Spriteset %x out of range %x, skipping.", supersetid, _spritesset_count);
if (groupid >= _spritesset_count) {
grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x, skipping.", groupid, _spritesset_count);
return;
}
@ -770,9 +770,9 @@ static void VehicleMapSpriteSuperset(byte *buf, int len)
if (wagover) {
// TODO: No multiple cargo types per vehicle yet. --pasky
SetWagonOverrideSprites(engine, &_spritesset[supersetid], last_engines, last_engines_count);
SetWagonOverrideSprites(engine, &_spritesset[groupid], last_engines, last_engines_count);
} else {
SetCustomEngineSprites(engine, ctype, &_spritesset[supersetid]);
SetCustomEngineSprites(engine, ctype, &_spritesset[groupid]);
last_engines[i] = engine;
}
}
@ -780,22 +780,22 @@ static void VehicleMapSpriteSuperset(byte *buf, int len)
{
byte *bp = buf + 4 + idcount + cidcount * 3;
uint16 supersetid = grf_load_word(&bp);
uint16 groupid = grf_load_word(&bp);
for (i = 0; i < idcount; i++) {
uint8 engine = buf[3 + i] + _vehshifts[feature];
// Don't tell me you don't love duplicated code!
if (supersetid >= _spritesset_count) {
grfmsg(GMS_WARN, "VehicleMapSpriteSuperset: Spriteset %x out of range %x, skipping.", supersetid, _spritesset_count);
if (groupid >= _spritesset_count) {
grfmsg(GMS_WARN, "VehicleMapSpriteGroup: Spriteset %x out of range %x, skipping.", groupid, _spritesset_count);
return;
}
if (wagover) {
// TODO: No multiple cargo types per vehicle yet. --pasky
SetWagonOverrideSprites(engine, &_spritesset[supersetid], last_engines, last_engines_count);
SetWagonOverrideSprites(engine, &_spritesset[groupid], last_engines, last_engines_count);
} else {
SetCustomEngineSprites(engine, CID_DEFAULT, &_spritesset[supersetid]);
SetCustomEngineSprites(engine, CID_DEFAULT, &_spritesset[groupid]);
last_engines[i] = engine;
}
}
@ -1304,9 +1304,9 @@ void DecodeSpecialSprite(const char *filename, int num, int spriteid, int stage)
#define NUM_ACTIONS 0xF
static const SpecialSpriteHandler handlers[NUM_ACTIONS] = {
/* 0x0 */ VehicleChangeInfo,
/* 0x1 */ SpriteNewSet,
/* 0x2 */ SpriteNewSuperset,
/* 0x3 */ VehicleMapSpriteSuperset,
/* 0x1 */ NewSpriteSet,
/* 0x2 */ NewSpriteGroup,
/* 0x3 */ NewVehicle_SpriteGroupMapping,
/* 0x4 */ VehicleNewName,
/* 0x5 */ GraphicsNew,
/* 0x6 */ CfgApply,
@ -1341,7 +1341,7 @@ void DecodeSpecialSprite(const char *filename, int num, int spriteid, int stage)
/* XXX: Action 0x03 is temporarily processed together with actions 0x01
* and 0x02 before it is fixed to be reentrant (probably storing the
* superset information in {struct GRFFile}). --pasky */
* group information in {struct GRFFile}). --pasky */
if (stage == 0) {
/* During initialization, actions 0, 3, 4, 5 and 7 are ignored. */

Loading…
Cancel
Save