mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-02 20:08:10 +03:00
nact: Change tvar from char array to std::string
This commit is contained in:
+5
-22
@@ -474,7 +474,7 @@ void NACT::cmd_x()
|
||||
TRACE("X %d:", index);
|
||||
|
||||
if(1 <= index && index <= 10) {
|
||||
ags->draw_text(tvar[index - 1]);
|
||||
ags->draw_text(tvar[index - 1].c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -554,11 +554,11 @@ bool NACT::load(int index)
|
||||
}
|
||||
ags->load(fio.get());
|
||||
for (int i = 0; i < 10; i++) {
|
||||
fio->read(tvar[i], 22);
|
||||
tvar[i] = fio->read_string(22);
|
||||
}
|
||||
for (int i = 0; i < 30; i++) {
|
||||
for (int j = 0; j < 10; j++) {
|
||||
fio->read(tvar_stack[i][j], 22);
|
||||
tvar_stack[i][j] = fio->read_string(22);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 30; i++) {
|
||||
@@ -597,11 +597,11 @@ bool NACT::save(int index, const char header[112])
|
||||
}
|
||||
ags->save(fio.get());
|
||||
for (int i = 0; i < 10; i++) {
|
||||
fio->write(tvar[i], 22);
|
||||
fio->write_string(tvar[i], 22);
|
||||
}
|
||||
for (int i = 0; i < 30; i++) {
|
||||
for (int j = 0; j < 10; j++) {
|
||||
fio->write(tvar_stack[i][j], 22);
|
||||
fio->write_string(tvar_stack[i][j], 22);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 30; i++) {
|
||||
@@ -755,23 +755,6 @@ void NACT::sys_sleep(int ms) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void NACT::set_string(int index, const char* value)
|
||||
{
|
||||
const char *src = value;
|
||||
char *dst = tvar[index];
|
||||
int remaining = sizeof(tvar[0]) - 1;
|
||||
while (*src) {
|
||||
int len = encoding->mblen(*src);
|
||||
if (len > remaining)
|
||||
break;
|
||||
memcpy(dst, src, len);
|
||||
src += len;
|
||||
dst += len;
|
||||
remaining -= len;
|
||||
}
|
||||
*dst = '\0';
|
||||
}
|
||||
|
||||
// WinMainとのインターフェース
|
||||
|
||||
int NACT::get_screen_height()
|
||||
|
||||
+4
-4
@@ -56,8 +56,8 @@ protected:
|
||||
// 変数
|
||||
uint16 var[MAX_VAR] = {};
|
||||
uint16 var_stack[30][20] = {};
|
||||
char tvar[MAX_STRVAR][33] = {};
|
||||
char tvar_stack[30][MAX_STRVAR][22] = {};
|
||||
std::string tvar[MAX_STRVAR];
|
||||
std::string tvar_stack[30][MAX_STRVAR];
|
||||
int tvar_index = 0;
|
||||
int tvar_maxlen;
|
||||
|
||||
@@ -189,8 +189,8 @@ public:
|
||||
int get_scenario_page() const { return sco.page(); }
|
||||
uint16 get_var(int index) const { return var[index]; }
|
||||
void set_var(int index, uint16_t value) { var[index] = value; }
|
||||
const char* get_string(int index) const { return tvar[index]; }
|
||||
void set_string(int index, const char* value);
|
||||
const char* get_string(int index) const { return tvar[index].c_str(); }
|
||||
void set_string(int index, const std::string& value) { tvar[index] = value; }
|
||||
|
||||
private:
|
||||
void pump_events();
|
||||
|
||||
@@ -948,13 +948,13 @@ public:
|
||||
NACT_DPS(const Config& config, const GameId& game_id)
|
||||
: NACT_Sys1(config, game_id) {
|
||||
text_refresh = false;
|
||||
strcpy(tvar[0], strings.dps_custom.c_str());
|
||||
strcpy(tvar[1], strings.dps_linus.c_str());
|
||||
strcpy(tvar[2], strings.dps_katsumi.c_str());
|
||||
strcpy(tvar[3], strings.dps_yumiko.c_str());
|
||||
strcpy(tvar[4], strings.dps_itsumi.c_str());
|
||||
strcpy(tvar[5], strings.dps_hitomi.c_str());
|
||||
strcpy(tvar[6], strings.dps_mariko.c_str());
|
||||
tvar[0] = strings.dps_custom;
|
||||
tvar[1] = strings.dps_linus;
|
||||
tvar[2] = strings.dps_katsumi;
|
||||
tvar[3] = strings.dps_yumiko;
|
||||
tvar[4] = strings.dps_itsumi;
|
||||
tvar[5] = strings.dps_hitomi;
|
||||
tvar[6] = strings.dps_mariko;
|
||||
}
|
||||
|
||||
void cmd_y() override {
|
||||
|
||||
@@ -554,7 +554,7 @@ void NACT_Sys2::cmd_m()
|
||||
TRACE("M %s:", encoding->toUtf8(string).c_str());
|
||||
|
||||
if(1 <= tvar_index && tvar_index <= 10) {
|
||||
memcpy(tvar[tvar_index - 1], string, 33);
|
||||
tvar[tvar_index - 1] = string;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -775,8 +775,8 @@ void NACT_Sys2::cmd_y()
|
||||
case 228:
|
||||
case 229:
|
||||
if(1 <= param && param <= 10) {
|
||||
ags->draw_text(tvar[param - 1]);
|
||||
int padlen = cmd - 220 - encoding->mbslen(tvar[param - 1]);
|
||||
ags->draw_text(tvar[param - 1].c_str());
|
||||
int padlen = cmd - 220 - encoding->mbslen(tvar[param - 1].c_str());
|
||||
if (padlen > 0) {
|
||||
char pad[10] = " ";
|
||||
pad[padlen] = '\0';
|
||||
|
||||
@@ -485,7 +485,7 @@ void NACT_Sys3::cmd_l()
|
||||
}
|
||||
// M1 - M10
|
||||
for(int i = 0; i < 10; i++) {
|
||||
fio->read(tvar[i], 22);
|
||||
tvar[i] = fio->read_string(22);
|
||||
}
|
||||
}
|
||||
} else if (1 <= index && index <= 26) {
|
||||
@@ -526,7 +526,7 @@ void NACT_Sys3::cmd_m()
|
||||
TRACE("M %s:", encoding->toUtf8(string).c_str());
|
||||
|
||||
if(1 <= tvar_index && tvar_index <= 10) {
|
||||
memcpy(tvar[tvar_index - 1], string, 22);
|
||||
tvar[tvar_index - 1] = string;
|
||||
} else if(tvar_index == 31) {
|
||||
sco.open(string);
|
||||
} else if(tvar_index == 32) {
|
||||
@@ -651,7 +651,7 @@ void NACT_Sys3::cmd_q()
|
||||
}
|
||||
// M1 - M10
|
||||
for(int i = 0; i < 10; i++) {
|
||||
fio->write(tvar[i], 22);
|
||||
fio->write_string(tvar[i], 22);
|
||||
}
|
||||
}
|
||||
} else if (1 <= index && index <= 26) {
|
||||
@@ -698,14 +698,14 @@ void NACT_Sys3::cmd_v()
|
||||
var[21 + i] = var_stack[index - 1][i];
|
||||
}
|
||||
for(int i = 0; i < 10; i++) {
|
||||
memcpy(tvar[i], tvar_stack[index - 1][i], 22);
|
||||
tvar[i] = tvar_stack[index - 1][i];
|
||||
}
|
||||
} else {
|
||||
for(int i = 0; i < 20; i++) {
|
||||
var_stack[index - 1][i] = var[21 + i];
|
||||
}
|
||||
for(int i = 0; i< 10; i++) {
|
||||
memcpy(tvar_stack[index - 1][i], tvar[i], 22);
|
||||
tvar_stack[index - 1][i] = tvar[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -965,8 +965,8 @@ void NACT_Sys3::cmd_y()
|
||||
case 228:
|
||||
case 229:
|
||||
{
|
||||
ags->draw_text(tvar[param - 1]);
|
||||
int padlen = cmd - 220 - encoding->mbslen(tvar[param - 1]);
|
||||
ags->draw_text(tvar[param - 1].c_str());
|
||||
int padlen = cmd - 220 - encoding->mbslen(tvar[param - 1].c_str());
|
||||
if (padlen > 0) {
|
||||
char pad[10] = " ";
|
||||
pad[padlen] = '\0';
|
||||
|
||||
Reference in New Issue
Block a user