mirror of
https://github.com/electronicarts/CNC_TS_and_RA2_Mission_Editor.git
synced 2025-04-30 09:01:41 -04:00
* hotkey tips using \t . * simplified edit menu translation (ZH_CN) * refactored GetLanguageStringACP and implemented 'TranslateDlgItem' and 'TranslateWindowCaption' helper function . --------- Co-authored-by: shuiping233 <49360196+shuiping233@users.noreply.github.com>
172 lines
No EOL
5.7 KiB
C++
172 lines
No EOL
5.7 KiB
C++
/*
|
|
FinalSun/FinalAlert 2 Mission Editor
|
|
|
|
Copyright (C) 1999-2024 Electronic Arts, Inc.
|
|
Authored by Matthias Wagner
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef FUNC_INCLUDED
|
|
#define FUNC_INCLUDED
|
|
|
|
#include <afx.h>
|
|
#include <memory>
|
|
#include <array>
|
|
|
|
using std::string;
|
|
|
|
bool deleteFile(const std::string& u8FilePath);
|
|
|
|
// set the status bar text in the main dialog
|
|
void SetMainStatusBar(const char* text);
|
|
// set the status bar text in the main dialog to ready
|
|
void SetMainStatusBarReady();
|
|
|
|
// change all %n (where n is an int) in an string, to another specified string
|
|
CString TranslateStringVariables(int n, const char* originaltext, const char* inserttext);
|
|
|
|
// Alliance->Korea etc...
|
|
CString TranslateHouse(CString original, BOOL bToUI = FALSE);
|
|
|
|
// show options dialog
|
|
void ShowOptionsDialog(CIniFile& optIni);
|
|
|
|
// repairs a trigger (sets flags correctly)
|
|
bool RepairTrigger(CString& triggerdata);
|
|
|
|
// coordinate functions
|
|
void PosToXY(const char* pos, int* X, int* Y);
|
|
|
|
// check whether is string is all made of digit numbers
|
|
bool IsNumeric(const CString& str);
|
|
|
|
// HSV -> RGB
|
|
void HSVToRGB(const unsigned char hsv[3], unsigned char rgb[3]);
|
|
std::array<unsigned char, 3> HSVToRGB(float h, float s, float v);
|
|
std::array<unsigned char, 3> HSVToRGB(const unsigned char hsv[3]);
|
|
|
|
void GetDrawBorder(const BYTE* data, int width, int line, int& left, int& right, unsigned int flags, BOOL* TranspInside = NULL);
|
|
|
|
// String conversion
|
|
std::wstring utf8ToUtf16(const char* utf8);
|
|
std::wstring utf8ToUtf16(const std::string& utf8);
|
|
std::string utf16ToUtf8(const std::wstring& utf16);
|
|
std::string utf16ToACP(const std::wstring& utf16);
|
|
|
|
// map functions
|
|
int GetNodeAt(string& owner, string& type, int x, int y);
|
|
int SetNodeAt(string owner, string type, int x, int y);
|
|
void ClearNode(int n, string owner);
|
|
CString GetFreeID();
|
|
|
|
|
|
void HandleParamList(CComboBox& cb, int type);
|
|
|
|
// sets 0 if there is a space in the string, so truncates it at the first space occupation
|
|
void TruncSpace(string& str);
|
|
void TruncSpace(CString& str);
|
|
|
|
// checks if a file exists
|
|
BOOL DoesFileExist(LPCSTR szFile);
|
|
|
|
|
|
// Lists some things
|
|
void ListHouses(CComboBox& cb, BOOL bNumbers = FALSE, BOOL bCountries = FALSE, BOOL bPlayers = FALSE);
|
|
void ListTeamTypes(CComboBox& cb, BOOL bListNone = FALSE);
|
|
void ListWaypoints(CComboBox& cb);
|
|
void ListTargets(CComboBox& cb);
|
|
void ListTags(CComboBox& cb, BOOL bListNone);
|
|
void ListMovies(CComboBox& cb, BOOL bListNone, BOOL bListParam = FALSE);
|
|
void ListBuildings(CComboBox& cb, bool useIniName = false);
|
|
void ListUnits(CComboBox& cb);
|
|
void ListAircraft(CComboBox& cb);
|
|
void ListInfantry(CComboBox& cb);
|
|
void ListTutorial(CComboBox& cb);
|
|
void ListTriggers(CComboBox& cb);
|
|
void ListYesNo(CComboBox& cb);
|
|
void ListSounds(CComboBox& cb);
|
|
void ListThemes(CComboBox& cb);
|
|
void ListSpeeches(CComboBox& cb);
|
|
void ListSpecialWeapons(CComboBox& cb);
|
|
void ListAnimations(CComboBox& cb);
|
|
void ListParticles(CComboBox& cb);
|
|
void ListCrateTypes(CComboBox& cb);
|
|
void ListSpeechBubbleTypes(CComboBox& cb);
|
|
void ListMapVariables(CComboBox& cb);
|
|
void ListRulesGlobals(CComboBox& cb);
|
|
void ListTechtypes(CComboBox& cb);
|
|
|
|
|
|
// some easy-to-use functions
|
|
CString GetText(CWnd* wnd);
|
|
CString GetText(CComboBox* wnd);
|
|
CString GetText(CSliderCtrl* wnd);
|
|
|
|
CString GetHouseSectionName(CString lpHouse);
|
|
|
|
// fix bug
|
|
int RepairRulesHouses();
|
|
|
|
// strcpy_safe allows overlapping of source & destination. strcpy may be faster though!
|
|
char* strcpy_safe(char* strDestination, const char* strSource);
|
|
|
|
/****************************************
|
|
language support functions [12/18/1999]
|
|
****************************************/
|
|
CString EscapeString(const CString& input);
|
|
|
|
// retrieve the string name in the correct language (name is an ID).
|
|
// the returned string is in the active codepage (UTF-8 on Windows 10 1909+)
|
|
CString GetLanguageStringACP(const CString name);
|
|
|
|
// tranlate a string/word by using the table from english to the current language
|
|
// the returned string is in the active codepage (UTF-8 on Windows 10 1909+)
|
|
CString TranslateStringACP(CString u8EnglishString);
|
|
|
|
// tranlate a string/word by using the table from english to the current language
|
|
// the returned string is in the active codepage (UTF-8 on Windows 10 1909+)
|
|
CString TranslateStringACP(WCHAR* u16EnglishString);
|
|
|
|
void TranslateDlgItem(CWnd& cwnd, int controlID, const CString& label);
|
|
void TranslateWindowCaption(CWnd& cwnd, const CString& label);
|
|
|
|
/****************************************
|
|
sound functions [03/16/2001]
|
|
****************************************/
|
|
|
|
// general play sound function. uses parameter in defines.h. Does only play if user has not deactivated sounds
|
|
void Sound(int ID);
|
|
|
|
|
|
class BitmapNotFound : std::runtime_error
|
|
{
|
|
public:
|
|
BitmapNotFound() : std::runtime_error("Bitmap not found") {}
|
|
};
|
|
|
|
std::unique_ptr<CBitmap> BitmapFromResource(int resource_id);
|
|
std::unique_ptr<CBitmap> BitmapFromFile(const CString& filepath);
|
|
|
|
CComPtr<IDirectDrawSurface4> BitmapToSurface(IDirectDraw4* pDD, const CBitmap& bitmap);
|
|
|
|
class ComboBoxHelper
|
|
{
|
|
public:
|
|
static void Clear(CComboBox& combobox);
|
|
static void ListCountries(CComboBox& combobox, bool bShowIndex = false);
|
|
static void ListBoolean(CComboBox& combobox);
|
|
};
|
|
|
|
#endif |