-
Notifications
You must be signed in to change notification settings - Fork 0
/
Config.h
163 lines (140 loc) · 4.25 KB
/
Config.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
/*
* This file is part of NumptyPhysics
* Copyright (C) 2008 Tim Edmonds
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
*/
#ifndef CONFIG_H
#define CONFIG_H
#include <sstream>
#include "Common.h"
#include "Os.h"
#include "OsSymbian.h"
#define WORLD_WIDTH 800
#define WORLD_HEIGHT 480
#define PIXELS_PER_METREf 10.0f
#define GRAVITY_ACCELf 9.8f // m/s/s
#define GRAVITY_FUDGEf 5.0f
#define CLOSED_SHAPE_THREHOLDf 0.4f
#define SIMPLIFY_THRESHOLDf 1.0f //PIXELs //(1.0/PIXELS_PER_METREf)
#define MULTI_VERTEX_LIMIT 64
#define ITERATION_RATE 60 //fps
#define SOLVER_ITERATIONS 8
#ifdef USE_HILDON //maemo
# define MIN_RENDER_RATE 10 //fps
# define MAX_RENDER_RATE 60 //fps
# define AVG_RENDER_RATE 20 //fps
# define JOINT_TOLERANCE 4.0f //PIXELs
# define SELECT_TOLERANCE 8.0f //PIXELS_PER_METREf)
# define CLICK_TOLERANCE 16 //PIXELs
# define MAEMO_VERSION 5 //4
#else
# define MIN_RENDER_RATE 10 //fps
# define MAX_RENDER_RATE 60 //fps
# define AVG_RENDER_RATE 20 //fps
# define JOINT_TOLERANCE 4.0f //PIXELs
# define SELECT_TOLERANCE 8.0f //PIXELS_PER_METREf)
# define CLICK_TOLERANCE 16 //PIXELs
#ifdef __SYMBIAN32__
#else
# define MIN_RENDER_RATE 10 //fps
# define MAX_RENDER_RATE ITERATION_RATE //fps
# define AVG_RENDER_RATE ((MIN_RENDER_RATE+MAX_RENDER_RATE)/2)
# define JOINT_TOLERANCE 4.0f //PIXELs
# define SELECT_TOLERANCE 5.0f //PIXELS_PER_METREf)
# define CLICK_TOLERANCE 4 //PIXELs
#endif
#endif
#define ITERATION_TIMESTEPf (1.0f / (float)ITERATION_RATE)
#define HIDE_STEPS (AVG_RENDER_RATE*4)
#ifndef INSTALL_BASE_PATH
# if MAEMO_VERSION >= 5
# define INSTALL_BASE_PATH "/opt/numptyphysics"
# else
# ifdef __SYMBIAN32__
# define INSTALL_BASE_PATH getResourcePath()
# else
# define INSTALL_BASE_PATH "/usr/share/numptyphysics"
# endif
# endif
#endif
#define DEFAULT_LEVEL_PATH INSTALL_BASE_PATH
#define DEFAULT_RESOURCE_PATH DEFAULT_LEVEL_PATH
#ifndef USER_BASE_PATH
# ifdef USE_HILDON //maemo
# if MAEMO_VERSION >= 5
# define USER_BASE_PATH "MyDocs/Games/NumptyPhysics"
# else
# define USER_BASE_PATH "MyDocs/.games/NumptyPhysics"
# endif
# else
# ifdef WIN32
# define USER_BASE_PATH ".\\data"
# else
# define USER_BASE_PATH ".numptyphysics"
# endif
# endif
#endif
#define USER_LEVEL_PATH USER_BASE_PATH
#define DEMO_TEMP_FILE "/tmp/demo.nph"
#define HTTP_TEMP_FILE "/tmp/http.nph"
#define SEND_TEMP_FILE "/tmp/mailto:numptyphysics@gmail.com.nph"
#define ICON_SCALE_FACTOR 6
#define VIDEO_FPS 20
#define VIDEO_MAX_LEN 20 //seconds
extern Rect FULLSCREEN_RECT;
extern const Rect BOUNDS_RECT;
extern int SCREEN_WIDTH;
extern int SCREEN_HEIGHT;
extern const int brushColours[];
extern const int NUM_BRUSHES;
#define RED_BRUSH 0
#define YELLOW_BRUSH 1
#define DEFAULT_BRUSH 2
#define DEFAULT_BG 0x303030
#define DEFAULT_FG 0xf8fcf8
#define BUTTON_BG 0x383c38
#define SELECTED_BG 0x704040
#define TL_BORDER 0x909490
#define BR_BORDER 0x182018
#define BUTTON_WIDTH 140
#define BUTTON_HEIGHT 60
#define BUTTON_SPACING 8
#define TAB_WIDTH 160
#define TAB_HEIGHT 40
#define DIALOG_TITLE_HEIGHT 48
#define MENU_COLUMNS 1
#ifdef __SYMBIAN32__
#include "OsSymbian.h"
#endif
class Font;
class Config
{
public:
static const std::string& userDataDir()
{
#ifdef __SYMBIAN32__
static const std::string d = std::string(getSharedResourcePath());
#else
static const std::string d = std::string(getenv("HOME")) + Os::pathSep + USER_BASE_PATH;
#endif
return d;
}
static const std::string& planetRoot()
{
static const std::string d("http://10.10.10.10:8080");
return d;
}
static std::string findFile( const std::string& name );
static Font* font();
};
#endif //CONFIG_H