5 #include "../Viewscreen/Viewscreen.h" 6 #include "../MathUtilities.h" 7 #include "../StringUtilities.h" 100 if ((((CDXUTEditBox*)pControl)->GetTextLength()) >= TRANSMIT_CHAT_SIZE)
102 WCHAR str[TRANSMIT_CHAT_SIZE];
103 swprintf_s(str, TRANSMIT_CHAT_SIZE, L
"%.*s", TRANSMIT_CHAT_SIZE - 1, ((CDXUTEditBox*)pControl)->GetText());
104 ((CDXUTEditBox*)pControl)->SetText(str,
false);
109 case EVENT_EDITBOX_STRING:
111 WCHAR msg[TRANSMIT_CHAT_SIZE];
112 wcscpy_s(msg, TRANSMIT_CHAT_SIZE, ((CDXUTEditBox*)pControl)->GetText());
114 logger->
Log(
"CommunicationsDialog::DialogCallback - We are sending a chat message!");
129 for (
unsigned short q = 1; q < wcslen(msg); q++)
133 wcscpy_s(msg, TRANSMIT_CHAT_SIZE, &msg[q]);
139 if (_wcsicmp(msg, L
"000DESTRUCT0") == 0)
154 SClientPacket outpacket;
156 outpacket.f_x = 0.0f;
157 outpacket.f_y = 0.0f;
158 outpacket.f_z = 0.0f;
159 outpacket.f_w = 5.0f;
167 else if (_wcsicmp(msg, L
"000COMMANDSIM0") == 0 &&
gui->
IsAdmin)
171 SClientPacket outpacket;
173 outpacket.f_x = 0.0f;
175 outpacket.f_z = 0.0f;
176 outpacket.f_w = 0.0f;
179 else if (_wcsicmp(msg, L
"000COMMANDBOLT") == 0 &&
gui->
IsAdmin)
182 SClientPacket outpacket;
184 outpacket.f_x = 1.0f;
185 outpacket.f_y = 0.0f;
186 outpacket.f_z = 0.0f;
187 outpacket.f_w = 0.0f;
190 else if (_wcsicmp(msg, L
"000COMMANDRADIO") == 0 &&
gui->
IsAdmin)
193 SClientPacket outpacket;
195 outpacket.f_x = 2.0f;
197 outpacket.f_z = 0.0f;
198 outpacket.f_w = 0.0f;
205 for (
short t = 0; t < MAX_AVIOPERSHIP; t++)
217 for (
short t = 0; t < MAX_AVIOPERSHIP; t++)
228 else if (_wcsicmp(msg, L
"000COMMANDSUN-1") == 0 &&
gui->
IsAdmin)
231 SClientPacket outpacket;
233 outpacket.f_x = 3.0f;
235 outpacket.f_z = 0.0f;
236 outpacket.f_w = 0.0f;
239 else if (_wcsicmp(msg, L
"000COMMANDSUN0") == 0 &&
gui->
IsAdmin)
242 SClientPacket outpacket;
244 outpacket.f_x = 3.0f;
246 outpacket.f_z = 0.0f;
247 outpacket.f_w = 0.0f;
250 else if (_wcsicmp(msg, L
"000COMMANDSUN1") == 0 &&
gui->
IsAdmin)
253 SClientPacket outpacket;
255 outpacket.f_x = 3.0f;
257 outpacket.f_z = 0.0f;
258 outpacket.f_w = 0.0f;
261 else if (_wcsicmp(msg, L
"000COMMANDALPHA-1") == 0 &&
gui->
IsAdmin)
264 SClientPacket outpacket;
266 outpacket.f_x = 4.0f;
268 outpacket.f_z = 0.0f;
269 outpacket.f_w = 0.0f;
272 else if (_wcsicmp(msg, L
"000COMMANDALPHA0") == 0 &&
gui->
IsAdmin)
275 SClientPacket outpacket;
277 outpacket.f_x = 4.0f;
279 outpacket.f_z = 0.0f;
280 outpacket.f_w = 0.0f;
283 else if (_wcsicmp(msg, L
"000COMMANDALPHA1") == 0 &&
gui->
IsAdmin)
286 SClientPacket outpacket;
288 outpacket.f_x = 4.0f;
290 outpacket.f_z = 0.0f;
291 outpacket.f_w = 0.0f;
294 else if (_wcsicmp(msg, L
"000COMMANDGAMMA-1") == 0 &&
gui->
IsAdmin)
297 SClientPacket outpacket;
299 outpacket.f_x = 5.0f;
301 outpacket.f_z = 0.0f;
302 outpacket.f_w = 0.0f;
305 else if (_wcsicmp(msg, L
"000COMMANDGAMMA0") == 0 &&
gui->
IsAdmin)
308 SClientPacket outpacket;
310 outpacket.f_x = 5.0f;
312 outpacket.f_z = 0.0f;
313 outpacket.f_w = 0.0f;
316 else if (_wcsicmp(msg, L
"000COMMANDGAMMA1") == 0 &&
gui->
IsAdmin)
319 SClientPacket outpacket;
321 outpacket.f_x = 5.0f;
323 outpacket.f_z = 0.0f;
324 outpacket.f_w = 0.0f;
327 else if (_wcsicmp(msg, L
"000COMMANDELMO0") == 0 &&
gui->
IsAdmin)
330 SClientPacket outpacket;
332 outpacket.f_x = 6.0f;
334 outpacket.f_z = 0.0f;
335 outpacket.f_w = 0.0f;
338 else if (_wcsicmp(msg, L
"000COMMANDELMO1") == 0 &&
gui->
IsAdmin)
341 SClientPacket outpacket;
343 outpacket.f_x = 6.0f;
345 outpacket.f_z = 0.0f;
346 outpacket.f_w = 0.0f;
349 else if (_wcsicmp(msg, L
"000COMMANDACL0") == 0 &&
gui->
IsAdmin)
352 D3DXVec3Normalize(&norm, &
playerships[0].position);
358 SClientPacket outpacket;
360 outpacket.f_x = 7.0f;
361 outpacket.f_y = 0.0f;
362 outpacket.f_z = 0.0f;
363 outpacket.f_w = 0.0f;
366 else if (_wcsicmp(msg, L
"000COMMANDW0") == 0 &&
gui->
IsAdmin)
377 if (location == D3DXVECTOR3(0, 0, 0))
392 SClientPacket outpacket;
394 outpacket.f_x = 8.0f;
396 outpacket.f_z = 0.0f;
397 outpacket.f_w = 0.0f;
411 SClientPacket outpacket;
413 outpacket.f_x = 9.0f;
414 outpacket.f_y = 0.0f;
415 outpacket.f_z = 0.0f;
416 outpacket.f_w = 0.0f;
432 D3DXQuaternionIdentity(&
playerships[0].orientation);
434 SClientPacket outpacket;
436 outpacket.f_x = 10.0f;
438 outpacket.f_z = 0.0f;
439 outpacket.f_w = 0.0f;
446 WCHAR garbled[TRANSMIT_CHAT_SIZE];
447 wcscpy_s(garbled, TRANSMIT_CHAT_SIZE, msg);
456 logger->
Log(
"CommunicationsDialog::DialogCallback - Message was empty after processing, skipped!");
471 logger->
Log(
"CommunicationsDialog::DialogCallback - Message was empty, skipped!");
480 if ((((CDXUTEditBox*)pControl)->GetTextLength()) >= (MAX_TAB_CHARS - 5 - 1))
482 WCHAR str[MAX_TAB_CHARS - 5];
483 swprintf_s(str, MAX_TAB_CHARS - 5, L
"%.*s", MAX_TAB_CHARS - 5 - 1, ((CDXUTEditBox*)pControl)->GetText());
484 ((CDXUTEditBox*)pControl)->SetText(str,
false);
486 if (nEvent == EVENT_EDITBOX_STRING)
493 SPacketBig outpacket;
520 logger->
Log(
"tabs is higher than MAX_TAB", Logger::Level::Error);
525 for (
short t = 0; t <
tabs; t++)
540 bool keepatbottom =
false;
578 for (
short s = 1; s <
tabs; s++)
611 logger->
Log(
"linedsp is higher than MAX_LINES", Logger::Level::Error);
615 for (
long t = 0; t <
linedsp; t++)
617 const long visibleline =
linetop + t;
685 sprintf_s(msg,
sizeof msg,
"CommunicationsDialog::ActionIconClick (%i)", icon_id);
742 SClientPacket outpacket;
746 outpacket.f_z = 3.0f;
747 outpacket.f_w = 0.0f;
760 ShellExecuteW(
nullptr,
nullptr, L
"https://discord.gg/BH6zvaw",
nullptr,
nullptr, SW_SHOW);
806 SClientPacket outpacket;
809 outpacket.f_y = 0.0f;
810 outpacket.f_z = 1.0f;
815 sprintf_s(msg, 99,
"Requesting new channel for tab %i",
activetab);
823 SClientPacket outpacket;
825 outpacket.f_x =
static_cast<float>(
activetab);
827 outpacket.f_z = 0.0f;
860 sprintf_s(msg, 199,
"Ha! This is where we were crapping out on linecursel: %i",
linecursel);
867 const HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, wcslen(str) * 2 + 2);
868 memcpy(GlobalLock(hMem), str, wcslen(str) * 2 + 2);
871 OpenClipboard(
nullptr);
873 SetClipboardData(CF_UNICODETEXT, hMem);
915 SClientPacket outpacket;
919 outpacket.f_z = 2.0f;
932 sprintf_s(msg,
sizeof msg,
"Trying to drag a waypoint that doesn't exist in collection: %i",
gui->
dragline);
939 WCHAR csv[TRANSMIT_CHAT_SIZE];
940 swprintf_s(csv, TRANSMIT_CHAT_SIZE, L
"TC_WAYPOINT,%i,%f,%f,%f,%S",
941 tempwaypoint.uniqueid, tempwaypoint.location.x, tempwaypoint.location.y, tempwaypoint.location.z, tempwaypoint.text);
static void CheckMoved(short t)
std::vector< std::wstring > formatchatline
virtual void UpdateMenu(short tab)
D3DXQUATERNION orientation
void SendToServer(void *pData, DWORD dwSize, bool bGuaranteed, PacketOrdering order=ORDERING_NONE) const
std::vector< std::wstring > chatline
D3DXVECTOR3 windowlocation
InformationDialog * informationDialog
short fieldeffectivewidth[MAX_FIELDS]
s_network_objects playerships[MAX_SCAN]
bool actionenabled[MAX_ACTION]
float alphascreenOverride
void ActionIconClick(long icon_id)
short fieldcontent[MAX_FIELDS]
std::vector< std::string > formatchatlineplayer
float gammascreenOverride
CDXUTDialogResourceManager g_DialogResourceManager
std::vector< std::string > chatlineplayer
void TabClick(short clicked_tab)
WCHAR fieldline[MAX_LINES][MAX_FIELDS][HELP_SIZE]
static DialogBase * dialogs[D_ENUMERATION]
short fieldwidth[MAX_FIELDS]
void AddPlayer(unsigned char tempplayer)
bool actiontoggle[MAX_ACTION]
unsigned char seqplayer[MAX_ONLINEPLAYERS]
void Close(bool minimize)
WCHAR msgbartext[HELP_SIZE]
void TriggerBCLLightning(float distanceScalar, float intensityScalar) const
void InitializeSmoothValues()
short tabusedefaultlang[MAX_TAB]
SPlayerData player[MAX_ONLINEPLAYERS]
float Clamp(float val, float min, float max)
void DragDropItem(short s)
static short CheckWidth(short dialogid)
WCHAR tabstr[MAX_TAB][MAX_TAB_CHARS]
CommunicationsDialog(short id)
bool IsNullOrWhitespace(const WCHAR *string)
void ChannelInvite(char *msg, unsigned char whoinvited, unsigned char channel, unsigned char tab)
static D3DXVECTOR3 CalculateBarycentric(D3DXVECTOR3 *position, D3DXVECTOR3 *gthrust, float *radius)
CHATCHANNEL chatchannel[MAX_TAB]
void Log(const char *msg, Level level=Info, int errorCode=0)
void GlobalAttenuate(float prmGaTimeToFadeOut, float prmGaTimeToHold, float prmGaTimeToFadeIn, int soundEnum, float prmExTimeToFadeIn, float prmExTimeToHold, float prmExTimeToFadeOut, float volumeAdj=1.0f)
WCHAR title[MAX_TAB_CHARS - 5]
float Play(int soundEnum)
static void UpdateScrollBar(short t)
void SetProjectionMatrices()
void RefreshChat(long columnWidth, int fontWidth)
static void CALLBACK DialogCallback(UINT nEvent, int nControlID, CDXUTControl *pControl, void *pUserContext)
void SendChatMessage(unsigned char channel, unsigned char player, const WCHAR *message) const
std::vector< Swaypoint > waypoint
D3DXVECTOR3 windowdefaultlocation
std::wstring strings[L_ENUMERATION]
void PlayEx(int soundEnum, bool loop, float volume=1.0f, float frequencyMod=1.0f, float pan=0.0f, bool restart=true)
void AddToCallStack(const char *msg)
CHATCHANNEL msgbarchannel
short fieldtype[MAX_FIELDS]
D3DXVECTOR3 windowseeklocation
void UpdateMenu(short tab)
void GarbleChat(wchar_t *str) const