Commit ba3747bb authored by edo9300's avatar edo9300

Merge remote-tracking branch 'refs/remotes/Fluorohydride/master'

parents 093fcbf4 a0f4cc62
......@@ -303,6 +303,42 @@ const wchar_t* DataManager::FormatSetName(unsigned long long setcode) {
return unknown_string;
return scBuffer;
}
const wchar_t* DataManager::FormatLinkMarker(int link_marker) {
wchar_t* p = lmBuffer;
if(link_marker & LINK_MARKER_TOP_LEFT) {
BufferIO::CopyWStrRef(L"[ ]", p, 4);
*(p - 2) = 0x2196;
}
if(link_marker & LINK_MARKER_TOP) {
BufferIO::CopyWStrRef(L"[ ]", p, 4);
*(p - 2) = 0x2191;
}
if(link_marker & LINK_MARKER_TOP_RIGHT) {
BufferIO::CopyWStrRef(L"[ ]", p, 4);
*(p - 2) = 0x2197;
}
if(link_marker & LINK_MARKER_LEFT) {
BufferIO::CopyWStrRef(L"[ ]", p, 4);
*(p - 2) = 0x2190;
}
if(link_marker & LINK_MARKER_RIGHT) {
BufferIO::CopyWStrRef(L"[ ]", p, 4);
*(p - 2) = 0x2192;
}
if(link_marker & LINK_MARKER_BOTTOM_LEFT) {
BufferIO::CopyWStrRef(L"[ ]", p, 4);
*(p - 2) = 0x2199;
}
if(link_marker & LINK_MARKER_BOTTOM) {
BufferIO::CopyWStrRef(L"[ ]", p, 4);
*(p - 2) = 0x2193;
}
if(link_marker & LINK_MARKER_BOTTOM_RIGHT) {
BufferIO::CopyWStrRef(L"[ ]", p, 4);
*(p - 2) = 0x2198;
}
return lmBuffer;
}
int DataManager::CardReader(int code, void* pData) {
if(!dataManager.GetData(code, (CardData*)pData))
memset(pData, 0, sizeof(CardData));
......
......@@ -31,6 +31,7 @@ public:
const wchar_t* FormatRace(int race);
const wchar_t* FormatType(int type);
const wchar_t* FormatSetName(unsigned long long setcode);
const wchar_t* FormatLinkMarker(int link_marker);
std::unordered_map<unsigned int, CardDataC> _datas;
std::unordered_map<unsigned int, CardString> _strings;
......@@ -45,6 +46,7 @@ public:
wchar_t racBuffer[128];
wchar_t tpBuffer[128];
wchar_t scBuffer[128];
wchar_t lmBuffer[32];
static wchar_t strBuffer[4096];
static const wchar_t* unknown_string;
......
......@@ -352,7 +352,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
str.append(msgbuf);
myswprintf(msgbuf, L"%ls%d\n", dataManager.GetSysString(1233), pkt->info.draw_count);
str.append(msgbuf);
if(pkt->info.duel_rule != 2) {
if(pkt->info.duel_rule != DEFAULT_DUEL_RULE) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1260 + pkt->info.duel_rule));
str.append(msgbuf);
}
......@@ -3644,7 +3644,9 @@ void DuelClient::BroadcastReply(evutil_socket_t fd, short events, void * arg) {
hoststr.append(dataManager.GetSysString(pHP->host.mode + 1244));
hoststr.append(L"][");
if(pHP->host.draw_count == 1 && pHP->host.start_hand == 5 && pHP->host.start_lp == 8000
&& !pHP->host.no_check_deck && !pHP->host.no_shuffle_deck && pHP->host.duel_rule == 2 && !pHP->host.destiny_draw && pHP->host.rule_count==0)
&& !pHP->host.no_check_deck && !pHP->host.no_shuffle_deck
&& pHP->host.duel_rule == DEFAULT_DUEL_RULE && !pHP->host.destiny_draw
&& pHP->host.rule_count==0)
hoststr.append(dataManager.GetSysString(1280));
else hoststr.append(dataManager.GetSysString(1281));
hoststr.append(L"]");
......
......@@ -169,7 +169,7 @@ bool Game::Initialize() {
cbDuelRule->addItem(dataManager.GetSysString(1261));
cbDuelRule->addItem(dataManager.GetSysString(1262));
cbDuelRule->addItem(dataManager.GetSysString(1263));
cbDuelRule->setSelected(2);
cbDuelRule->setSelected(DEFAULT_DUEL_RULE);
chkNoCheckDeck = env->addCheckBox(false, rect<s32>(20, 210, 170, 230), wCreateHost, -1, dataManager.GetSysString(1229));
chkNoShuffleDeck = env->addCheckBox(false, rect<s32>(180, 210, 360, 230), wCreateHost, -1, dataManager.GetSysString(1230));
env->addStaticText(dataManager.GetSysString(1231), rect<s32>(20, 240, 320, 260), false, false, wCreateHost);
......@@ -1185,9 +1185,10 @@ void Game::ShowCardInfo(int code) {
stInfo->setText(formatBuffer);
if(cd.type & TYPE_LINK){
if (cd.attack < 0)
myswprintf(formatBuffer, L"?/Link %d", cd.level);
myswprintf(formatBuffer, L"?/Link %d ", cd.level);
else
myswprintf(formatBuffer, L"%d/Link %d", cd.attack, cd.level);
myswprintf(formatBuffer, L"%d/Link %d ", cd.attack, cd.level);
wcscat(formatBuffer, dataManager.FormatLinkMarker(cd.link_marker));
}
else {
int form = 0x2605;
......
......@@ -599,4 +599,6 @@ extern Game* mainGame;
#define CHECKBOX_ENABLE_MUSIC 361
#define SCROLL_VOLUME 362
#define COMBOBOX_SORTTYPE 370
#define DEFAULT_DUEL_RULE 3
#endif // GAME_H
......@@ -11,7 +11,7 @@ long SingleMode::pduel = 0;
bool SingleMode::is_closing = false;
bool SingleMode::is_continuing = false;
byte buffer[0x1000000];
static byte buffer[0x20000];
bool SingleMode::StartPlay() {
Thread::NewThread(SinglePlayThread, 0);
......@@ -827,7 +827,7 @@ byte* SingleMode::ScriptReader(const char* script_name, int* slen) {
return 0;
fseek(fp, 0, SEEK_END);
unsigned int len = ftell(fp);
if(len > 0x1000000) {
if(len > sizeof(buffer)) {
fclose(fp);
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