Skip to content

Commit 2711081

Browse files
authored
fix(UE): use UTF8 instead of ANSI encoding (#149)
switch ANSI_TO_TCHAR and TCHAR_TO_ANSI to the UTF8 equivalents to support UTF8 in UE fixes #145
1 parent 2412e5f commit 2711081

6 files changed

Lines changed: 120 additions & 107 deletions

File tree

inkcpp/runner_impl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ runner_impl::line_type runner_impl::getline()
527527
# ifdef INK_ENABLE_STL
528528
line_type result{_output.get()};
529529
# elif defined(INK_ENABLE_UNREAL)
530-
line_type result{ANSI_TO_TCHAR(_output.get_alloc(_globals->strings(), _globals->lists()))};
530+
line_type result{UTF8_TO_TCHAR(_output.get_alloc(_globals->strings(), _globals->lists()))};
531531
# else
532532
# error unsupported constraints for getline
533533
# endif

unreal/inkcpp/Source/inkcpp/Private/InkChoice.cpp

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,21 @@
88

99
#include "ink/choice.h"
1010

11-
FString UInkChoice::GetText() const
12-
{
13-
return data->text();
14-
}
11+
FString UInkChoice::GetText() const { return data->text(); }
1512

16-
UInkChoice::UInkChoice() {
17-
tags = NewObject<UTagList>();
18-
}
13+
UInkChoice::UInkChoice() { tags = NewObject<UTagList>(); }
1914

20-
int UInkChoice::GetIndex() const
21-
{
22-
return data->index();
23-
}
15+
int UInkChoice::GetIndex() const { return data->index(); }
2416

25-
const UTagList* UInkChoice::GetTags() const
26-
{
27-
return tags;
28-
}
17+
const UTagList* UInkChoice::GetTags() const { return tags; }
2918

3019
void UInkChoice::Initialize(const ink::runtime::choice* c)
3120
{
3221
data = c;
3322
if (c->has_tags()) {
3423
TArray<FString> fstring_tags{};
35-
for(unsigned i = 0; i < c->num_tags(); ++i) {
36-
fstring_tags.Add(FString(ANSI_TO_TCHAR(c->get_tag(i))));
24+
for (unsigned i = 0; i < c->num_tags(); ++i) {
25+
fstring_tags.Add(FString(UTF8_TO_TCHAR(c->get_tag(i))));
3726
}
3827
tags->Initialize(fstring_tags);
3928
}

unreal/inkcpp/Source/inkcpp/Private/InkList.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
bool UInkList::ContainsFlag(const FString& flag_name) const
1414
{
15-
return list_data->contains(TCHAR_TO_ANSI(*flag_name));
15+
return list_data->contains(TCHAR_TO_UTF8(*flag_name));
1616
}
1717

1818
bool UInkList::ContainsEnum(const UEnum* Enum, const uint8& value) const
@@ -25,7 +25,7 @@ bool UInkList::ContainsEnum(const UEnum* Enum, const uint8& value) const
2525
return false;
2626
}
2727

28-
return list_data->contains(TCHAR_TO_ANSI(*Enum->GetDisplayNameTextByValue(value).ToString()));
28+
return list_data->contains(TCHAR_TO_UTF8(*Enum->GetDisplayNameTextByValue(value).ToString()));
2929
}
3030

3131
TArray<uint8> UInkList::ElementsOf(const UEnum* Enum) const
@@ -38,10 +38,10 @@ TArray<uint8> UInkList::ElementsOf(const UEnum* Enum) const
3838
FString enumName = Enum->GetFName().ToString();
3939

4040
int num = Enum->NumEnums();
41-
std::string str(TCHAR_TO_ANSI(*enumName));
41+
std::string str(TCHAR_TO_UTF8(*enumName));
4242
for (auto itr = list_data->begin(str.c_str()); itr != list_data->end(); ++itr) {
4343
bool hit = false;
44-
const FString flag(ANSI_TO_TCHAR((*itr).flag_name));
44+
const FString flag(UTF8_TO_TCHAR((*itr).flag_name));
4545
for (int i = 0; i < num; ++i) {
4646
FString enumStr = Enum->GetDisplayNameTextByIndex(i).ToString();
4747
if (enumStr.EndsWith(flag)) {
@@ -65,7 +65,7 @@ TArray<FString> UInkList::ElementsOfAsString(const UEnum* Enum) const
6565
TArray<FString> ret;
6666

6767
FString EnumName = Enum->GetFName().ToString();
68-
for (auto itr = list_data->begin(TCHAR_TO_ANSI(*EnumName)); itr != list_data->end(); ++itr) {
68+
for (auto itr = list_data->begin(TCHAR_TO_UTF8(*EnumName)); itr != list_data->end(); ++itr) {
6969
ret.Add(FString((*itr).flag_name));
7070
}
7171
return ret;
@@ -85,5 +85,5 @@ TArray<FListFlag> UInkList::Elements() const
8585

8686
bool UInkList::ContainsList(const FString& name) const
8787
{
88-
return list_data->begin(TCHAR_TO_ANSI(*name)) != list_data->end();
88+
return list_data->begin(TCHAR_TO_UTF8(*name)) != list_data->end();
8989
}

0 commit comments

Comments
 (0)