diff options
| author | jacob1 <jfu614@gmail.com> | 2012-09-04 00:09:53 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-09-06 23:52:56 (GMT) |
| commit | f8f70a3f770b6cbc1e9c182572317c0968af718b (patch) | |
| tree | 03e94654817ce2c944bcc75f484313331e2daf9d /src/simulation | |
| parent | 58fa3dd539ad0ee7ebb44ec68515bdc22956c095 (diff) | |
| download | powder-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.cpp | 12 | ||||
| -rw-r--r-- | src/simulation/Simulation.h | 6 | ||||
| -rw-r--r-- | src/simulation/elements/GEL.cpp | 2 | ||||
| -rw-r--r-- | src/simulation/elements/SPRK.cpp | 2 | ||||
| -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.h | 2 |
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 |
