OutRun/src/include/circuit.h

70 lines
1.1 KiB
C++

#include <vector>
#include "../fixed.h"
enum Length
{
L_VERYSHORT = 50,
L_SHORT = 100,
L_MEDIUM = 200,
L_LONG = 400,
L_VERYLONG = 1000
};
enum HillSize
{
H_SMALL = 10,
H_MEDIUM = 20,
H_BIG = 40
};
enum HillType
{
UP_HILL = +1,
DOWN_HILL = -1
};
enum CurveStrength
{
C_EASY = 2,
C_MEDIUM = 4,
C_HARD = 6
};
enum CurveType
{
LEFT_CURVE = -1,
RIGHT_CURVE = +1
};
enum Decoration
{
PALMTREE = 0,
DEADTREE = 1,
OAKTREE = 2
};
void initData( void );
void createCircuit( void );
void createClouds( void );
void projectCircuitFP( void );
void projectCircuitFP( uint16_t index );
void printCircuit( void );
void printCircuit( int i );
void drawCircuitSegment( uint16_t index );
void drawDecoration( uint16_t index );
void drawClouds( int offset );
void freeDecoration( void );
void prepareDecoration( void );
void addStraightLine( Length l );
void addCurve( Length l, CurveStrength s, CurveType t );
void addHill( Length l, HillSize s, HillType t );
fixed_t interpolatePositionX( double currentZ );
fixed_t interpolatePositionY( double currentZ );