# HG changeset patch # User celestar # Date 1143796166 0 # Node ID c802170b5dd406b1656bc2ed3809ef55cadccff8 # Parent 5d14492dce3572ab024e2b2b5608916e3b46cadc (svn r4196) -Codechange: Add and make use of an accessor that modifies the size of the Company HQ diff -r 5d14492dce35 -r c802170b5dd4 unmovable_cmd.c --- a/unmovable_cmd.c Fri Mar 31 09:08:02 2006 +0000 +++ b/unmovable_cmd.c Fri Mar 31 09:09:26 2006 +0000 @@ -67,20 +67,13 @@ if (tile == 0) return; - (val = 128, score < 170) || - (val+= 4, score < 350) || - (val+= 4, score < 520) || - (val+= 4, score < 720) || - (val+= 4, true); + (val = 0, score < 170) || + (val++, score < 350) || + (val++, score < 520) || + (val++, score < 720) || + (val++, true); -/* house is already big enough */ - if (val <= _m[tile].m5) - return; - - _m[tile + TileDiffXY(0, 0)].m5 = val; - _m[tile + TileDiffXY(0, 1)].m5 = ++val; - _m[tile + TileDiffXY(1, 0)].m5 = ++val; - _m[tile + TileDiffXY(1, 1)].m5 = ++val; + EnlargeCompanyHQ(tile, val); MarkTileDirtyByTile(tile + TileDiffXY(0, 0)); MarkTileDirtyByTile(tile + TileDiffXY(0, 1)); diff -r 5d14492dce35 -r c802170b5dd4 unmovable_map.h --- a/unmovable_map.h Fri Mar 31 09:08:02 2006 +0000 +++ b/unmovable_map.h Fri Mar 31 09:09:26 2006 +0000 @@ -39,6 +39,17 @@ } +static inline void EnlargeCompanyHQ(TileIndex t, byte size) +{ + if (size <= _m[t].m5 - UNMOVABLE_HQ_NORTH) return; + + _m[t + TileDiffXY(0, 0)].m5 = UNMOVABLE_HQ_NORTH + size * 4; + _m[t + TileDiffXY(0, 1)].m5 = UNMOVABLE_HQ_WEST + size * 4; + _m[t + TileDiffXY(1, 0)].m5 = UNMOVABLE_HQ_EAST + size * 4; + _m[t + TileDiffXY(1, 1)].m5 = UNMOVABLE_HQ_SOUTH + size * 4; +} + + static inline void MakeUnmovable(TileIndex t, UnmovableType u, Owner o) { SetTileType(t, MP_UNMOVABLE);