Skip to content

Commit eb8f306

Browse files
committed
Updated c_static_string
1 parent fb8e6c3 commit eb8f306

3 files changed

Lines changed: 138 additions & 133 deletions

File tree

game/source/cseries/cseries.hpp

Lines changed: 127 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1310,50 +1310,6 @@ struct c_static_string
13101310
set(s);
13111311
}
13121312

1313-
void null_terminate_buffer()
1314-
{
1315-
m_string[k_maximum_count - 1] = 0;
1316-
}
1317-
1318-
void set_character(int32 index, char character)
1319-
{
1320-
ASSERT(VALID_INDEX(index, k_maximum_count - 1));
1321-
1322-
//int32 initial_length = length();
1323-
//ASSERT(VALID_COUNT(index, initial_length));
1324-
//
1325-
//if (index >= initial_length)
1326-
//{
1327-
// if (index == initial_length && index < k_maximum_count - 1)
1328-
// {
1329-
// m_string[index] = character;
1330-
// m_string[index + 1] = 0;
1331-
// }
1332-
//}
1333-
//else
1334-
//{
1335-
// m_string[index] = character;
1336-
//}
1337-
1338-
if (!m_string[index])
1339-
m_string[index + 1] = 0;
1340-
1341-
m_string[index] = character;
1342-
}
1343-
1344-
void set_length(int32 length)
1345-
{
1346-
if (VALID_COUNT(length, k_maximum_count - 1))
1347-
{
1348-
m_string[length] = 0;
1349-
}
1350-
}
1351-
1352-
void set(char const* s)
1353-
{
1354-
csstrnzcpy(m_string, s, k_maximum_count);
1355-
}
1356-
13571313
void append(char const* s)
13581314
{
13591315
csstrnzcat(m_string, s, k_maximum_count);
@@ -1366,38 +1322,6 @@ struct c_static_string
13661322
csstrnzcat(m_string, "\r\n", k_maximum_count);
13671323
}
13681324

1369-
char const* print(char const* format, ...)
1370-
{
1371-
va_list list;
1372-
va_start(list, format);
1373-
1374-
print_va(format, list);
1375-
1376-
va_end(list);
1377-
1378-
return m_string;
1379-
}
1380-
1381-
char const* print_line(char const* format, ...)
1382-
{
1383-
va_list list;
1384-
va_start(list, format);
1385-
1386-
print_va(format, list);
1387-
append_line();
1388-
1389-
va_end(list);
1390-
1391-
return m_string;
1392-
}
1393-
1394-
char const* print_va(char const* format, va_list list)
1395-
{
1396-
cvsnzprintf(m_string, k_maximum_count, format, list);
1397-
1398-
return m_string;
1399-
}
1400-
14011325
char const* append_print(char const* format, ...)
14021326
{
14031327
va_list list;
@@ -1421,14 +1345,14 @@ struct c_static_string
14211345
return result;
14221346
}
14231347

1424-
char const* append_print_va(char const* format, va_list list)
1348+
char const* append_print_va(char const* format, va_list argument_list)
14251349
{
14261350
uns32 current_length = length();
14271351

14281352
ASSERT(format);
14291353
ASSERT(current_length >= 0 && current_length < k_maximum_count);
14301354

1431-
cvsnzprintf(m_string + current_length, k_maximum_count - current_length, format, list);
1355+
cvsnzprintf(m_string + current_length, k_maximum_count - current_length, format, argument_list);
14321356

14331357
return m_string;
14341358
}
@@ -1438,12 +1362,31 @@ struct c_static_string
14381362
csmemset(m_string, 0, sizeof(m_string));
14391363
}
14401364

1441-
bool is_empty() const
1365+
char* copy_to(char* string, uns32 string_length)const
14421366
{
1443-
return !m_string[0];
1367+
if (string_length > k_maximum_count)
1368+
string_length = k_maximum_count;
1369+
1370+
return csstrnzcpy(string, m_string, string_length);
14441371
}
14451372

1446-
char const* get_string() const
1373+
bool ends_with(char const* string) const
1374+
{
1375+
ASSERT(string);
1376+
1377+
int32 _length = length();
1378+
int32 suffix_length = csstrnlen(string, k_maximum_count);
1379+
1380+
if (suffix_length > _length)
1381+
return false;
1382+
1383+
char const* suffix = get_string() + (_length - suffix_length);
1384+
1385+
bool result = csmemcmp(suffix, string, suffix_length) == 0;
1386+
return result;
1387+
}
1388+
1389+
char* get_buffer()
14471390
{
14481391
return m_string;
14491392
}
@@ -1456,14 +1399,21 @@ struct c_static_string
14561399
return "";
14571400
}
14581401

