for c port fix /tp crash, hotbar scroll not working, projection matrix being stuffed, entity movement looking laggy

This commit is contained in:
UnknownShadow200 2018-04-22 12:53:22 +10:00
parent 102b9f8925
commit bff9d3586a
6 changed files with 14 additions and 7 deletions

View File

@ -228,5 +228,10 @@ namespace OpenTK {
return Row0 == other.Row0 && Row1 == other.Row1 &&
Row2 == other.Row2 && Row3 == other.Row3;
}
public override string ToString() {
return string.Format("Row0={0},\r\n Row1={1},\r\n Row2={2},\r\n Row3={3}]", Row0, Row1, Row2, Row3);
}
}
}

View File

@ -26,6 +26,7 @@ const UInt8* ShadowMode_Names[SHADOW_MODE_COUNT] = { "None", "SnapToBlock", "Cir
*-----------------------------------------------------LocationUpdate------------------------------------------------------*
*#########################################################################################################################*/
Real32 LocationUpdate_Clamp(Real32 degrees) {
if (degrees == MATH_POS_INF) return MATH_POS_INF;
degrees = Math_ModF(degrees, 360.0f);
if (degrees < 0) degrees += 360.0f;
return degrees;

View File

@ -42,7 +42,7 @@
IGameComponent Game_Components[26];
Int32 Game_ComponentsCount;
ScheduledTask Game_Tasks[6];
Int32 Game_TasksCount;
Int32 Game_TasksCount, entTaskI;
UInt8 Game_UsernameBuffer[String_BufferSize(STRING_SIZE)];
extern String Game_Username = String_FromEmptyArray(Game_UsernameBuffer);
@ -61,13 +61,13 @@ void Game_AddComponent(IGameComponent* comp) {
Game_Components[Game_ComponentsCount++] = *comp;
}
ScheduledTask ScheduledTask_Add(Real64 interval, ScheduledTaskCallback callback) {
Int32 ScheduledTask_Add(Real64 interval, ScheduledTaskCallback callback) {
ScheduledTask task = { 0.0, interval, callback };
if (Game_TasksCount == Array_Elems(Game_Tasks)) {
ErrorHandler_Fail("ScheduledTask_Add - hit max count");
}
Game_Tasks[Game_TasksCount++] = task;
return task;
return Game_TasksCount - 1;
}
@ -390,14 +390,13 @@ void Game_LoadGuiOptions(void) {
/* TODO: Handle Arial font not working */
}
ScheduledTask entTask;
void Game_InitScheduledTasks(void) {
#define GAME_DEF_TICKS (1.0 / 20)
#define GAME_NET_TICKS (1.0 / 60)
ScheduledTask_Add(30, AsyncDownloader_PurgeOldEntriesTask);
ScheduledTask_Add(GAME_NET_TICKS, ServerConnection_Tick);
entTask = ScheduledTask_Add(GAME_DEF_TICKS, Entities_Tick);
entTaskI = ScheduledTask_Add(GAME_DEF_TICKS, Entities_Tick);
ScheduledTask_Add(GAME_DEF_TICKS, Particles_Tick);
ScheduledTask_Add(GAME_DEF_TICKS, Animations_Tick);
@ -672,6 +671,7 @@ void Game_RenderFrame(Real64 delta) {
}
Game_DoScheduledTasks(delta);
ScheduledTask entTask = Game_Tasks[entTaskI];
Real32 t = (Real32)(entTask.Accumulator / entTask.Interval);
LocalPlayer_SetInterpPosition(t);

View File

@ -35,5 +35,5 @@ typedef struct ScheduledTask_ {
} ScheduledTask;
typedef void (*ScheduledTaskCallback)(ScheduledTask* task);
ScheduledTask ScheduledTask_Add(Real64 interval, ScheduledTaskCallback callback);
Int32 ScheduledTask_Add(Real64 interval, ScheduledTaskCallback callback);
#endif

View File

@ -257,6 +257,7 @@ void Matrix_PerspectiveFieldOfView(Matrix* result, Real32 fovy, Real32 aspect, R
void Matrix_PerspectiveOffCenter(Matrix* result, Real32 left, Real32 right, Real32 bottom, Real32 top, Real32 zNear, Real32 zFar) {
/* Transposed, source https://msdn.microsoft.com/en-us/library/dd373537(v=vs.85).aspx */
*result = Matrix_Identity;
result->Row3.W = 0.0f;
result->Row0.X = (2.0f * zNear) / (right - left);
result->Row1.Y = (2.0f * zNear) / (top - bottom);

View File

@ -293,7 +293,7 @@ LRESULT CALLBACK Window_Procedure(HWND handle, UINT message, WPARAM wParam, LPAR
break;
case WM_MOUSEWHEEL:
wheel_delta = HIWORD(wParam) / (Real32)WHEEL_DELTA;
wheel_delta = ((short)HIWORD(wParam)) / (Real32)WHEEL_DELTA;
Mouse_SetWheel(Mouse_Wheel + wheel_delta);
return 0;