Skip to content
Permalink
Browse files

fix 64 bit opengl build in launcher not working

  • Loading branch information...
UnknownShadow200 committed Mar 12, 2019
1 parent bb110a1 commit 97a3d1bd651b9054310e6ebf18b0810cd0df655b
Showing with 173 additions and 184 deletions.
  1. +2 −2 src/BlockPhysics.c
  2. +15 −15 src/Builder.c
  3. +1 −1 src/Entity.c
  4. +4 −4 src/EntityComponents.c
  5. +28 −28 src/EnvRenderer.c
  6. +16 −16 src/Formats.c
  7. +1 −1 src/Game.c
  8. +1 −1 src/InputHandler.c
  9. +1 −1 src/LWeb.c
  10. +7 −7 src/Lighting.c
  11. +4 −4 src/MapRenderer.c
  12. +10 −10 src/Menus.c
  13. +5 −5 src/Particle.c
  14. +2 −2 src/Picking.c
  15. +1 −1 src/String.c
  16. +56 −69 src/World.c
  17. +19 −17 src/World.h
@@ -131,8 +131,8 @@ static void Physics_ActivateNeighbours(int x, int y, int z, int index) {

static bool Physics_IsEdgeWater(int x, int y, int z) {
return
(Env_EdgeBlock == BLOCK_WATER || Env_EdgeBlock == BLOCK_STILL_WATER)
&& (y >= Env_SidesHeight && y < Env_EdgeHeight)
(Env.EdgeBlock == BLOCK_WATER || Env.EdgeBlock == BLOCK_STILL_WATER)
&& (y >= Env_SidesHeight && y < Env.EdgeHeight)
&& (x == 0 || z == 0 || x == World.MaxX || z == World.MaxZ);
}

@@ -538,17 +538,17 @@ static PackedCol Normal_LightCol(int x, int y, int z, Face face, BlockID block)

switch (face) {
case FACE_XMIN:
return x < offset ? Env_SunXSide : Lighting_Col_XSide_Fast(x - offset, y, z);
return x < offset ? Env.SunXSide : Lighting_Col_XSide_Fast(x - offset, y, z);
case FACE_XMAX:
return x > (World.MaxX - offset) ? Env_SunXSide : Lighting_Col_XSide_Fast(x + offset, y, z);
return x > (World.MaxX - offset) ? Env.SunXSide : Lighting_Col_XSide_Fast(x + offset, y, z);
case FACE_ZMIN:
return z < offset ? Env_SunZSide : Lighting_Col_ZSide_Fast(x, y, z - offset);
return z < offset ? Env.SunZSide : Lighting_Col_ZSide_Fast(x, y, z - offset);
case FACE_ZMAX:
return z > (World.MaxZ - offset) ? Env_SunZSide : Lighting_Col_ZSide_Fast(x, y, z + offset);
return z > (World.MaxZ - offset) ? Env.SunZSide : Lighting_Col_ZSide_Fast(x, y, z + offset);
case FACE_YMIN:
return y <= 0 ? Env_SunYMin : Lighting_Col_YMin_Fast(x, y - offset, z);
return y <= 0 ? Env.SunYMin : Lighting_Col_YMin_Fast(x, y - offset, z);
case FACE_YMAX:
return y >= World.MaxY ? Env_SunCol : Lighting_Col_YMax_Fast(x, (y + 1) - offset, z);
return y >= World.MaxY ? Env.SunCol : Lighting_Col_YMax_Fast(x, (y + 1) - offset, z);
}
return invalid; /* should never happen */
}
@@ -675,7 +675,7 @@ static void NormalBuilder_RenderBlock(int index) {
part = &Builder_Parts[baseOffset + Atlas1D_Index(loc)];

col = fullBright ? white :
Builder_X >= offset ? Lighting_Col_XSide_Fast(Builder_X - offset, Builder_Y, Builder_Z) : Env_SunXSide;
Builder_X >= offset ? Lighting_Col_XSide_Fast(Builder_X - offset, Builder_Y, Builder_Z) : Env.SunXSide;
Drawer_XMin(count_XMin, col, loc, &part->fVertices[FACE_XMIN]);
}