1459-
char* get_buffer()
1402+
char const* get_string() const
14601403
{
14611404
return m_string;
14621405
}
14631406

1464-
int32 length() const
1407+
int32 index_of(char const* string) const
14651408
{
1466-
return csstrnlen(m_string, k_maximum_count);
1409+
ASSERT(string);
1410+
1411+
return next_index_of(string, 0);
1412+
}
1413+
1414+
bool is_empty() const
1415+
{
1416+
return !m_string[0];
14671417
}
14681418

14691419
bool is_equal(char const* string) const
@@ -1473,78 +1423,133 @@ struct c_static_string
14731423
return csstrnlen(string, k_maximum_count) == length() && csmemcmp(get_string(), string, length()) == 0;
14741424
}
14751425

1476-
bool starts_with(char const* string) const
1426+
int32 length() const
1427+
{
1428+
return csstrnlen(m_string, k_maximum_count);
1429+
}
1430+
1431+
int32 next_index_of(char const* string, int32 start_at) const
14771432
{
14781433
ASSERT(string);
14791434

1480-
return csmemcmp(string, get_string(), csstrnlen(string, k_maximum_count)) == 0;
1435+
int32 result = NONE;
1436+
1437+
if (start_at < length())
1438+
{
1439+
char const* s = csstrstr(m_string + start_at, string);
1440+
if (s)
1441+
result = s - get_string();
1442+
}
1443+
1444+
return result;
14811445
}
14821446

1483-
bool ends_with(char const* string) const
1447+
void null_terminate_buffer()
14841448
{
1485-
ASSERT(string);
1449+
m_string[k_maximum_count - 1] = 0;
1450+
}
14861451

1487-
int32 _length = length();
1488-
int32 suffix_length = csstrnlen(string, k_maximum_count);
1452+
char const* print(char const* format, ...)
1453+
{
1454+
va_list list;
1455+
va_start(list, format);
14891456

1490-
if (suffix_length > _length)
1491-
return false;
1457+
print_va(format, list);
14921458

1493-
char const* suffix = get_string() + (_length - suffix_length);
1459+
va_end(list);
14941460

1495-
bool result = csmemcmp(suffix, string, suffix_length) == 0;
1496-
return result;
1461+
return m_string;
14971462
}
14981463

1499-
int32 next_index_of(char const* string, int32 index) const
1464+
char const* print_line(char const* format, ...)
15001465
{
1501-
ASSERT(string);
1466+
va_list list;
1467+
va_start(list, format);
15021468

1503-
int32 result = NONE;
1469+
print_va(format, list);
1470+
append_line();
15041471

1505-
if (index < length())
1506-
{
1507-
char const* s = csstrstr(m_string + index, string);
1508-
if (s)
1509-
result = s - get_string();
1510-
}
1472+
va_end(list);
15111473

1512-
return result;
1474+
return m_string;
15131475
}
15141476

1515-
int32 index_of(char const* string) const
1477+
char const* print_va(char const* format, va_list argument_list)
15161478
{
1517-
ASSERT(string);
1479+
cvsnzprintf(m_string, k_maximum_count, format, argument_list);
15181480

1519-
return next_index_of(string, 0);
1481+
return m_string;
15201482
}
15211483

1522-
void set_bounded(char const* string, int32 _length)
1484+
void set(char const* s)
15231485
{
1524-
if (_length + 1 < k_maximum_count)
1525-
_length++;
1486+
csstrnzcpy(m_string, s, k_maximum_count);
1487+
}
1488+
1489+
void set_bounded(char const* src, int32 length)
1490+
{
1491+
if (length + 1 < k_maximum_count)
1492+
length++;
15261493
else
1527-
_length = k_maximum_count;
1494+
length = k_maximum_count;
15281495

1529-
csstrnzcpy(m_string, string, _length);
1496+
csstrnzcpy(m_string, src, length);
15301497
}
15311498

1532-
bool substring(int32 index, int32 _length, c_static_string<k_maximum_count>& s) const
1499+
void set_character(int32 index, char character)
15331500
{
1534-
if (index < 0 || _length <= 0 || index + _length > length())
1535-
return false;
1501+
ASSERT(VALID_INDEX(index, k_maximum_count - 1));
1502+
1503+
//int32 initial_length = length();
1504+
//ASSERT(VALID_COUNT(index, initial_length));
1505+
//
1506+
//if (index >= initial_length)
1507+
//{
1508+
// if (index == initial_length && index < k_maximum_count - 1)
1509+
// {
1510+
// m_string[index] = character;
1511+
// m_string[index + 1] = 0;
1512+
// }
1513+
//}
1514+
//else
1515+
//{
1516+
// m_string[index] = character;
1517+
//}
15361518

1537-
s.set_bounded(get_offset(index), _length);
1519+
if (!m_string[index])
1520+
m_string[index + 1] = 0;
15381521

1539-
return true;
1522+
m_string[index] = character;
15401523
}
15411524

