Commit a9e1298d authored by Ansgar Burchardt's avatar Ansgar Burchardt

import simutrans 99.18~0.svn1661

parents

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

This diff is collapsed.

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simutrans", "Simutrans.vcproj", "{0621B295-BEB7-4767-82F1-F27995610323}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0621B295-BEB7-4767-82F1-F27995610323}.Debug|Win32.ActiveCfg = Debug|Win32
{0621B295-BEB7-4767-82F1-F27995610323}.Debug|Win32.Build.0 = Debug|Win32
{0621B295-BEB7-4767-82F1-F27995610323}.Release|Win32.ActiveCfg = Release|Win32
{0621B295-BEB7-4767-82F1-F27995610323}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
This diff is collapsed.
This diff is collapsed.
/*
* Copyright (c) 1997 - 2001 Hansjrg Malthaner
*
* This file is part of the Simutrans project and may not be used
* in other projects without written permission of the author.
*/
#ifndef __simbridge_h
#define __simbridge_h
#include "../simtypes.h"
#include "../dataobj/koord.h"
#include "../dataobj/koord3d.h"
#include "../boden/wege/weg.h"
// Hajo: these are needed to build the menu entries
#include "../gui/werkzeug_parameter_waehler.h"
#include "../besch/skin_besch.h"
class bruecke_besch_t;
class karte_t; // Hajo: 22-Nov-01: Added forward declaration
class spieler_t; // Hajo: 22-Nov-01: Added forward declaration
class grund_t;
/**
* Baut Brcken. Brcken sollten nicht direct instanziiert werden
* sondern immer vom brueckenbauer_t erzeugt werden.
*
* Es gibt keine Instanz - nur statische Methoden.
*
* @author V. Meyer
*/
class brueckenbauer_t {
private:
/*
* Grund bestimmen, auf dem die Brcke enden soll.
*
* @author V. Meyer
*/
static koord3d finde_ende(karte_t *welt, koord3d pos, koord zv, const bruecke_besch_t *besch, const char *&msg );
/*
* Brckenendpunkte bei Rampen werden auf flachem Grund gebaut und mssen daher genauer
* auf strende vorhandene Bauten berprft werden.
*
* @author V. Meyer
*/
static bool ist_ende_ok(spieler_t *sp, const grund_t *gr);
brueckenbauer_t() {} // private -> no instance please
public:
/*
* Baut Anfang oder Ende der Brcke.
* (also used for monorail ramps ...)
* @author V. Meyer
*/
static void baue_auffahrt(karte_t *welt, spieler_t *sp, koord3d pos, koord zv, const bruecke_besch_t *besch, const weg_besch_t *weg_besch);
/*
* Baut die Brcke wirklich, vorher sollte alles gerprft sein.
*
* @author V. Meyer
*/
static bool baue_bruecke(karte_t *welt, spieler_t *sp, koord3d pos, koord3d end, koord zv, const bruecke_besch_t *besch, const weg_besch_t *weg_besch);
/**
* Registers a new bridge type
* @author V. Meyer, Hj. Malthaner
*/
static void register_besch(const bruecke_besch_t *besch);
static bool laden_erfolgreich();
static const bruecke_besch_t *gib_besch(const char *name);
/*
* Brckenbau-Funktion - Prototyp passend fr den werkzeugwaehler_t.
* param ist ein Zeiger auf eine Brckenbeshreibung (besch_t).
*
* @author V. Meyer
*/
static int baue(spieler_t *sp, karte_t *welt, koord pos, value_t param);
/*
* Brckenlsch-Funktion
*
* @author V. Meyer
*/
static const char *remove(karte_t *welt, spieler_t *sp, koord3d pos, waytype_t wegtyp);
/**
* Find a matching bridge
* @author prissi
*/
static const bruecke_besch_t *
find_bridge(const waytype_t wtyp, const uint32 min_speed,const uint16 time);
/**
* Fill menu with icons of given waytype
* @author priss
*/
static void fill_menu(werkzeug_parameter_waehler_t *wzw,
const waytype_t wtyp,
const int sound_ok, const int sound_ko, const karte_t *welt);
};
#endif
This diff is collapsed.
/*
* Copyright (c) 1997 - 2002 Hansjrg Malthaner
*
* This file is part of the Simutrans project and may not be used
* in other projects without written permission of the author.
*/
#ifndef fabrikbauer_t_h
#define fabrikbauer_t_h
#include "../tpl/stringhashtable_tpl.h"
#include "../tpl/array_tpl.h"
#include "../dataobj/koord3d.h"
class haus_besch_t;
class ware_besch_t;
class fabrik_besch_t;
class stadt_t;
class karte_t;
class spieler_t;
class fabrik_t;
/**
* Diese Klasse baut Fabriken. Niemals Fabriken selbst instanziiren,
* immer den Fabrikbauer benutzen!
* @author Hj. Malthaner
*/
class fabrikbauer_t
{
private:
/**
* Diese Klasse wird in verteile_industrie bentigt.
* Sie dient dazu, da wir uns merken, bei welcher
* Stadt schon welche Endfabrike gebaut wurde.
* @author V. Meyer
*/
struct stadt_fabrik_t {
const stadt_t *stadt;
const fabrik_besch_t *info;
int operator != (const stadt_fabrik_t &x) const {
return stadt != x.stadt || info != x.info;
}
int operator == (const stadt_fabrik_t &x) const {
return !(*this != x);
}
};
// nedded for crossconnections checks
class fabs_to_crossconnect_t {
public:
fabrik_t *fab;
sint32 demand;
fabs_to_crossconnect_t() { fab = NULL; demand = 0; }
fabs_to_crossconnect_t(fabrik_t *f,sint32 d) { fab = f; demand = d; }
bool operator == (const fabs_to_crossconnect_t& x) const { return fab == x.fab; }
bool operator != (const fabs_to_crossconnect_t& x) const { return fab != x.fab; }
};
static stringhashtable_tpl<const fabrik_besch_t *> table;
static int finde_anzahl_hersteller(const ware_besch_t *ware, uint16 timeline);
static const fabrik_besch_t * finde_hersteller(const ware_besch_t *ware, uint16 timeline);
public:
static void register_besch(fabrik_besch_t *besch);
/**
* Teilt dem Hausbauer mit, dass eine neue Karte geladen oder generiert wird.
* In diesem Fall mssen wir die Liste der Fabrikpositionen neu initialisieren
* @author V. Meyer
*/
static void neue_karte( karte_t * );
/* Create a certain numer of tourist attractions
* @author prissi
*/
static void verteile_tourist(karte_t* welt, int max_number);
/* Create a certain numer of industries
* @author prissi
*/
static void verteile_industrie(karte_t* welt, int max_number, bool in_city);
/**
* Gives a factory description for a factory type
* @author Hj.Malthaner
*/
static const fabrik_besch_t * gib_fabesch(const char *fabtype);
/**
* Gives the factory description table
* @author Hj.Malthaner
*/
static const stringhashtable_tpl<const fabrik_besch_t*>& gib_fabesch() { return table; }
/* returns a random consumer
* @author prissi
*/
static const fabrik_besch_t *get_random_consumer(bool in_city,climate_bits cl, uint16 timeline );
/**
* vorbedingung: pos ist fr fabrikbau geeignet
* @return: Anzahl gebauter Fabriken
* @author Hj.Malthaner
*/
static int baue_hierarchie(koord3d* parent, const fabrik_besch_t* info, int rotate, koord3d* pos, spieler_t* sp);
static fabrik_t* baue_fabrik(karte_t* welt, koord3d* parent, const fabrik_besch_t* info, int rotate, koord3d pos, spieler_t* spieler);
private:
// bauhilfen
static koord3d finde_zufallsbauplatz(karte_t *welt, koord3d pos, int radius, koord groesse,bool on_water, const haus_besch_t *besch);
// check, if we have to rotate the factories before building this tree
static bool can_factory_tree_rotate( const fabrik_besch_t *besch );
};
#endif
This diff is collapsed.
/*
* Copyright (c) 1997 - 2002 Hansjrg Malthaner
*
* This file is part of the Simutrans project and may not be used
* in other projects without written permission of the author.
*/
#ifndef HAUSBAUER_H
#define HAUSBAUER_H