@@ -685,7 +685,7 @@ static void NormalBuilder_RenderBlock(int index) {
part = &Builder_Parts[baseOffset + Atlas1D_Index(loc)];

col = fullBright ? white :
Builder_X <= (World.MaxX - offset) ? Lighting_Col_XSide_Fast(Builder_X + offset, Builder_Y, Builder_Z) : Env_SunXSide;
Builder_X <= (World.MaxX - offset) ? Lighting_Col_XSide_Fast(Builder_X + offset, Builder_Y, Builder_Z) : Env.SunXSide;
Drawer_XMax(count_XMax, col, loc, &part->fVertices[FACE_XMAX]);
}

@@ -695,7 +695,7 @@ static void NormalBuilder_RenderBlock(int index) {
part = &Builder_Parts[baseOffset + Atlas1D_Index(loc)];

col = fullBright ? white :
Builder_Z >= offset ? Lighting_Col_ZSide_Fast(Builder_X, Builder_Y, Builder_Z - offset) : Env_SunZSide;
Builder_Z >= offset ? Lighting_Col_ZSide_Fast(Builder_X, Builder_Y, Builder_Z - offset) : Env.SunZSide;
Drawer_ZMin(count_ZMin, col, loc, &part->fVertices[FACE_ZMIN]);
}

@@ -705,7 +705,7 @@ static void NormalBuilder_RenderBlock(int index) {
part = &Builder_Parts[baseOffset + Atlas1D_Index(loc)];

col = fullBright ? white :
Builder_Z <= (World.MaxZ - offset) ? Lighting_Col_ZSide_Fast(Builder_X, Builder_Y, Builder_Z + offset) : Env_SunZSide;
Builder_Z <= (World.MaxZ - offset) ? Lighting_Col_ZSide_Fast(Builder_X, Builder_Y, Builder_Z + offset) : Env.SunZSide;
Drawer_ZMax(count_ZMax, col, loc, &part->fVertices[FACE_ZMAX]);
}

@@ -1221,10 +1221,10 @@ static void Adv_PreStretchTiles(int x1, int y1, int z1) {
adv_bitFlags = Builder_BitFlags;

for (i = 0; i <= 4; i++) {
adv_lerp[i] = PackedCol_Lerp(Env_ShadowCol, Env_SunCol, i / 4.0f);
adv_lerpX[i] = PackedCol_Lerp(Env_ShadowXSide, Env_SunXSide, i / 4.0f);
adv_lerpZ[i] = PackedCol_Lerp(Env_ShadowZSide, Env_SunZSide, i / 4.0f);
adv_lerpY[i] = PackedCol_Lerp(Env_ShadowYMin, Env_SunYMin, i / 4.0f);
adv_lerp[i] = PackedCol_Lerp(Env.ShadowCol, Env.SunCol, i / 4.0f);
adv_lerpX[i] = PackedCol_Lerp(Env.ShadowXSide, Env.SunXSide, i / 4.0f);
adv_lerpZ[i] = PackedCol_Lerp(Env.ShadowZSide, Env.SunZSide, i / 4.0f);
adv_lerpY[i] = PackedCol_Lerp(Env.ShadowYMin, Env.SunYMin, i / 4.0f);
}
}

