Browse Source

♻️Create QuickMessage struct

pull/2233/head
Anders Jenbo 5 years ago
parent
commit
eb2cd5f654
  1. 19
      Source/diablo.cpp
  2. 14
      Source/diablo.h
  3. 8
      Source/options.cpp
  4. 2
      Source/options.h

19
Source/diablo.cpp

@ -136,13 +136,12 @@ int arrowdebug = 0;
#endif
/** Specifies whether players are in non-PvP mode. */
bool gbFriendlyMode = true;
const char *const spszMsgTbl[4] = {
N_("I need help! Come Here!"),
N_("Follow me."),
N_("Here's something for you."),
N_("Now you DIE!")
QuickMessage QuickMessages[QUICK_MESSAGE_OPTIONS] = {
{ "QuickMessage1", N_("I need help! Come Here!") },
{ "QuickMessage2", N_("Follow me.") },
{ "QuickMessage3", N_("Here's something for you.") },
{ "QuickMessage4", N_("Now you DIE!") }
};
const char *const spszMsgNameTbl[4] = { "QuickMessage1", "QuickMessage2", "QuickMessage3", "QuickMessage4" };
/** To know if these things have been done when we get to the diablo_deinit() function */
bool was_archives_init = false;
@ -513,11 +512,11 @@ static void diablo_init()
SetApplicationVersions();
for (size_t i = 0; i < sizeof(spszMsgTbl) / sizeof(spszMsgTbl[0]); i++) {
for (size_t i = 0; i < QUICK_MESSAGE_OPTIONS; i++) {
if (strlen(sgOptions.Chat.szHotKeyMsgs[i]) != 0) {
continue;
}
strncpy(sgOptions.Chat.szHotKeyMsgs[i], _(spszMsgTbl[i]), MAX_SEND_STR_LEN);
strncpy(sgOptions.Chat.szHotKeyMsgs[i], _(QuickMessages[i].message), MAX_SEND_STR_LEN);
}
UiInitialize();
@ -869,7 +868,7 @@ static void diablo_hotkey_msg(DWORD dwMsg)
return;
}
assert(dwMsg < sizeof(spszMsgTbl) / sizeof(spszMsgTbl[0]));
assert(dwMsg < QUICK_MESSAGE_OPTIONS);
NetSendCmdString(0xFFFFFF, sgOptions.Chat.szHotKeyMsgs[dwMsg]);
}
@ -1986,7 +1985,7 @@ void initKeymapActions()
}
for (int i = 0; i < 4; ++i) {
keymapper.addAction({
spszMsgNameTbl[i],
QuickMessages[i].key,
DVL_VK_F9 + i,
[i]() { diablo_hotkey_msg(i); },
});

14
Source/diablo.h

@ -85,10 +85,16 @@ extern bool debug_mode_dollar_sign;
extern bool debug_mode_key_i;
extern int debug_mode_key_j;
#endif
/** Default quick messages */
extern const char *const spszMsgTbl[4];
/** INI files variable names for quick messages */
extern const char *const spszMsgNameTbl[4];
struct QuickMessage {
/** Config variable names for quick message */
const char *const key;
/** Default quick message */
const char *const message;
};
constexpr size_t QUICK_MESSAGE_OPTIONS = 4;
extern QuickMessage QuickMessages[QUICK_MESSAGE_OPTIONS];
extern bool gbFriendlyMode;
} // namespace devilution

8
Source/options.cpp

@ -204,8 +204,8 @@ void LoadOptions()
sgOptions.Network.nPort = getIniInt("Network", "Port", 6112);
getIniValue("Network", "Previous Host", sgOptions.Network.szPreviousHost, sizeof(sgOptions.Network.szPreviousHost), "");
for (size_t i = 0; i < sizeof(spszMsgTbl) / sizeof(spszMsgTbl[0]); i++)
getIniValue("NetMsg", spszMsgNameTbl[i], sgOptions.Chat.szHotKeyMsgs[i], MAX_SEND_STR_LEN, "");
for (size_t i = 0; i < QUICK_MESSAGE_OPTIONS; i++)
getIniValue("NetMsg", QuickMessages[i].key, sgOptions.Chat.szHotKeyMsgs[i], MAX_SEND_STR_LEN, "");
getIniValue("Controller", "Mapping", sgOptions.Controller.szMapping, sizeof(sgOptions.Controller.szMapping), "");
sgOptions.Controller.bSwapShoulderButtonMode = getIniBool("Controller", "Swap Shoulder Button Mode", false);
@ -286,8 +286,8 @@ void SaveOptions()
setIniValue("Network", "Port", sgOptions.Network.nPort);
setIniValue("Network", "Previous Host", sgOptions.Network.szPreviousHost);
for (size_t i = 0; i < sizeof(spszMsgTbl) / sizeof(spszMsgTbl[0]); i++)
setIniValue("NetMsg", spszMsgNameTbl[i], sgOptions.Chat.szHotKeyMsgs[i]);
for (size_t i = 0; i < QUICK_MESSAGE_OPTIONS; i++)
setIniValue("NetMsg", QuickMessages[i].key, sgOptions.Chat.szHotKeyMsgs[i]);
setIniValue("Controller", "Mapping", sgOptions.Controller.szMapping);
setIniValue("Controller", "Swap Shoulder Button Mode", sgOptions.Controller.bSwapShoulderButtonMode);

2
Source/options.h

@ -138,7 +138,7 @@ struct NetworkOptions {
struct ChatOptions {
/** @brief Quick chat messages. */
char szHotKeyMsgs[4][MAX_SEND_STR_LEN];
char szHotKeyMsgs[QUICK_MESSAGE_OPTIONS][MAX_SEND_STR_LEN];
};
struct LanguageOptions {

Loading…
Cancel
Save