src/depot_base.h
author truebrain
Sun, 15 Jun 2008 22:37:35 +0000
branchnoai
changeset 10972 986675d19245
parent 10455 22c441f5adf9
permissions -rw-r--r--
(svn r13526) [NoAI] -Fix: some namespace problems and forgotten pre-condition
10249
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
     1
/* $Id$ */
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
     2
10455
22c441f5adf9 (svn r12997) [NoAI] -Sync: with trunk r12895:12996.
rubidium
parents: 10249
diff changeset
     3
/** @file depot_base.h Base for all depots (except hangars) */
10249
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
     4
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
     5
#ifndef DEPOT_BASE_H
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
     6
#define DEPOT_BASE_H
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
     7
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
     8
#include "tile_type.h"
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
     9
#include "depot_type.h"
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    10
#include "oldpool.h"
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    11
#include "town_type.h"
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    12
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    13
DECLARE_OLD_POOL(Depot, Depot, 3, 8000)
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    14
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    15
struct Depot : PoolItem<Depot, DepotID, &_Depot_pool> {
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    16
	TileIndex xy;
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    17
	TownID town_index;
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    18
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    19
	Depot(TileIndex xy = 0) : xy(xy) {}
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    20
	~Depot();
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    21
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    22
	inline bool IsValid() const { return this->xy != 0; }
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    23
};
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    24
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    25
static inline bool IsValidDepotID(DepotID index)
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    26
{
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    27
	return index < GetDepotPoolSize() && GetDepot(index)->IsValid();
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    28
}
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    29
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    30
Depot *GetDepotByTile(TileIndex tile);
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    31
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    32
#define FOR_ALL_DEPOTS_FROM(d, start) for (d = GetDepot(start); d != NULL; d = (d->index + 1U < GetDepotPoolSize()) ? GetDepot(d->index + 1U) : NULL) if (d->IsValid())
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    33
#define FOR_ALL_DEPOTS(d) FOR_ALL_DEPOTS_FROM(d, 0)
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    34
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents:
diff changeset
    35
#endif /* DEPOT_BASE_H */