@@ -1263,5 +1263,5 @@ void Builder_Init(void) {

void Builder_OnNewMapLoaded(void) {
Builder_SidesLevel = max(0, Env_SidesHeight);
Builder_EdgeLevel = max(0, Env_EdgeHeight);
Builder_EdgeLevel = max(0, Env.EdgeHeight);
}
@@ -63,7 +63,7 @@ void LocationUpdate_MakePosAndOri(struct LocationUpdate* update, Vector3 pos, fl
static PackedCol Entity_GetCol(struct Entity* e) {
Vector3 eyePos = Entity_GetEyePosition(e);
Vector3I pos; Vector3I_Floor(&pos, &eyePos);
return World_Contains(pos.X, pos.Y, pos.Z) ? Lighting_Col(pos.X, pos.Y, pos.Z) : Env_SunCol;
return World_Contains(pos.X, pos.Y, pos.Z) ? Lighting_Col(pos.X, pos.Y, pos.Z) : Env.SunCol;
}

void Entity_Init(struct Entity* e) {
@@ -570,10 +570,10 @@ static bool ShadowComponent_GetBlocks(struct Entity* e, int x, int y, int z, str
for (i = 0; y >= 0 && i < 4; y--) {
if (!outside) {
block = World_GetBlock(x, y, z);
} else if (y == Env_EdgeHeight - 1) {
block = Blocks.Draw[Env_EdgeBlock] == DRAW_GAS ? BLOCK_AIR : BLOCK_BEDROCK;
} else if (y == Env.EdgeHeight - 1) {
block = Blocks.Draw[Env.EdgeBlock] == DRAW_GAS ? BLOCK_AIR : BLOCK_BEDROCK;
} else if (y == Env_SidesHeight - 1) {
block = Blocks.Draw[Env_SidesBlock] == DRAW_GAS ? BLOCK_AIR : BLOCK_BEDROCK;
block = Blocks.Draw[Env.SidesBlock] == DRAW_GAS ? BLOCK_AIR : BLOCK_BEDROCK;
} else {
block = BLOCK_AIR;
}
@@ -593,7 +593,7 @@ static bool ShadowComponent_GetBlocks(struct Entity* e, int x, int y, int z, str
}

if (i < 4) {
cur->Block = Env_EdgeBlock; cur->Y = 0.0f;
cur->Block = Env.EdgeBlock; cur->Y = 0.0f;
ShadowComponent_CalcAlpha(posY, cur);
i++; cur++;
}
@@ -61,7 +61,7 @@ static void EnvRenderer_CalcFog(float* density, PackedCol* col) {
*density = 0.0f;
/* Blend fog and sky together */
blend = EnvRenderer_BlendFactor((float)Game_ViewDistance);
*col = PackedCol_Lerp(Env_FogCol, Env_SkyCol, blend);
*col = PackedCol_Lerp(Env.FogCol, Env.SkyCol, blend);
}
}

@@ -88,7 +88,7 @@ static void EnvRenderer_UpdateFogNormal(float fogDensity, PackedCol fogCol) {
if (fogDensity != 0.0f) {
Gfx_SetFogMode(FOG_EXP);
Gfx_SetFogDensity(fogDensity);
} else if (Env_ExpFog) {
} else if (Env.ExpFog) {
Gfx_SetFogMode(FOG_EXP);
/* f = 1-z/end f = e^(-dz)
solve for f = 0.01 gives:
@@ -132,8 +132,8 @@ void EnvRenderer_RenderClouds(double deltaTime) {
float offset;
struct Matrix m;

if (!clouds_vb || Env_CloudsHeight < -2000) return;
offset = (float)(Game.Time / 2048.0f * 0.6f * Env_CloudsSpeed);
if (!clouds_vb || Env.CloudsHeight < -2000) return;
offset = (float)(Game.Time / 2048.0f * 0.6f * Env.CloudsSpeed);

m = Matrix_Identity; m.Row3.X = offset; /* translate X axis */
Gfx_LoadMatrix(MATRIX_TEXTURE, &m);
@@ -157,7 +157,7 @@ static void EnvRenderer_DrawCloudsY(int x1, int z1, int x2, int z2, int y, Verte
float offset = (float)Math_CeilDiv(-x1, 2048);

VertexP3fT2fC4b v;
v.Y = (float)y + 0.1f; v.Col = Env_CloudsCol;
v.Y = (float)y + 0.1f; v.Col = Env.CloudsCol;

for (; x1 < endX; x1 += axisSize) {
x2 = x1 + axisSize;
@@ -197,7 +197,7 @@ static void EnvRenderer_UpdateClouds(void) {
ptr = Mem_Alloc(clouds_vertices, sizeof(VertexP3fT2fC4b), "temp clouds vertices");
}

EnvRenderer_DrawCloudsY(x1, z1, x2, z2, Env_CloudsHeight, ptr);
EnvRenderer_DrawCloudsY(x1, z1, x2, z2, Env.CloudsHeight, ptr);
clouds_vb = Gfx_CreateVb(ptr, VERTEX_FORMAT_P3FT2FC4B, clouds_vertices);

if (clouds_vertices > ENV_SMALL_VERTICES) Mem_Free(ptr);
@@ -238,7 +238,7 @@ void EnvRenderer_RenderSky(double deltaTime) {
static void EnvRenderer_DrawSkyY(int x1, int z1, int x2, int z2, int y, VertexP3fC4b* vertices) {
int endX = x2, endZ = z2, startZ = z1, axisSize = EnvRenderer_AxisSize();
VertexP3fC4b v;
v.Y = (float)y; v.Col = Env_SkyCol;
v.Y = (float)y; v.Col = Env.SkyCol;

for (; x1 < endX; x1 += axisSize) {
x2 = x1 + axisSize;
@@ -276,7 +276,7 @@ static void EnvRenderer_UpdateSky(void) {
ptr = Mem_Alloc(sky_vertices, sizeof(VertexP3fC4b), "temp sky vertices");
}

height = max((World.Height + 2), Env_CloudsHeight) + 6;
height = max((World.Height + 2), Env.CloudsHeight) + 6;
EnvRenderer_DrawSkyY(x1, z1, x2, z2, height, ptr);
sky_vb = Gfx_CreateVb(ptr, VERTEX_FORMAT_P3FC4B, sky_vertices);

@@ -304,8 +304,8 @@ void EnvRenderer_RenderSkybox(double deltaTime) {
/* Base skybox rotation */
m = Matrix_Identity;
rotTime = (float)(Game.Time * 2 * MATH_PI); /* So speed of 1 rotates whole skybox every second */
Matrix_RotateY(&rotY, Env_SkyboxHorSpeed * rotTime); Matrix_MulBy(&m, &rotY);
Matrix_RotateX(&rotX, Env_SkyboxVerSpeed * rotTime); Matrix_MulBy(&m, &rotX);
Matrix_RotateY(&rotY, Env.SkyboxHorSpeed * rotTime); Matrix_MulBy(&m, &rotY);
Matrix_RotateX(&rotX, Env.SkyboxVerSpeed * rotTime); Matrix_MulBy(&m, &rotX);

/* Rotate around camera */
pos = Camera.CurrentPos;
@@ -349,7 +349,7 @@ static void EnvRenderer_UpdateSkybox(void) {
Gfx_DeleteVb(&skybox_vb);
if (EnvRenderer_Minimal) return;

for (i = 0; i < SKYBOX_COUNT; i++) { vertices[i].Col = Env_SkyboxCol; }
for (i = 0; i < SKYBOX_COUNT; i++) { vertices[i].Col = Env.SkyboxCol; }
skybox_vb = Gfx_CreateVb(vertices, VERTEX_FORMAT_P3FT2FC4B, SKYBOX_COUNT);
}

@@ -406,7 +406,7 @@ static int EnvRenderer_CalcRainHeightAt(int x, int maxY, int z, int hIndex) {
static float EnvRenderer_RainHeight(int x, int z) {
int hIndex, height;
int y;
if (!World_ContainsXZ(x, z)) return (float)Env_EdgeHeight;
if (!World_ContainsXZ(x, z)) return (float)Env.EdgeHeight;

hIndex = Weather_Pack(x, z);
height = Weather_Heightmap[hIndex];
@@ -441,7 +441,7 @@ void EnvRenderer_OnBlockChanged(int x, int y, int z, BlockID oldBlock, BlockID n
static float EnvRenderer_RainAlphaAt(float x) {
/* Wolfram Alpha: fit {0,178},{1,169},{4,147},{9,114},{16,59},{25,9} */
float falloff = 0.05f * x * x - 7 * x;
return 178 + falloff * Env_WeatherFade;
return 178 + falloff * Env.WeatherFade;
}

void EnvRenderer_RenderWeather(double deltaTime) {
@@ -457,7 +457,7 @@ void EnvRenderer_RenderWeather(double deltaTime) {
float worldV, v1, v2;
float x1,y1,z1, x2,y2,z2;

weather = Env_Weather;
weather = Env.Weather;
if (weather == WEATHER_SUNNY) return;
if (!Weather_Heightmap) EnvRenderer_InitWeatherHeightmap();
Gfx_BindTexture(weather == WEATHER_RAINY ? rain_tex : snow_tex);
@@ -470,13 +470,13 @@ void EnvRenderer_RenderWeather(double deltaTime) {
pos.Y += 64;
pos.Y = max(World.Height, pos.Y);

speed = (weather == WEATHER_RAINY ? 1.0f : 0.2f) * Env_WeatherSpeed;
speed = (weather == WEATHER_RAINY ? 1.0f : 0.2f) * Env.WeatherSpeed;
vOffset = (float)Game.Time * speed;
particles = weather == WEATHER_RAINY;
weather_accumulator += deltaTime;

ptr = vertices;
v.Col = Env_SunCol;
v.Col = Env.SunCol;

for (dx = -WEATHER_EXTENT; dx <= WEATHER_EXTENT; dx++) {
for (dz = -WEATHER_EXTENT; dz <= WEATHER_EXTENT; dz++) {
@@ -542,7 +542,7 @@ static int sides_vertices, edges_vertices;
static bool sides_fullBright, edges_fullBright;
static TextureLoc edges_lastTexLoc, sides_lastTexLoc;

void EnvRenderer_RenderBorders(BlockID block, GfxResourceID vb, GfxResourceID tex, int count) {
static void EnvRenderer_RenderBorders(BlockID block, GfxResourceID vb, GfxResourceID tex, int count) {
if (!vb) return;

Gfx_SetTexturing(true);
@@ -560,7 +560,7 @@ void EnvRenderer_RenderBorders(BlockID block, GfxResourceID vb, GfxResourceID te
}

void EnvRenderer_RenderMapSides(double delta) {
EnvRenderer_RenderBorders(Env_SidesBlock,
EnvRenderer_RenderBorders(Env.SidesBlock,
sides_vb, sides_tex, sides_vertices);
}

@@ -570,7 +570,7 @@ void EnvRenderer_RenderMapEdges(double delta) {
int yVisible = min(0, Env_SidesHeight);
if (Camera.CurrentPos.Y < yVisible && sides_vb) return;

EnvRenderer_RenderBorders(Env_EdgeBlock,
EnvRenderer_RenderBorders(Env.EdgeBlock,
edges_vb, edges_tex, edges_vertices);
}

@@ -598,8 +598,8 @@ static void EnvRenderer_CalcBorderRects(Rect2D* rects) {
}

static void EnvRenderer_UpdateBorderTextures(void) {
EnvRenderer_MakeBorderTex(&edges_tex, Env_EdgeBlock);
EnvRenderer_MakeBorderTex(&sides_tex, Env_SidesBlock);
EnvRenderer_MakeBorderTex(&edges_tex, Env.EdgeBlock);
EnvRenderer_MakeBorderTex(&sides_tex, Env.SidesBlock);
}

#define Borders_HorOffset(block) (Blocks.RenderMinBB[block].X - Blocks.MinBB[block].X)
@@ -696,7 +696,7 @@ static void EnvRenderer_UpdateMapSides(void) {

if (!World.Blocks || Gfx.LostContext) return;
Gfx_DeleteVb(&sides_vb);
block = Env_SidesBlock;
block = Env.SidesBlock;

if (Blocks.Draw[block] == DRAW_GAS) return;
EnvRenderer_CalcBorderRects(rects);
@@ -719,7 +719,7 @@ static void EnvRenderer_UpdateMapSides(void) {
cur = ptr;

sides_fullBright = Blocks.FullBright[block];
col = sides_fullBright ? white : Env_ShadowCol;
col = sides_fullBright ? white : Env.ShadowCol;
Block_Tint(col, block)

for (i = 0; i < 4; i++) {
@@ -755,7 +755,7 @@ static void EnvRenderer_UpdateMapEdges(void) {

if (!World.Blocks || Gfx.LostContext) return;
Gfx_DeleteVb(&edges_vb);
block = Env_EdgeBlock;
block = Env.EdgeBlock;

if (Blocks.Draw[block] == DRAW_GAS) return;
EnvRenderer_CalcBorderRects(rects);
@@ -773,10 +773,10 @@ static void EnvRenderer_UpdateMapEdges(void) {
cur = ptr;

edges_fullBright = Blocks.FullBright[block];
col = edges_fullBright ? white : Env_SunCol;
col = edges_fullBright ? white : Env.SunCol;
Block_Tint(col, block)

y = (float)Env_EdgeHeight;
y = (float)Env.EdgeHeight;
for (i = 0; i < 4; i++) {
r = rects[i];
EnvRenderer_DrawBorderY(r.X, r.Y, r.X + r.Width, r.Y + r.Height, y, col,
@@ -869,10 +869,10 @@ static void EnvRenderer_ViewDistanceChanged(void* obj) {

static void EnvRenderer_EnvVariableChanged(void* obj, int envVar) {
if (envVar == ENV_VAR_EDGE_BLOCK) {
EnvRenderer_MakeBorderTex(&edges_tex, Env_EdgeBlock);
EnvRenderer_MakeBorderTex(&edges_tex, Env.EdgeBlock);
EnvRenderer_UpdateMapEdges();
} else if (envVar == ENV_VAR_SIDES_BLOCK) {
EnvRenderer_MakeBorderTex(&sides_tex, Env_SidesBlock);
EnvRenderer_MakeBorderTex(&sides_tex, Env.SidesBlock);
EnvRenderer_UpdateMapSides();
} else if (envVar == ENV_VAR_EDGE_HEIGHT || envVar == ENV_VAR_SIDES_OFFSET) {
EnvRenderer_UpdateMapEdges();
Oops, something went wrong.

0 comments on commit 97a3d1b

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.