Commit 65d50ca5 authored by Chen Bill's avatar Chen Bill

update message_buffer writing

parent 9da976f3
...@@ -95,7 +95,7 @@ void duel::delete_effect(effect* peffect) { ...@@ -95,7 +95,7 @@ void duel::delete_effect(effect* peffect) {
delete peffect; delete peffect;
} }
int32 duel::read_buffer(byte* buf) { int32 duel::read_buffer(byte* buf) {
std::memcpy(buf, buffer, bufferlen); std::memcpy(buf, message_buffer, bufferlen);
return bufferlen; return bufferlen;
} }
void duel::release_script_group() { void duel::release_script_group() {
...@@ -130,7 +130,7 @@ void duel::write_buffer8(uint8 value) { ...@@ -130,7 +130,7 @@ void duel::write_buffer8(uint8 value) {
} }
void duel::clear_buffer() { void duel::clear_buffer() {
bufferlen = 0; bufferlen = 0;
bufferp = buffer; bufferp = message_buffer;
} }
void duel::set_responsei(uint32 resp) { void duel::set_responsei(uint32 resp) {
game_field->returns.ivalue[0] = resp; game_field->returns.ivalue[0] = resp;
......
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
#include <set> #include <set>
#include <unordered_set> #include <unordered_set>
#define BUFFER_SIZE 4096
class card; class card;
class group; class group;
class effect; class effect;
...@@ -23,8 +25,8 @@ class duel { ...@@ -23,8 +25,8 @@ class duel {
public: public:
using card_set = std::set<card*, card_sort>; using card_set = std::set<card*, card_sort>;
char strbuffer[256]; char strbuffer[256];
byte buffer[0x1000]; byte message_buffer[BUFFER_SIZE];
uint32 bufferlen; int32 bufferlen;
byte* bufferp; byte* bufferp;
interpreter* lua; interpreter* lua;
field* game_field; field* game_field;
......
...@@ -63,7 +63,7 @@ struct effect_set { ...@@ -63,7 +63,7 @@ struct effect_set {
return container[index]; return container[index];
} }
private: private:
std::array<effect*, 64> container; std::array<effect*, 64> container{ nullptr };
int count{ 0 }; int count{ 0 };
}; };
......
...@@ -174,9 +174,9 @@ int32 scriptlib::debug_set_ai_name(lua_State *L) { ...@@ -174,9 +174,9 @@ int32 scriptlib::debug_set_ai_name(lua_State *L) {
if(len > 100) if(len > 100)
len = 100; len = 100;
pduel->write_buffer16(len); pduel->write_buffer16(len);
memcpy(pduel->bufferp, pstr, len); for (int i = 0; i < len; ++i) {
pduel->bufferp += len; pduel->write_buffer8(pstr[i]);
pduel->bufferlen += len; }
pduel->write_buffer8(0); pduel->write_buffer8(0);
return 0; return 0;
} }
...@@ -190,9 +190,9 @@ int32 scriptlib::debug_show_hint(lua_State *L) { ...@@ -190,9 +190,9 @@ int32 scriptlib::debug_show_hint(lua_State *L) {
if(len > 1024) if(len > 1024)
len = 1024; len = 1024;
pduel->write_buffer16(len); pduel->write_buffer16(len);
memcpy(pduel->bufferp, pstr, len); for (int i = 0; i < len; ++i) {
pduel->bufferp += len; pduel->write_buffer8(pstr[i]);
pduel->bufferlen += len; }
pduel->write_buffer8(0); pduel->write_buffer8(0);
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment