• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

polserver / polserver / 21541532363

31 Jan 2026 08:14AM UTC coverage: 60.532% (+0.03%) from 60.507%
21541532363

push

github

web-flow
Tidy modernize for loops (#862)

* trigger loop convert

* Automated clang-tidy change: modernize-loop-convert

* fixed refactor

* Automated clang-tidy change: modernize-loop-convert

* compile

* first look through

* fixes and start to use a few ranges

* revert autogenerated file

* compilation fix

* second pass

* renamed loop variable

---------

Co-authored-by: Clang Tidy <clang-tidy@users.noreply.github.com>

164 of 447 new or added lines in 61 files covered. (36.69%)

6 existing lines in 5 files now uncovered.

44377 of 73312 relevant lines covered (60.53%)

499857.83 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

16.35
/pol-core/pol/multi/customhousehelp.cpp
1
/** @file
2
 *
3
 * @par History
4
 * - 2009/09/03 MuadDib:   Relocation of multi related cpp/h
5
 * - 2009/12/02 Turley:    added config.max_tile_id - Tomi
6
 */
7

8

9
#include "../../clib/rawtypes.h"
10
#include "../../clib/stlutil.h"
11
#include "../../plib/systemstate.h"
12
#include "customhouses.h"
13

14

15
namespace Pol::Multi
16
{
17
int BlockIDs[] = {
18
    0x3EE,   // Sandstone
19
    0x709,   // Tan Marble
20
    0x71E,   // Granite
21
    0x721,   // Light Wood
22
    0x738,   // Dark Wood
23
    0x750,   // Light Stone
24
    0x76C,   // Sandstone Brick
25
    0x788,   // Weathered Stone
26
    0x7A3,   // Grey Stone
27
    0x7BA,   // Red
28
    0x35D2,  // Crystal
29
    0x3609,  // Shadow
30
    0x4317,  // Gargish 1 & 2
31
    0x4318   // Gargish 3
32
};
33

34
int StairSeqs[] = {
35
    0x3EF,  // Sandstone
36
    0x70A,  // Tan Marble
37
    0x722,  // Light Wood
38
    0x739,  // Dark Wood
39
    0x751,  // Light Stone
40
    0x76D,  // Sandstone Brick
41
    0x789,  // Weathered Stone
42
    0x7A4   // Grey Stone
43
};
44
//                      N,      W,      S,      E
45
int StairIDs[] = {
46
    0x71F,  0x736,  0x737,
47
    0x749,          // Granite
48
    0x7BB,  0x7BC,  // Red
49
    0x35D4, 0x35D3, 0x35D6,
50
    0x35D5,  // Crystal
51
    0x360B, 0x360A, 0x360D,
52
    0x360C,  // Shadow
53
    0x4360, 0x435E, 0x435F,
54
    0x4361,  // Gargish 1
55
    0x435C, 0x435A, 0x435B,
56
    0x435C,  // Gargish 2
57
    0x4364, 0x4362, 0x4363,
58
    0x4365  // Gargish 3
59
};
60

61
bool CustomHouseDesign::IsStairBlock( u16 id )
×
62
{
63
  id &= Plib::systemstate.config.max_tile_id;
×
64
  int delta = -1;
×
65

66
  for ( unsigned int i = 0; delta < 0 && ( i < ( sizeof BlockIDs ) / ( sizeof( int ) ) ); ++i )
×
67
    delta = ( BlockIDs[i] - id );
×
68

69
  return ( delta == 0 );
×
70
}
71

72
bool CustomHouseDesign::IsStair( u16 id, int& dir )
×
73
{
74
  id &= Plib::systemstate.config.max_tile_id;
×
75
  int delta = -4;
×
76

77
  for ( unsigned int i = 0; delta < -3 && ( i < ( sizeof StairSeqs ) / ( sizeof( int ) ) ); ++i )
×
78
    delta = ( StairSeqs[i] - id );
×
79

80
  if ( delta >= -3 && delta <= 0 )
×
81
  {
82
    dir = -delta;
×
83
    return true;
×
84
  }
85

86
  delta = -1;
×
87

88
  for ( unsigned int i = 0; delta < 0 && ( i < ( sizeof StairIDs ) / ( sizeof( int ) ) ); ++i )
×
89
  {
90
    delta = ( StairIDs[i] - id );
×
91
    dir = i % 4;
×
92
  }
93

94
  return ( delta == 0 );
×
95
}
96

97
bool CustomHouseDesign::DeleteStairs( u16 id, s32 x, s32 y, s8 z )
×
98
{
99
  int floor_num = z_to_custom_house_table( z );
×
100
  if ( floor_num == -1 )
×
101
    return false;
×
102

103
  u32 xidx = x + xoff;
×
104
  u32 yidx = y + yoff;
×
105
  if ( !ValidLocation( xidx, yidx ) )
×
106
    return false;
×
107

108
  if ( IsStairBlock( id ) )
×
109
  {
NEW
110
    for ( const auto& elem : Elements[floor_num].data.at( xidx ).at( yidx ) )
×
111
    {
NEW
112
      if ( elem.z == ( z + 5 ) )
×
113
      {
NEW
114
        id = elem.graphic;
×
NEW
115
        z = elem.z;
×
116
        if ( !IsStairBlock( id ) )
×
117
          break;
×
118
      }
119
    }
120
  }
121

122
  int dir = 0;
×
123

124
  if ( !IsStair( id, dir ) )
×
125
    return false;
×
126

127
  int erase_height = ( ( z - 7 ) % 20 ) / 5;
×
128

129
  int xStart, yStart;
130
  int xInc, yInc;
131

132
  switch ( dir )
×
133
  {
134
  default:
×
135
  case 0:  // North
136
  {
137
    xStart = x;
×
138
    yStart = y + erase_height;
×
139
    xInc = 0;
×
140
    yInc = -1;
×
141
    break;
×
142
  }
143
  case 1:  // West
×
144
  {
145
    xStart = x + erase_height;
×
146
    yStart = y;
×
147
    xInc = -1;
×
148
    yInc = 0;
×
149
    break;
×
150
  }
151
  case 2:  // South
×
152
  {
153
    xStart = x;
×
154
    yStart = y - erase_height;
×
155
    xInc = 0;
×
156
    yInc = 1;
×
157
    break;
×
158
  }
159
  case 3:  // East
×
160
  {
161
    xStart = x - erase_height;
×
162
    yStart = y;
×
163
    xInc = 1;
×
164
    yInc = 0;
×
165
    break;
×
166
  }
167
  }
168

169
  int zStart = z - ( erase_height * 5 );
×
170

171
  for ( int i = 0; i < 4; ++i )
×
172
  {
173
    x = xStart + ( i * xInc );
×
174
    y = yStart + ( i * yInc );
×
175

176
    for ( int j = 0; j <= i; ++j )
×
177
      Erase( x, y, static_cast<u8>( zStart + ( j * 5 ) ), 2 );
×
178

179
    ReplaceDirtFloor( x, y );
×
180
  }
181

182
  return true;
×
183
}
184

185
CustomHouseElements::CustomHouseElements() : data(), height( 0 ), width( 0 ), xoff( 0 ), yoff( 0 )
342✔
186
{
187
}
342✔
188

189
CustomHouseElements::CustomHouseElements( u32 _height, u32 _width, s32 xoffset, s32 yoffset )
×
190
    : height( _height ), width( _width ), xoff( xoffset ), yoff( yoffset )
×
191
{
192
  SetWidth( _width );
×
193
  SetHeight( _height );
×
194
}
×
195
CustomHouseElements::~CustomHouseElements() = default;
342✔
196

197
void CustomHouseElements::SetHeight( u32 _height )
36✔
198
{
199
  height = _height;
36✔
200
  for ( size_t i = 0; i < width; i++ )
324✔
201
    data.at( i ).resize( height );
288✔
202
}
36✔
203

204
void CustomHouseElements::SetWidth( u32 _width )
36✔
205
{
206
  width = _width;
36✔
207
  data.resize( width );
36✔
208
}
36✔
209

210
size_t CustomHouseElements::estimatedSize() const
×
211
{
212
  size_t size = sizeof( CustomHouseElements ) + Clib::memsize( data );
×
NEW
213
  for ( const auto& row : data )
×
214
  {
NEW
215
    size += Clib::memsize( row );
×
NEW
216
    for ( const auto& column : row )
×
217
    {
NEW
218
      size += Clib::memsize( column );
×
219
    }
220
  }
221
  return size;
×
222
}
223

224
HouseFloorZColumn* CustomHouseElements::GetElementsAt( s32 xoffset, s32 yoffset )
×
225
{
226
  u32 x = xoffset + xoff;
×
227
  u32 y = yoffset + yoff;
×
228
  return &( data.at( x ).at( y ) );
×
229
}
230
void CustomHouseElements::AddElement( CUSTOM_HOUSE_ELEMENT& elem )
560✔
231
{
232
  u32 x = elem.xoffset + xoff;
560✔
233
  u32 y = elem.yoffset + yoff;
560✔
234

235
  data.at( x ).at( y ).push_back( elem );
560✔
236
}
560✔
237
}  // namespace Pol::Multi
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc