2 * This file is part of NumptyPhysics
3 * Copyright (C) 2008 Tim Edmonds
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation; either version 3 of the
8 * License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
24 #define WORLD_WIDTH 800
25 #define WORLD_HEIGHT 480
26 #define PIXELS_PER_METREf 10.0f
27 #define GRAVITY_FUDGEf 5.0f
28 #define CLOSED_SHAPE_THREHOLDf 0.4f
29 #define SIMPLIFY_THRESHOLDf 1.0f //PIXELs //(1.0/PIXELS_PER_METREf)
30 #define MULTI_VERTEX_LIMIT 64
32 #define ITERATION_RATE 60 //fps
33 #define SOLVER_ITERATIONS 10
34 #define MIN_RENDER_RATE 10 //fps
35 #define MAX_RENDER_RATE ITERATION_RATE //fps
36 #define AVG_RENDER_RATE ((MIN_RENDER_RATE+MAX_RENDER_RATE)/2)
38 #ifdef USE_HILDON //maemo
39 # define JOINT_TOLERANCE 4.0f //PIXELs
40 # define SELECT_TOLERANCE 8.0f //PIXELS_PER_METREf)
41 # define CLICK_TOLERANCE 16 //PIXELs
43 # define JOINT_TOLERANCE 4.0f //PIXELs
44 # define SELECT_TOLERANCE 29.0f //PIXELS_PER_METREf)
45 # define CLICK_TOLERANCE 4 //PIXELs
48 #define ITERATION_TIMESTEPf (1.0f / (float)ITERATION_RATE)
50 #define HIDE_STEPS (AVG_RENDER_RATE*4)
53 #ifndef INSTALL_BASE_PATH
54 # define INSTALL_BASE_PATH "/usr/share/numptyphysics"
56 #define DEFAULT_LEVEL_PATH INSTALL_BASE_PATH
57 #define DEFAULT_RESOURCE_PATH DEFAULT_LEVEL_PATH
58 #ifndef USER_BASE_PATH
59 # ifdef USE_HILDON //maemo
60 # define USER_BASE_PATH "MyDocs/.games/NumptyPhysics"
63 # define USER_BASE_PATH ".\\data"
65 # define USER_BASE_PATH ".numptyphysics"
69 #define USER_LEVEL_PATH USER_BASE_PATH
71 #define DEMO_TEMP_FILE "/tmp/demo.nph"
72 #define HTTP_TEMP_FILE "/tmp/http.nph"
73 #define SEND_TEMP_FILE "/tmp/mailto:numptyphysics@gmail.com.nph"
75 #define ICON_SCALE_FACTOR 4
79 extern Rect FULLSCREEN_RECT
;
80 extern const Rect BOUNDS_RECT
;
81 extern int SCREEN_WIDTH
;
82 extern int SCREEN_HEIGHT
;
83 extern const int brushColours
[];
84 extern const int NUM_BRUSHES
;
86 #define YELLOW_BRUSH 1
87 #define DEFAULT_BRUSH 2
94 static const std::string
& userDataDir()
96 static const std::string d
= std::string(getenv("HOME")) + Os::pathSep
+ USER_BASE_PATH
;
99 static const std::string
& planetRoot()
101 static const std::string
d("http://xyz/planet.cgi");
104 static std::string
findFile( const std::string
& name
);