mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Added functions for utf8 <> wstring conversion.
Added message when AI breaks deadlock because cannot complete action. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9262 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -52,6 +52,7 @@
|
|||||||
#include "Queen Command.h"
|
#include "Queen Command.h"
|
||||||
#include "points.h"
|
#include "points.h"
|
||||||
#include "Soldier Functions.h" // added by SANDRO
|
#include "Soldier Functions.h" // added by SANDRO
|
||||||
|
#include "Text.h" // sevenfm
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "connect.h"
|
#include "connect.h"
|
||||||
@@ -81,9 +82,6 @@ extern BOOLEAN gfWaitingForTriggerTimer;
|
|||||||
|
|
||||||
UINT8 gubAICounter;
|
UINT8 gubAICounter;
|
||||||
|
|
||||||
extern STR16 gStrAction[];
|
|
||||||
extern STR szAction[];
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Commented out/ to fix:
|
// Commented out/ to fix:
|
||||||
// lots of other stuff, I think
|
// lots of other stuff, I think
|
||||||
@@ -703,7 +701,7 @@ void HandleSoldierAI( SOLDIERTYPE *pSoldier ) // FIXME - this function is named
|
|||||||
// ATE: Display message that deadlock occured...
|
// ATE: Display message that deadlock occured...
|
||||||
LiveMessage( "Breaking Deadlock" );
|
LiveMessage( "Breaking Deadlock" );
|
||||||
|
|
||||||
//ScreenMsg(FONT_MCOLOR_LTRED, MSG_INTERFACE, L"Aborting AI deadlock for [%d] %s data %d", pSoldier->ubID, gStrAction[pSoldier->aiData.bAction], pSoldier->aiData.usActionData);
|
ScreenMsg(FONT_MCOLOR_LTRED, MSG_INTERFACE, L"Aborting AI deadlock for [%d] %s %s data %d", pSoldier->ubID, pSoldier->GetName(), utf8_to_wstring(std::string(szAction[pSoldier->aiData.bAction])), pSoldier->aiData.usActionData);
|
||||||
DebugAI(String("Aborting AI deadlock for [%d] %s data %d", pSoldier->ubID, szAction[pSoldier->aiData.bAction], pSoldier->aiData.usActionData));
|
DebugAI(String("Aborting AI deadlock for [%d] %s data %d", pSoldier->ubID, szAction[pSoldier->aiData.bAction], pSoldier->aiData.usActionData));
|
||||||
|
|
||||||
#ifdef JA2TESTVERSION
|
#ifdef JA2TESTVERSION
|
||||||
@@ -1906,7 +1904,7 @@ INT8 ExecuteAction(SOLDIERTYPE *pSoldier)
|
|||||||
{
|
{
|
||||||
INT32 iRetCode;
|
INT32 iRetCode;
|
||||||
//NumMessage("ExecuteAction - Guy#",pSoldier->ubID);
|
//NumMessage("ExecuteAction - Guy#",pSoldier->ubID);
|
||||||
|
//ScreenMsg(FONT_MCOLOR_LTRED, MSG_INTERFACE, L"Execute action: [%d] %s %s data %d", pSoldier->ubID, pSoldier->GetName(), utf8_to_wstring(std::string(szAction[pSoldier->aiData.bAction])), pSoldier->aiData.usActionData);
|
||||||
|
|
||||||
// in most cases, merc will change location, or may cause damage to opponents,
|
// in most cases, merc will change location, or may cause damage to opponents,
|
||||||
// so a new cover check will be necessary. Exceptions handled individually.
|
// so a new cover check will be necessary. Exceptions handled individually.
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
#include "text.h"
|
#include "text.h"
|
||||||
#include "Fileman.h"
|
#include "Fileman.h"
|
||||||
#include "GameSettings.h"
|
#include "GameSettings.h"
|
||||||
|
// sevenfm
|
||||||
|
#include <codecvt>
|
||||||
|
#include <string>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
BOOLEAN LoadItemInfo(UINT16 ubIndex, STR16 pNameString, STR16 pInfoString )
|
BOOLEAN LoadItemInfo(UINT16 ubIndex, STR16 pNameString, STR16 pInfoString )
|
||||||
@@ -1300,3 +1303,27 @@ void ParseCommandLine (
|
|||||||
++*numargs;
|
++*numargs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline std::string narrow(std::wstring const& text)
|
||||||
|
{
|
||||||
|
std::locale const loc("");
|
||||||
|
wchar_t const* from = text.c_str();
|
||||||
|
std::size_t const len = text.size();
|
||||||
|
std::vector<char> buffer(len + 1);
|
||||||
|
std::use_facet<std::ctype<wchar_t> >(loc).narrow(from, from + len, '_', &buffer[0]);
|
||||||
|
|
||||||
|
return std::string(&buffer[0], &buffer[len]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// convert UTF-8 string to wstring
|
||||||
|
std::wstring utf8_to_wstring(const std::string& str)
|
||||||
|
{
|
||||||
|
std::wstring_convert<std::codecvt_utf8<wchar_t>> myconv;
|
||||||
|
return myconv.from_bytes(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
// convert wstring to UTF-8 string
|
||||||
|
std::string wstring_to_utf8(const std::wstring& str)
|
||||||
|
{
|
||||||
|
std::wstring_convert<std::codecvt_utf8<wchar_t>> myconv;
|
||||||
|
return myconv.to_bytes(str);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1799,6 +1799,13 @@ BOOLEAN LoadItemProsAndCons( UINT16 usIndex, STR16 pProsString, STR16 pConsStrin
|
|||||||
BOOLEAN LoadBRDesc(UINT16 ubIndex, STR16 pDescString );
|
BOOLEAN LoadBRDesc(UINT16 ubIndex, STR16 pDescString );
|
||||||
BOOLEAN LoadBRName(UINT16 ubIndex, STR16 pNameString );
|
BOOLEAN LoadBRName(UINT16 ubIndex, STR16 pNameString );
|
||||||
|
|
||||||
|
// sevenfm
|
||||||
|
inline std::string narrow(std::wstring const& text);
|
||||||
|
// convert UTF-8 string to wstring
|
||||||
|
std::wstring utf8_to_wstring(const std::string& str);
|
||||||
|
// convert wstring to UTF-8 string
|
||||||
|
std::string wstring_to_utf8(const std::wstring& str);
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
//Coordinating simultaneous arrival dialog strings
|
//Coordinating simultaneous arrival dialog strings
|
||||||
|
|||||||
Reference in New Issue
Block a user