1542-
char* copy_to(char* s, unsigned int size)const
1525+
void set_length(int32 desired_length)
15431526
{
1544-
if (size > k_maximum_count)
1545-
size = k_maximum_count;
1527+
if (VALID_COUNT(desired_length, k_maximum_count - 1))
1528+
{
1529+
m_string[desired_length] = 0;
1530+
}
1531+
}
1532+
1533+
//void set_wchar(wchar_t const* src)
1534+
//{
1535+
// wchar_string_to_ascii_string(src, m_string, k_maximum_count, nullptr);
1536+
//}
15461537

1547-
return csstrnzcpy(s, m_string, size);
1538+
bool starts_with(char const* string) const
1539+
{
1540+
ASSERT(string);
1541+
1542+
return csmemcmp(string, get_string(), csstrnlen(string, k_maximum_count)) == 0;
1543+
}
1544+
1545+
bool substring(int32 start_index, int32 count, c_static_string<k_maximum_count>& sub) const
1546+
{
1547+
if (start_index < 0 || count <= 0 || start_index + count > length())
1548+
return false;
1549+
1550+
sub.set_bounded(get_offset(start_index), count);
1551+
1552+
return true;
15481553
}
15491554

15501555
protected:

game/source/networking/logic/storage/network_http_request_queue.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,17 @@ void __cdecl make_url(c_static_string<256> const* url, c_static_string<256>* out
8686

8787
ASSERT(out_url);
8888

89-
c_static_string<256> temp = *url;
89+
c_static_string<256> url_string = *url;
9090
c_static_string<256> title_storage = "/storage/title/";
9191

92-
if (temp.starts_with(title_storage.get_string()))
92+
if (url_string.starts_with(title_storage.get_string()))
9393
{
94-
c_static_string<256> temp_substring;
95-
temp.substring(title_storage.length(), temp.length() - title_storage.length(), temp_substring);
96-
temp.print("%s%s/%s", title_storage.get_string(), g_storage_url_subdirectory.get_string(), temp_substring.get_string());
94+
c_static_string<256> temp_string;
95+
url_string.substring(title_storage.length(), url_string.length() - title_storage.length(), temp_string);
96+
url_string.print("%s%s/%s", title_storage.get_string(), g_storage_url_subdirectory.get_string(), temp_string.get_string());
9797
}
9898

99-
out_url->set(temp.get_string());
99+
out_url->set(url_string.get_string());
100100
}
101101
HOOK_DECLARE(0x004A34B0, make_url);
102102

game/source/networking/online/online_url.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,21 +121,21 @@ int32 c_url_string::get_untracked_cache_lifetime_seconds() const
121121
return m_untracked_cache_lifetime_seconds;
122122
}
123123

124-
void __cdecl make_hopper_network_directory(char* hopper_directory, int32 hopper_directory_size, char some_char /* separator? */)
124+
void __cdecl make_hopper_network_directory(char* hopper_directory, int32 length, char separator)
125125
{
126-
//INVOKE(0x00451710, make_hopper_network_directory, hopper_directory, hopper_directory_size, some_char);
126+
//INVOKE(0x00451710, make_hopper_network_directory, hopper_directory, length, separator);
127127

128128
if (g_online_url.current_hopper_directory[0])
129129
{
130-
strncpy_s(hopper_directory, hopper_directory_size, g_online_url.current_hopper_directory, sizeof(g_online_url.current_hopper_directory));
130+
strncpy_s(hopper_directory, length, g_online_url.current_hopper_directory, sizeof(g_online_url.current_hopper_directory));
131131
}
132132
else if (g_online_url.current_user_override_hopper_directory[0])
133133
{
134-
strncpy_s(hopper_directory, hopper_directory_size, g_online_url.current_user_override_hopper_directory, sizeof(g_online_url.current_user_override_hopper_directory));
134+
strncpy_s(hopper_directory, length, g_online_url.current_user_override_hopper_directory, sizeof(g_online_url.current_user_override_hopper_directory));
135135
}
136136
else
137137
{
138-
strncpy_s(hopper_directory, hopper_directory_size, "default_hoppers", strlen("default_hoppers") + 1);
138+
strncpy_s(hopper_directory, length, "default_hoppers", strlen("default_hoppers") + 1);
139139
}
140140
}
141141

0 commit comments

Comments
 (0)