From 1d656ef7fd8de4f9b99e1b60e490a7603ce12a15 Mon Sep 17 00:00:00 2001 From: qndel Date: Fri, 26 Apr 2019 19:14:03 +0200 Subject: [PATCH] control_talk_last_key bin exact --- Source/control.cpp | 29 ++++++++++++++++------------- Source/control.h | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/Source/control.cpp b/Source/control.cpp index 9d8e71ae2..1016b9c86 100644 --- a/Source/control.cpp +++ b/Source/control.cpp @@ -2879,23 +2879,26 @@ void control_reset_talk() // 4B8960: using guessed type int talkflag; // 52571C: using guessed type int drawpanflag; -int control_talk_last_key(int a1) +BOOL control_talk_last_key(int vkey) { - char v1; // bl - signed int v3; // eax + int result; - v1 = a1; - if (gbMaxPlayers == 1 || !talkflag || (unsigned int)a1 < VK_SPACE) - return 0; - v3 = strlen(sgszTalkMsg); - if (v3 < 78) { - sgszTalkMsg[v3 + 1] = 0; - sgszTalkMsg[v3] = v1; + if (gbMaxPlayers == 1) + return FALSE; + + if (!talkflag) + return FALSE; + + if ((DWORD)vkey < VK_SPACE) + return FALSE; + + result = strlen(sgszTalkMsg); + if (result < 78) { + sgszTalkMsg[result] = vkey; + sgszTalkMsg[result + 1] = '\0'; } - return 1; + return TRUE; } -// 4B8960: using guessed type int talkflag; -// 679660: using guessed type char gbMaxPlayers; int control_presskeys(int a1) { diff --git a/Source/control.h b/Source/control.h index 40fa51e41..c760c53ce 100644 --- a/Source/control.h +++ b/Source/control.h @@ -114,7 +114,7 @@ void control_release_talk_btn(); void control_reset_talk_msg(); void control_type_message(); void control_reset_talk(); -int control_talk_last_key(int a1); +BOOL control_talk_last_key(int vkey); int control_presskeys(int a1); void control_press_enter(); void control_up_down(char a1);