diff options
author | truelight <truelight@openttd.org> | 2005-01-06 22:31:58 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2005-01-06 22:31:58 +0000 |
commit | 63e97754fbf907cfefd277087bfbac5e0d4434e8 (patch) | |
tree | 254702245ba43d006f4823111d0c2c592fb701ca /town_cmd.c | |
parent | a4111363c0def2ccec66ef28b5e8169e8a2df2f0 (diff) | |
download | openttd-63e97754fbf907cfefd277087bfbac5e0d4434e8.tar.xz |
(svn r1407) -Codechange: changed a lot around _stations, _vehicles, _towns and _industries
(in prepare of dynamic arrays):
- DEREF_XXX is changed into GetXXX
- All direct call are directed via GetXXX
- struct Industry has now an index-field
- ENUM'd some stuff
- Replaced home built loops with FOR_ALL_XXX
- Added _stations_size, _vehicles_size, ... which gives the length of the
array (which will be dynamic in the near future)
- Changed lengtof(XXX) to _XXX_size (e.g. _stations_size)
- Removed all endof(XXX) (because mostly it was part of a FOR_ALL_XXX)
- Made the sort-functions of all 4 dynamic
- Made all 4 Initialize functions more of the same
- Some minor tab-fixing and stuff
(tnx to Tron for proof-reading my 100kb patch ;))
Note for all: please do NOT directly call _stations, _vehicles, _towns and
_industries, but use the right wrapper to access them. Thank you.
Ps: please also do not use 'v++', where v is of type Vehicle *.
Diffstat (limited to 'town_cmd.c')
-rw-r--r-- | town_cmd.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/town_cmd.c b/town_cmd.c index 116b9d1f5..b7a142ad0 100644 --- a/town_cmd.c +++ b/town_cmd.c @@ -401,8 +401,8 @@ void OnTick_Town() return; i = _cur_town_ctr; - t = DEREF_TOWN(i); - if (++i == lengthof(_towns)) i = 0; + t = GetTown(i); + if (++i == _towns_size) i = 0; _cur_town_ctr = i; if (t->xy != 0) @@ -1354,7 +1354,7 @@ static void ClearTownHouse(Town *t, uint tile) { int32 CmdRenameTown(int x, int y, uint32 flags, uint32 p1, uint32 p2) { StringID str; - Town *t = DEREF_TOWN(p1); + Town *t = GetTown(p1); str = AllocateNameUnique((byte*)_decode_parameters, 4); if (str == 0) @@ -1602,7 +1602,7 @@ int32 CmdDoTownAction(int x, int y, uint32 flags, uint32 p1, uint32 p2) cost = (_price.build_industry >> 8) * _town_action_costs[p2]; if (flags & DC_EXEC) { - _town_action_proc[p2](DEREF_TOWN(p1), p2); + _town_action_proc[p2](GetTown(p1), p2); InvalidateWindow(WC_TOWN_AUTHORITY, p1); } @@ -1817,11 +1817,14 @@ void TownsMonthlyLoop() void InitializeTowns() { Subsidy *s; + Town *t; int i; - memset(_towns, 0, sizeof(_towns)); - for(i=0; i!=lengthof(_towns); i++) - _towns[i].index = i; + memset(_towns, 0, sizeof(_towns[0]) * _towns_size); + + i = 0; + FOR_ALL_TOWNS(t) + t->index = i++; memset(_subsidies, 0, sizeof(_subsidies)); for (s=_subsidies; s != endof(_subsidies); s++) @@ -1908,9 +1911,11 @@ static void Save_TOWN() { Town *t; - FOR_ALL_TOWNS(t) if (t->xy != 0) { - SlSetArrayIndex(t->index); - SlObject(t, _town_desc); + FOR_ALL_TOWNS(t) { + if (t->xy != 0) { + SlSetArrayIndex(t->index); + SlObject(t, _town_desc); + } } } @@ -1918,7 +1923,8 @@ static void Load_TOWN() { int index; while ((index = SlIterateArray()) != -1) { - Town *t = DEREF_TOWN(index); + Town *t = GetTown(index); + SlObject(t, _town_desc); if (index > _total_towns) _total_towns = index; } |