summaryrefslogtreecommitdiff
path: root/src/simulation
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2012-09-04 00:09:53 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-09-06 23:52:56 (GMT)
commitf8f70a3f770b6cbc1e9c182572317c0968af718b (patch)
tree03e94654817ce2c944bcc75f484313331e2daf9d /src/simulation
parent58fa3dd539ad0ee7ebb44ec68515bdc22956c095 (diff)
downloadpowder-f8f70a3f770b6cbc1e9c182572317c0968af718b.zip
powder-f8f70a3f770b6cbc1e9c182572317c0968af718b.tar.gz
Visual studio compatibility
This removes some inlines when using visual studio to compile, uisng TPT_NO_INLINE. It also fixes many other problems visual studio has with the code
Diffstat (limited to 'src/simulation')
-rw-r--r--src/simulation/Simulation.cpp12
-rw-r--r--src/simulation/Simulation.h6
-rw-r--r--src/simulation/elements/GEL.cpp2
-rw-r--r--src/simulation/elements/SPRK.cpp2
-rw-r--r--src/simulation/tools/AirTool.cpp (renamed from src/simulation/tools/Air.cpp)0
-rw-r--r--src/simulation/tools/GravTool.cpp (renamed from src/simulation/tools/Grav.cpp)0
-rw-r--r--src/simulation/tools/SimTool.h2
7 files changed, 12 insertions, 12 deletions
diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp
index 1c51b2a..e4aa9bd 100644
--- a/src/simulation/Simulation.cpp
+++ b/src/simulation/Simulation.cpp
@@ -1,6 +1,9 @@
//#include <cstdlib>
#include <cmath>
+#include <math.h>
+#if !defined(WIN) || defined(__GNUC__)
#include <strings.h>
+#endif
#include "Config.h"
#include "Simulation.h"
#include "Elements.h"
@@ -1093,6 +1096,7 @@ int Simulation::ToolBrush(int positionX, int positionY, int tool, Brush * cBrush
if(bitmap[(y*sizeX)+x] && (positionX+(x-radiusX) >= 0 && positionY+(y-radiusY) >= 0 && positionX+(x-radiusX) < XRES && positionY+(y-radiusY) < YRES))
Tool(positionX+(x-radiusX), positionY+(y-radiusY), tool, strength);
}
+ return 0;
}
void Simulation::ToolLine(int x1, int y1, int x2, int y2, int tool, Brush * cBrush, float strength)
@@ -1660,7 +1664,7 @@ void *Simulation::transform_save(void *odata, int *size, matrix2d transform, vec
return ndata;
}
-inline void Simulation::orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[])
+TPT_NO_INLINE void Simulation::orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[])
{
resblock1[0] = (block1&0x000000FF);
resblock1[1] = (block1&0x0000FF00)>>8;
@@ -1673,7 +1677,7 @@ inline void Simulation::orbitalparts_get(int block1, int block2, int resblock1[]
resblock2[3] = (block2&0xFF000000)>>24;
}
-inline void Simulation::orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[])
+TPT_NO_INLINE void Simulation::orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[])
{
int block1tmp = 0;
int block2tmp = 0;
@@ -3952,11 +3956,7 @@ killed:
if (!parts[i].vx&&!parts[i].vy)//if its not moving, skip to next particle, movement code it next
continue;
-#if defined(WIN) && !defined(__GNUC__)
- mv = max(fabsf(parts[i].vx), fabsf(parts[i].vy));
-#else
mv = fmaxf(fabsf(parts[i].vx), fabsf(parts[i].vy));
-#endif
if (mv < ISTP)
{
clear_x = x;
diff --git a/src/simulation/Simulation.h b/src/simulation/Simulation.h
index c2b9002..ebf590d 100644
--- a/src/simulation/Simulation.h
+++ b/src/simulation/Simulation.h
@@ -156,7 +156,7 @@ public:
inline int is_wire(int x, int y);
inline int is_wire_off(int x, int y);
inline void set_emap(int x, int y);
- inline int parts_avg(int ci, int ni, int t);
+ TPT_NO_INLINE int parts_avg(int ci, int ni, int t);
void create_arc(int sx, int sy, int dx, int dy, int midpoints, int variance, int type, int flags);
int nearest_part(int ci, int t, int max_d);
void update_particles_i(int start, int inc);
@@ -196,8 +196,8 @@ public:
int GetParticleType(std::string type);
void *transform_save(void *odata, int *size, matrix2d transform, vector2d translate);
- inline void orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]);
- inline void orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]);
+ TPT_NO_INLINE void orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]);
+ TPT_NO_INLINE void orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]);
inline int get_wavelength_bin(int *wm);
inline int get_normal(int pt, int x, int y, float dx, float dy, float *nx, float *ny);
inline int get_normal_interp(int pt, float x0, float y0, float dx, float dy, float *nx, float *ny);
diff --git a/src/simulation/elements/GEL.cpp b/src/simulation/elements/GEL.cpp
index 01fa829..5a139db 100644
--- a/src/simulation/elements/GEL.cpp
+++ b/src/simulation/elements/GEL.cpp
@@ -115,7 +115,7 @@ int Element_GEL::update(UPDATE_FUNC_ARGS)
dy = parts[i].y - parts[r>>8].y;
//Stickness
- if ((dx*dx + dy*dy)>1.5 && (gel || !sim->elements[r&0xFF].Falldown || (fabs(rx)<2 && fabs(ry)<2)))
+ if ((dx*dx + dy*dy)>1.5 && (gel || !sim->elements[r&0xFF].Falldown || (fabs((float)rx)<2 && fabs((float)ry)<2)))
{
float per, nd;
nd = dx*dx + dy*dy - 0.5;
diff --git a/src/simulation/elements/SPRK.cpp b/src/simulation/elements/SPRK.cpp
index b4db3ad..d1cbc17 100644
--- a/src/simulation/elements/SPRK.cpp
+++ b/src/simulation/elements/SPRK.cpp
@@ -121,7 +121,7 @@ int Element_SPRK::update(UPDATE_FUNC_ARGS)
parts[i].life=60;
parts[p].temp=parts[p].life*parts[i].tmp/2.5;
parts[p].tmp2=1;
- parts[p].tmp=atan2(-ry, rx)/M_PI*360;
+ parts[p].tmp=atan2(-ry, (float)rx)/M_PI*360;
parts[i].temp-=parts[i].tmp*2+parts[i].temp/5; // slight self-cooling
if (fabs(sim->pv[y/CELL][x/CELL])!=0.0f)
{
diff --git a/src/simulation/tools/Air.cpp b/src/simulation/tools/AirTool.cpp
index 9fd7f79..9fd7f79 100644
--- a/src/simulation/tools/Air.cpp
+++ b/src/simulation/tools/AirTool.cpp
diff --git a/src/simulation/tools/Grav.cpp b/src/simulation/tools/GravTool.cpp
index 630ba12..630ba12 100644
--- a/src/simulation/tools/Grav.cpp
+++ b/src/simulation/tools/GravTool.cpp
diff --git a/src/simulation/tools/SimTool.h b/src/simulation/tools/SimTool.h
index ed4cbcd..c32ba5b 100644
--- a/src/simulation/tools/SimTool.h
+++ b/src/simulation/tools/SimTool.h
@@ -17,7 +17,7 @@ public:
SimTool();
virtual ~SimTool() {}
- virtual int Perform(Simulation * sim, Particle * cpart, int x, int y, float strength) {}
+ virtual int Perform(Simulation * sim, Particle * cpart, int x, int y, float strength) { return 0; }
};
#endif \ No newline at end of file