summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbelugas <belugas@openttd.org>2007-09-13 15:51:50 +0000
committerbelugas <belugas@openttd.org>2007-09-13 15:51:50 +0000
commit1970e657a353cb5a86a4d1f101595039eadf6f29 (patch)
tree17a9367229ce9c85a03880eadd6f4d3e7e425f6c
parentb21093ea8f8a1672263560e82c1b4c8b692c9557 (diff)
downloadopenttd-1970e657a353cb5a86a4d1f101595039eadf6f29.tar.xz
(svn r11094) -Documentation: Add comments on viewport structures and change an obscure variable name to something a little more meaningfull.
Heavily based of frosch's work (FS#1223)
-rw-r--r--src/viewport.cpp35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/viewport.cpp b/src/viewport.cpp
index f52c8b6ed..26af2dfb6 100644
--- a/src/viewport.cpp
+++ b/src/viewport.cpp
@@ -81,20 +81,23 @@ struct ChildScreenSpriteToDraw {
};
struct ParentSpriteToDraw {
- SpriteID image;
- SpriteID pal;
- int32 left;
- int32 top;
+ SpriteID image; ///< sprite to draw
+ SpriteID pal; ///< palette to use
+
+ int32 left; ///< minimal screen X coordinate of sprite (= x + sprite->x_offs), reference point for child sprites
+ int32 top; ///< minimal screen Y coordinate of sprite (= y + sprite->y_offs), reference point for child sprites
int32 right;
int32 bottom;
- int32 xmin;
- int32 ymin;
- int32 xmax;
- int32 ymax;
- ChildScreenSpriteToDraw *child;
- byte unk16;
- byte zmin;
- byte zmax;
+
+ int32 xmin; ///< minimal world X coordinate of bounding box
+ int32 xmax; ///< maximal world X coordinate of bounding box
+ int32 ymin; ///< minimal world Y coordinate of bounding box
+ int32 ymax; ///< maximal world Y coordinate of bounding box
+ byte zmin; ///< minimal world Z coordinate of bounding box
+ byte zmax; ///< maximal world Z coordinate of bounding box
+
+ ChildScreenSpriteToDraw *child; ///< head of child list;
+ bool comparaison_done; ///< Used during sprite sorting: true if sprite has been compared with all other sprites
};
/* Quick hack to know how much memory to reserve when allocating from the spritelist
@@ -551,7 +554,7 @@ void AddSortableSpriteToDraw(SpriteID image, SpriteID pal, int x, int y, int w,
ps->zmin = z;
ps->zmax = z + dz - 1;
- ps->unk16 = 0;
+ ps->comparaison_done = false;
ps->child = NULL;
vd->last_child = &ps->child;
@@ -1130,16 +1133,16 @@ static void ViewportSortParentSprites(ParentSpriteToDraw *psd[])
while (*psd != NULL) {
ParentSpriteToDraw* ps = *psd;
- if (!(ps->unk16 & 1)) {
+ if (!ps->comparaison_done) {
ParentSpriteToDraw** psd2 = psd;
- ps->unk16 |= 1;
+ ps->comparaison_done = true;
while (*++psd2 != NULL) {
ParentSpriteToDraw* ps2 = *psd2;
ParentSpriteToDraw** psd3;
- if (ps2->unk16 & 1) continue;
+ if (ps2->comparaison_done) continue;
/* Decide which comparator to use, based on whether the bounding
* boxes overlap