Merge branch 'accurate' into portable

This commit is contained in:
Clownacy 2019-10-16 15:42:18 +01:00
commit 2faf387c9e

View file

@ -42,7 +42,7 @@
TEXT_SCRIPT gTS; TEXT_SCRIPT gTS;
int gNumberTextScript[4]; int gNumberTextScript[4];
char text[0x100]; char text[4][0x40];
RECT gRect_line = {0, 0, 216, 16}; RECT gRect_line = {0, 0, 216, 16};
@ -229,7 +229,7 @@ BOOL StartTextScript(int no)
{ {
gTS.ypos_line[i] = 16 * i; gTS.ypos_line[i] = 16 * i;
CortBox2(&gRect_line, 0x000000, (SurfaceID)(i + SURFACE_ID_TEXT_LINE1)); CortBox2(&gRect_line, 0x000000, (SurfaceID)(i + SURFACE_ID_TEXT_LINE1));
memset(&text[i * 0x40], 0, 0x40); memset(text[i], 0, sizeof(text[0]));
}*/ }*/
//Find where event starts //Find where event starts
@ -278,7 +278,7 @@ BOOL JumpTextScript(int no)
{ {
gTS.ypos_line[i] = 16 * i; gTS.ypos_line[i] = 16 * i;
CortBox2(&gRect_line, 0x000000, (SurfaceID)(i + SURFACE_ID_TEXT_LINE1)); CortBox2(&gRect_line, 0x000000, (SurfaceID)(i + SURFACE_ID_TEXT_LINE1));
memset(&text[i * 0x40], 0, 0x40); memset(text[i], 0, sizeof(text[0]));
} }
//Find where event starts //Find where event starts
@ -330,7 +330,7 @@ void CheckNewLine()
gTS.mode = 3; gTS.mode = 3;
g_GameFlags |= 4; g_GameFlags |= 4;
CortBox2(&gRect_line, 0, (SurfaceID)(gTS.line % 4 + SURFACE_ID_TEXT_LINE1)); CortBox2(&gRect_line, 0, (SurfaceID)(gTS.line % 4 + SURFACE_ID_TEXT_LINE1));
memset(&text[gTS.line % 4 * 0x40], 0, 0x40); memset(text[gTS.line % 4], 0, sizeof(text[0]));
} }
} }
@ -375,7 +375,7 @@ void SetNumberTextScript(int index)
//Append number to line //Append number to line
PutText2(6 * gTS.p_write, 0, str, RGB(0xFF, 0xFF, 0xFE), (SurfaceID)(gTS.line % 4 + SURFACE_ID_TEXT_LINE1)); PutText2(6 * gTS.p_write, 0, str, RGB(0xFF, 0xFF, 0xFE), (SurfaceID)(gTS.line % 4 + SURFACE_ID_TEXT_LINE1));
strcat(&text[gTS.line % 4 * 0x40], str); strcat(text[gTS.line % 4], str);
//Play sound and reset blinking cursor //Play sound and reset blinking cursor
PlaySoundObject(2, 1); PlaySoundObject(2, 1);
@ -403,7 +403,7 @@ void ClearTextLine()
{ {
gTS.ypos_line[i] = 16 * i; gTS.ypos_line[i] = 16 * i;
CortBox2(&gRect_line, 0x000000, (SurfaceID)(i + SURFACE_ID_TEXT_LINE1)); CortBox2(&gRect_line, 0x000000, (SurfaceID)(i + SURFACE_ID_TEXT_LINE1));
memset(&text[i * 0x40], 0, 0x40); memset(text[i], 0, sizeof(text[0]));
} }
} }
@ -1306,9 +1306,9 @@ int TextScriptProc()
//Print text //Print text
PutText2(0, 0, str, RGB(0xFF, 0xFF, 0xFE), (SurfaceID)(gTS.line % 4 + SURFACE_ID_TEXT_LINE1)); PutText2(0, 0, str, RGB(0xFF, 0xFF, 0xFE), (SurfaceID)(gTS.line % 4 + SURFACE_ID_TEXT_LINE1));
#ifdef FIX_BUGS #ifdef FIX_BUGS
strcpy(&text[gTS.line % 4 * 0x40], str); strcpy(text[gTS.line % 4], str);
#else #else
sprintf(&text[gTS.line % 4 * 0x40], str); // No point to using an sprintf here, and it makes Clang mad sprintf(text[gTS.line % 4], str); // No point to using an sprintf here, and it makes Clang mad
#endif #endif
//Check if should move to next line (prevent a memory overflow, come on guys, this isn't a leftover of pixel trying to make text wrapping) //Check if should move to next line (prevent a memory overflow, come on guys, this isn't a leftover of pixel trying to make text wrapping)
@ -1344,7 +1344,7 @@ int TextScriptProc()
PutText2(6 * gTS.p_write, 0, c, RGB(0xFF, 0xFF, 0xFE), (SurfaceID)(gTS.line % 4 + SURFACE_ID_TEXT_LINE1)); PutText2(6 * gTS.p_write, 0, c, RGB(0xFF, 0xFF, 0xFE), (SurfaceID)(gTS.line % 4 + SURFACE_ID_TEXT_LINE1));
} }
strcat(&text[gTS.line % 4 * 0x40], c); strcat(text[gTS.line % 4], c);
PlaySoundObject(2, 1); PlaySoundObject(2, 1);
gTS.wait_beam = 0; gTS.wait_beam = 0;
@ -1470,6 +1470,6 @@ void RestoreTextScript()
for (int i = 0; i < 4; ++i) for (int i = 0; i < 4; ++i)
{ {
CortBox2(&gRect_line, 0x000000, (SurfaceID)(i + SURFACE_ID_TEXT_LINE1)); CortBox2(&gRect_line, 0x000000, (SurfaceID)(i + SURFACE_ID_TEXT_LINE1));
PutText2(0, 0, &text[i * 0x40], RGB(0xFF, 0xFF, 0xFE), (SurfaceID)(i + SURFACE_ID_TEXT_LINE1)); PutText2(0, 0, text[i], RGB(0xFF, 0xFF, 0xFE), (SurfaceID)(i + SURFACE_ID_TEXT_LINE1));
} }
} }