Commit 1b44706a authored by nanahira's avatar nanahira

Merge branch 'master' of github.com:Fluorohydride/ygopro

parents d9dc67aa 95fb23d1
add_definitions ( "-wd4996" "-D_CRT_SECURE_NO_WARNINGS" "-D_ITERATOR_DEBUG_LEVEL=0" ) add_definitions ( "-wd4996" "-D_CRT_SECURE_NO_WARNINGS" )
add_definitions ( "-D_UNICODE" "-DUNICODE" "/utf-8" ) add_definitions ( "-D_UNICODE" "-DUNICODE" "/utf-8" )
include (MSVCMultipleProcessCompile) include (MSVCMultipleProcessCompile)
......
...@@ -48,6 +48,12 @@ else () ...@@ -48,6 +48,12 @@ else ()
target_link_libraries (ygopro ${CMAKE_THREAD_LIBS_INIT} ${DL_LIBRARIES}) target_link_libraries (ygopro ${CMAKE_THREAD_LIBS_INIT} ${DL_LIBRARIES})
endif () endif ()
if (APPLE)
find_library(COCOA_LIBRARY Cocoa)
find_library(IOKIT_LIBRARY IOKit)
target_link_libraries(ygopro ${COCOA_LIBRARY} ${IOKIT_LIBRARY})
endif ()
if (USE_IRRKLANG) if (USE_IRRKLANG)
add_definitions ( "-DYGOPRO_USE_IRRKLANG" ) add_definitions ( "-DYGOPRO_USE_IRRKLANG" )
if (MSVC) if (MSVC)
......
...@@ -213,14 +213,17 @@ bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) { ...@@ -213,14 +213,17 @@ bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) {
else return c1->sequence < c2->sequence; else return c1->sequence < c2->sequence;
else { else {
if(c1->location & (LOCATION_DECK | LOCATION_GRAVE | LOCATION_REMOVED | LOCATION_EXTRA)) { if(c1->location & (LOCATION_DECK | LOCATION_GRAVE | LOCATION_REMOVED | LOCATION_EXTRA)) {
for(size_t i = 0; i < mainGame->dField.chains.size(); ++i) { auto it1 = std::find_if(mainGame->dField.chains.rbegin(), mainGame->dField.chains.rend(), [c1](const auto& ch) {
auto chit = mainGame->dField.chains[i]; return c1 == ch.chain_card || ch.target.find(c1) != ch.target.end();
if(c1 == chit.chain_card || chit.target.find(c1) != chit.target.end()) });
return true; auto it2 = std::find_if(mainGame->dField.chains.rbegin(), mainGame->dField.chains.rend(), [c2](const auto& ch) {
return c2 == ch.chain_card || ch.target.find(c2) != ch.target.end();
});
if(it1 != mainGame->dField.chains.rend() || it2 != mainGame->dField.chains.rend()) {
return it1 < it2;
} }
return c1->sequence > c2->sequence; return c1->sequence > c2->sequence;
} } else
else
return c1->sequence < c2->sequence; return c1->sequence < c2->sequence;
} }
} }
......
...@@ -18,6 +18,8 @@ ClientField::ClientField() { ...@@ -18,6 +18,8 @@ ClientField::ClientField() {
hovered_controler = 0; hovered_controler = 0;
hovered_location = 0; hovered_location = 0;
hovered_sequence = 0; hovered_sequence = 0;
selectable_field = 0;
selected_field = 0;
deck_act = false; deck_act = false;
grave_act = false; grave_act = false;
remove_act = false; remove_act = false;
......
...@@ -59,10 +59,10 @@ inline int myswprintf(wchar_t(&buf)[N], const wchar_t* fmt, TR... args) { ...@@ -59,10 +59,10 @@ inline int myswprintf(wchar_t(&buf)[N], const wchar_t* fmt, TR... args) {
#ifdef __APPLE__ #ifdef __APPLE__
#include <OpenGL/gl.h> #include <OpenGL/gl.h>
#include <OpenGL/glu.h> #include <OpenGL/glu.h>
#else #else //__APPLE__
#include <GL/gl.h> #include <GL/gl.h>
#include <GL/glu.h> #include <GL/glu.h>
#endif #endif //__APPLE__
#include "CGUITTFont.h" #include "CGUITTFont.h"
#include "CGUIImageButton.h" #include "CGUIImageButton.h"
#include <iostream> #include <iostream>
...@@ -72,6 +72,7 @@ inline int myswprintf(wchar_t(&buf)[N], const wchar_t* fmt, TR... args) { ...@@ -72,6 +72,7 @@ inline int myswprintf(wchar_t(&buf)[N], const wchar_t* fmt, TR... args) {
#include <time.h> #include <time.h>
#include <thread> #include <thread>
#include <mutex> #include <mutex>
#include <algorithm>
#include "bufferio.h" #include "bufferio.h"
#include "myfilesystem.h" #include "myfilesystem.h"
#include "mysignal.h" #include "mysignal.h"
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
#include "sound_manager.h" #include "sound_manager.h"
#include "game.h" #include "game.h"
#include "duelclient.h" #include "duelclient.h"
#include <algorithm>
namespace ygo { namespace ygo {
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
#include "network.h" #include "network.h"
#include "game.h" #include "game.h"
#include "base64.h" #include "base64.h"
#include <algorithm>
namespace ygo { namespace ygo {
......
...@@ -126,7 +126,7 @@ void Game::DrawBackGround() { ...@@ -126,7 +126,7 @@ void Game::DrawBackGround() {
driver->drawVertexPrimitiveList(matManager.vField, 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(matManager.vField, 4, matManager.iRectangle, 2);
driver->setMaterial(matManager.mBackLine); driver->setMaterial(matManager.mBackLine);
//select field //select field
if(dInfo.curMsg == MSG_SELECT_PLACE || dInfo.curMsg == MSG_SELECT_DISFIELD) { if(dInfo.curMsg == MSG_SELECT_PLACE || dInfo.curMsg == MSG_SELECT_DISFIELD || dInfo.curMsg == MSG_HINT) {
float cv[4] = {0.0f, 0.0f, 1.0f, 1.0f}; float cv[4] = {0.0f, 0.0f, 1.0f, 1.0f};
unsigned int filter = 0x1; unsigned int filter = 0x1;
for (int i = 0; i < 7; ++i, filter <<= 1) { for (int i = 0; i < 7; ++i, filter <<= 1) {
...@@ -1095,10 +1095,16 @@ void Game::HideElement(irr::gui::IGUIElement * win, bool set_action) { ...@@ -1095,10 +1095,16 @@ void Game::HideElement(irr::gui::IGUIElement * win, bool set_action) {
for(int i = 0; i < 5; ++i) for(int i = 0; i < 5; ++i)
btnCardSelect[i]->setDrawImage(false); btnCardSelect[i]->setDrawImage(false);
dField.conti_selecting = false; dField.conti_selecting = false;
stCardListTip->setVisible(false);
for(auto& pcard : dField.selectable_cards)
dField.SetShowMark(pcard, false);
} }
if(win == wCardDisplay) { if(win == wCardDisplay) {
for(int i = 0; i < 5; ++i) for(int i = 0; i < 5; ++i)
btnCardDisplay[i]->setDrawImage(false); btnCardDisplay[i]->setDrawImage(false);
stCardListTip->setVisible(false);
for(auto& pcard : dField.display_cards)
dField.SetShowMark(pcard, false);
} }
fadingList.push_back(fu); fadingList.push_back(fu);
} }
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include "game.h" #include "game.h"
#include "replay.h" #include "replay.h"
#include "replay_mode.h" #include "replay_mode.h"
#include <algorithm>
namespace ygo { namespace ygo {
...@@ -1104,7 +1103,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1104,7 +1103,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
} }
case MSG_HINT: { case MSG_HINT: {
int type = BufferIO::ReadInt8(pbuf); int type = BufferIO::ReadInt8(pbuf);
/*int player = */BufferIO::ReadInt8(pbuf); int player = BufferIO::ReadInt8(pbuf);
int data = BufferIO::ReadInt32(pbuf); int data = BufferIO::ReadInt32(pbuf);
if(mainGame->dInfo.isReplaySkiping) if(mainGame->dInfo.isReplaySkiping)
return true; return true;
...@@ -1191,7 +1190,48 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1191,7 +1190,48 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame->WaitFrameSignal(30); mainGame->WaitFrameSignal(30);
break; break;
} }
//playing custom bgm case HINT_ZONE: {
if(mainGame->LocalPlayer(player) == 1)
data = (data >> 16) | (data << 16);
for(unsigned filter = 0x1; filter != 0; filter <<= 1) {
std::wstring str;
if(unsigned s = filter & data) {
if(s & 0x60) {
str += dataManager.GetSysString(1081);
data &= ~0x600000;
} else if(s & 0xffff)
str += dataManager.GetSysString(102);
else if(s & 0xffff0000) {
str += dataManager.GetSysString(103);
s >>= 16;
}
if(s & 0x1f)
str += dataManager.GetSysString(1002);
else if(s & 0xff00) {
s >>= 8;
if(s & 0x1f)
str += dataManager.GetSysString(1003);
else if(s & 0x20)
str += dataManager.GetSysString(1008);
else if(s & 0xc0)
str += dataManager.GetSysString(1009);
}
int seq = 1;
for(int i = 0x1; i < 0x100; i <<= 1) {
if(s & i)
break;
++seq;
}
str += L"(" + std::to_wstring(seq) + L")";
myswprintf(textBuffer, dataManager.GetSysString(1510), str.c_str());
mainGame->AddLog(textBuffer);
}
}
mainGame->dField.selectable_field = data;
mainGame->WaitFrameSignal(40);
mainGame->dField.selectable_field = 0;
break;
}
case 21: { //HINT_MUSIC case 21: { //HINT_MUSIC
char BGMName[1024]; char BGMName[1024];
if (data) { if (data) {
...@@ -1225,7 +1265,6 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1225,7 +1265,6 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
} else { } else {
soundManager.StopBGM(); soundManager.StopBGM();
} }
break;
} }
} }
break; break;
...@@ -1249,7 +1288,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1249,7 +1288,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
else if(mainGame->LocalPlayer(player) == 0) { else if(mainGame->LocalPlayer(player) == 0) {
mainGame->showcardcode = 1; mainGame->showcardcode = 1;
if(match_kill) if(match_kill)
myswprintf(vic_buf, dataManager.GetVictoryString(0x20), dataManager.GetName(match_kill)); myswprintf(vic_buf, dataManager.GetVictoryString(0xffff), dataManager.GetName(match_kill));
else if(type < 0x10) else if(type < 0x10)
myswprintf(vic_buf, L"[%ls] %ls", mainGame->dInfo.clientname, dataManager.GetVictoryString(type)); myswprintf(vic_buf, L"[%ls] %ls", mainGame->dInfo.clientname, dataManager.GetVictoryString(type));
else else
...@@ -1258,7 +1297,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1258,7 +1297,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
} else { } else {
mainGame->showcardcode = 2; mainGame->showcardcode = 2;
if(match_kill) if(match_kill)
myswprintf(vic_buf, dataManager.GetVictoryString(0x20), dataManager.GetName(match_kill)); myswprintf(vic_buf, dataManager.GetVictoryString(0xffff), dataManager.GetName(match_kill));
else if(type < 0x10) else if(type < 0x10)
myswprintf(vic_buf, L"[%ls] %ls", mainGame->dInfo.hostname, dataManager.GetVictoryString(type)); myswprintf(vic_buf, L"[%ls] %ls", mainGame->dInfo.hostname, dataManager.GetVictoryString(type));
else else
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "single_mode.h" #include "single_mode.h"
#include "materials.h" #include "materials.h"
#include "../ocgcore/common.h" #include "../ocgcore/common.h"
#include <algorithm>
namespace ygo { namespace ygo {
...@@ -640,7 +639,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -640,7 +639,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case BUTTON_CARD_4: { case BUTTON_CARD_4: {
if(mainGame->dInfo.isReplay) if(mainGame->dInfo.isReplay)
break; break;
mainGame->stCardListTip->setVisible(false);
switch(mainGame->dInfo.curMsg) { switch(mainGame->dInfo.curMsg) {
case MSG_SELECT_IDLECMD: case MSG_SELECT_IDLECMD:
case MSG_SELECT_BATTLECMD: case MSG_SELECT_BATTLECMD:
...@@ -737,7 +735,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -737,7 +735,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if (selected_cards.size() > 0) { if (selected_cards.size() > 0) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0); ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wCardSelect, true);} mainGame->HideElement(mainGame->wCardSelect, true);
}
break; break;
} }
case MSG_SELECT_SUM: { case MSG_SELECT_SUM: {
...@@ -786,7 +785,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -786,7 +785,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break; break;
} }
case BUTTON_CARD_SEL_OK: { case BUTTON_CARD_SEL_OK: {
mainGame->stCardListTip->setVisible(false);
if(mainGame->dInfo.isReplay) { if(mainGame->dInfo.isReplay) {
mainGame->HideElement(mainGame->wCardSelect); mainGame->HideElement(mainGame->wCardSelect);
break; break;
...@@ -1035,13 +1033,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1035,13 +1033,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break; break;
} }
case irr::gui::EGET_ELEMENT_LEFT: { case irr::gui::EGET_ELEMENT_LEFT: {
if(id >= BUTTON_CARD_0 && id <= BUTTON_CARD_4) { if(id >= BUTTON_CARD_0 && id <= BUTTON_CARD_4 && mainGame->stCardListTip->isVisible()) {
int pos = mainGame->scrCardList->getPos() / 10; int pos = mainGame->scrCardList->getPos() / 10;
ClientCard* mcard = selectable_cards[id - BUTTON_CARD_0 + pos]; ClientCard* mcard = selectable_cards[id - BUTTON_CARD_0 + pos];
SetShowMark(mcard, false); SetShowMark(mcard, false);
mainGame->stCardListTip->setVisible(false); mainGame->stCardListTip->setVisible(false);
} }
if(id >= BUTTON_DISPLAY_0 && id <= BUTTON_DISPLAY_4) { if(id >= BUTTON_DISPLAY_0 && id <= BUTTON_DISPLAY_4 && mainGame->stCardListTip->isVisible()) {
int pos = mainGame->scrDisplayList->getPos() / 10; int pos = mainGame->scrDisplayList->getPos() / 10;
ClientCard* mcard = display_cards[id - BUTTON_DISPLAY_0 + pos]; ClientCard* mcard = display_cards[id - BUTTON_DISPLAY_0 + pos];
SetShowMark(mcard, false); SetShowMark(mcard, false);
......
#include "replay.h" #include "replay.h"
#include "../ocgcore/ocgapi.h" #include "../ocgcore/ocgapi.h"
#include "../ocgcore/common.h" #include "../ocgcore/common.h"
#include <algorithm>
#include "lzma/LzmaLib.h" #include "lzma/LzmaLib.h"
namespace ygo { namespace ygo {
......
...@@ -593,16 +593,17 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -593,16 +593,17 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
case 6: case 6:
case 7: case 7:
case 8: case 8:
case 9: { case 9:
case 11: {
NetServer::SendBufferToPlayer(players[1 - player], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[1 - player], STOC_GAME_MSG, offset, pbuf - offset);
for(auto oit = observers.begin(); oit != observers.end(); ++oit) for(auto oit = observers.begin(); oit != observers.end(); ++oit)
NetServer::ReSendToPlayer(*oit); NetServer::ReSendToPlayer(*oit);
break; break;
} }
case 10: case 10:
case 11: case 21:
case 12: case 22:
case 13: { case 23: {
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::SendBufferToPlayer(players[1], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[1], STOC_GAME_MSG, offset, pbuf - offset);
for(auto oit = observers.begin(); oit != observers.end(); ++oit) for(auto oit = observers.begin(); oit != observers.end(); ++oit)
......
...@@ -555,7 +555,8 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -555,7 +555,8 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
case 6: case 6:
case 7: case 7:
case 8: case 8:
case 9: { case 9:
case 11: {
for(int i = 0; i < 4; ++i) for(int i = 0; i < 4; ++i)
if(players[i] != cur_player[player]) if(players[i] != cur_player[player])
NetServer::SendBufferToPlayer(players[i], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[i], STOC_GAME_MSG, offset, pbuf - offset);
...@@ -563,9 +564,9 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -563,9 +564,9 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
NetServer::ReSendToPlayer(*oit); NetServer::ReSendToPlayer(*oit);
break; break;
} }
case 11: case 21:
case 12: case 22:
case 13: case 23:
case 10: { case 10: {
for(int i = 0; i < 4; ++i) for(int i = 0; i < 4; ++i)
NetServer::SendBufferToPlayer(players[i], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[i], STOC_GAME_MSG, offset, pbuf - offset);
......
#[2020.1][2019.10 TCG][2019.10][2019.7][2019.4][2019.1][2018.10][2018.7][2018.4][2018.1][2017.10][2017.7][2017.4][2017.1][2016.10][2016.7][2016.4][2016.1][2015.10][2015.4][2015.1][2014.10][2014.7][2014.4][2014.2][2013.9][2019.7 TCG][2019.4 TCG][2019.1 TCG][2018.12 TCG][2018.9 TCG][2018.5 TCG][2018.2 TCG][2017.11 TCG][2017.9 TCG][2017.6 TCG][2017.3 TCG][2016.8 TCG][2016.4 TCG][2015.11 TCG][2015.7 TCG][2015.4 TCG][2015.1 TCG][2014.10 TCG][2014.7 TCG][2014.4 TCG][2014.1.1 TCG][2013.10.11 TCG][2013.3.1][2012.9.1][2012.3.1][2011.9.1] #[2020.1][2020.1 TCG][2019.10][2019.7][2019.4][2019.1][2018.10][2018.7][2018.4][2018.1][2017.10][2017.7][2017.4][2017.1][2016.10][2016.7][2016.4][2016.1][2015.10][2015.4][2015.1][2014.10][2014.7][2014.4][2014.2][2013.9][2019.10 TCG][2019.7 TCG][2019.4 TCG][2019.1 TCG][2018.12 TCG][2018.9 TCG][2018.5 TCG][2018.2 TCG][2017.11 TCG][2017.9 TCG][2017.6 TCG][2017.3 TCG][2016.8 TCG][2016.4 TCG][2015.11 TCG][2015.7 TCG][2015.4 TCG][2015.1 TCG][2014.10 TCG][2014.7 TCG][2014.4 TCG][2014.1.1 TCG][2013.10.11 TCG][2013.3.1][2012.9.1][2012.3.1][2011.9.1]
!2020.1 !2020.1
#forbidden #forbidden
91869203 0 --アマゾネスの射手 91869203 0 --アマゾネスの射手
...@@ -175,191 +175,196 @@ ...@@ -175,191 +175,196 @@
53936268 2 --パーソナル・スプーフィング 53936268 2 --パーソナル・スプーフィング
23002292 2 --レッド・リブート 23002292 2 --レッド・リブート
!2019.10 TCG !2020.1 TCG
#forbidden #forbidden
59537380 0 --守護竜アガーペイン 76794549 0 --Astrograph Sorcerer
03679218 0 --トロイメア・マーメイド 09929398 0 --Blackwing - Gofu the Vague Shadow
76794549 0 --アストログラフ・マジシャン 53804307 0 --Blaster, Dragon Ruler of Infernos
20663556 0 --イレカエル 34124316 0 --Cyber Jar
44910027 0 --ヴィクトリー・ドラゴン 15341821 0 --Dandylion
51858306 0 --エクリプス・ワイバーン 08903700 0 --Djinn Releaser of Rituals
25862681 0 --エンシェント・フェアリー・ドラゴン 49684352 0 --Double Iris Magician
53804307 0 --焔征竜-ブラスター 51858306 0 --Eclipse Wyvern
07563579 0 --Emヒグルミ 55623480 0 --Fairy Tail - Snow
40318957 0 --EMドクロバット・ジョーカー 78706415 0 --Fiber Jar
17330916 0 --EMモンキーボード 93369354 0 --Fishborg Blaster
79106360 0 --カオスポッド 75732622 0 --Grinder Golem
90411554 0 --巌征竜-レドックス 57421866 0 --Level Eater
08903700 0 --儀式魔人リリーサー 34206604 0 --Magical Scientist
17412721 0 --旧神ノーデン 31178212 0 --Majespecter Unicorn - Kirin
65536818 0 --源竜星-ボウテンコウ 21593977 0 --Makyura the Destructor
49684352 0 --虹彩の魔術師 21377582 0 --Master Peace, the True Dracoslaying King
34124316 0 --サイバーポッド 23434538 0 --Maxx "C"
05592689 0 --サクリファイス・ロータス 96782886 0 --Mind Master
88071625 0 --The tyrant NEPTUNE 57835716 0 --Orcust Harp Horror
61665245 0 --サモン・ソーサレス 07563579 0 --Performage Plushfire
48905153 0 --十二獣ドランシア 17330916 0 --Performapal Monkeyboard
85115440 0 --十二獣ブルホーン 40318957 0 --Performapal Skullcrobat Joker
21593977 0 --処刑人-マキュラ 23558733 0 --Phoenixian Cluster Amaryllis
30539496 0 --真竜皇リトスアジムD 90411554 0 --Redox, Dragon Ruler of Boulders
21377582 0 --真竜剣皇マスターP 05592689 0 --Samsara Lotus
81122844 0 --発条空母ゼンマイティ 20663556 0 --Substitoad
23434538 0 --増殖するG 88071625 0 --The Tyrant Neptune
15341821 0 --ダンディライオン 26400609 0 --Tidal, Dragon Ruler of Waterfalls
18326736 0 --星守の騎士 プトレマイオス 44910027 0 --Victory Dragon
33184167 0 --同族感染ウィルス 03078576 0 --Yata-Garasu
75732622 0 --トーチ・ゴーレム 17412721 0 --Elder Entity Norden
22593417 0 --トポロジック・ガンブラー・ドラゴン 43387895 0 --Supreme King Dragon Starving Venom
39064822 0 --トロイメア・ゴブリン 15291624 0 --Thunder Dragon Colossus
54719828 0 --No.16 色の支配者ショック·ルーラー 05043010 0 --Firewall Dragon
10389142 0 --No.42 スターシップ・ギャラクシー・トマホーク 59537380 0 --Guardragon Agarpain
63504681 0 --No.86 HC ロンゴミアント 24094258 0 --Heavymetalfoes Electrumite
58820923 0 --No.95 ギャラクシーアイズ・ダークマター・ドラゴン 39064822 0 --Knightmare Goblin
43387895 0 --覇王眷竜スターヴ・ヴェノム 03679218 0 --Knightmare Mermaid
26400609 0 --瀑征竜-タイダル 61665245 0 --Summon Sorceress
78706415 0 --ファイバーポッド 26692769 0 --The Phantom Knights of Rusty Bardiche
05043010 0 --ファイアウォール・ドラゴン 22593417 0 --Topologic Gumblar Dragon
26692769 0 --幻影騎士団ラスティ・バルディッシュ 25862681 0 --Ancient Fairy Dragon
93369354 0 --フィッシュボーグ-ガンナー 65536818 0 --Denglong, First of the Yang Zing
55623480 0 --妖精伝姫-シラユキ 94677445 0 --Ib the World Chalice Justiciar
23558733 0 --フェニキシアン・クラスター・アマリリス 63101919 0 --Tempest Magician
09929398 0 --BF-朧影のゴウフウ 34086406 0 --Lavalval Chain
31178212 0 --マジェスペクター・ユニコーン 04423206 0 --M-X-Saber Invoker
34206604 0 --魔導サイエンティスト 54719828 0 --Number 16: Shock Master
04423206 0 --M.X-セイバー インヴォーカー 10389142 0 --Number 42: Galaxy Tomahawk
96782886 0 --メンタルマスター 63504681 0 --Number 86: Heroic Champion - Rhongomyniad
03078576 0 --八汰烏 58820923 0 --Number 95: Galaxy-Eyes Dark Matter Dragon
34086406 0 --ラヴァルバル·チェイン 34945480 0 --Outer Entity Azathot
57421866 0 --レベル・スティーラー 87327776 0 --Salamangreat Miragestallio
41482598 0 --悪夢の蜃気楼 18326736 0 --Tellarknight Ptolemaeus
44763025 0 --いたずら好きな双子悪魔 81122844 0 --Wind-Up Carrier Zenmaity
19613556 0 --大嵐 85115440 0 --Zoodiac Broadbull
17375316 0 --押収 48905153 0 --Zoodiac Drident
35059553 0 --カイザーコロシアム 07394770 0 --Brilliant Fusion
74191942 0 --苦渋の選択 69243953 0 --Butterfly Dagger - Elma
42829885 0 --強引な番兵 57953380 0 --Card of Safe Return
45986603 0 --強奪 04031928 0 --Change of Heart
55144522 0 --強欲な壺 67616300 0 --Chicken Game
04031928 0 --心変わり 60682203 0 --Cold Wave
23557835 0 --次元融合 17375316 0 --Confiscation
57953380 0 --生還の宝札 44763025 0 --Delinquent Duo
54447022 0 --ソウル・チャージ 23557835 0 --Dimension Fusion
60682203 0 --大寒波 42703248 0 --Giant Trunade
67616300 0 --チキンレース 79571449 0 --Graceful Charity
67169062 0 --貪欲な壺 18144506 0 --Harpie's Feather Duster
69243953 0 --蝶の短剣-エルマ 19613556 0 --Heavy Storm
79571449 0 --天使の施し 35059553 0 --Kaiser Colosseum
11110587 0 --隣の芝刈り 85602018 0 --Last Will
42703248 0 --ハリケーン 34906152 0 --Mass Driver
18144506 0 --ハーピィの羽根帚 46411259 0 --Metamorphosis
70828912 0 --早すぎた埋葬 41482598 0 --Mirage of Nightmare
34906152 0 --マスドライバー 74191942 0 --Painful Choice
46448938 0 --魔導書の神判 55144522 0 --Pot of Greed
46411259 0 --突然変異 70828912 0 --Premature Burial
85602018 0 --遺言状 94220427 0 --Rank-Up-Magic Argent Chaos Force
94220427 0 --RUM-アージェント・カオス・フォース 63166095 0 --Sky Striker Mobilize - Engage!
03298689 0 --RUM-幻影騎士団ラウンチ 45986603 0 --Snatch Steal
27174286 0 --異次元からの帰還 54447022 0 --Soul Charge
93016201 0 --王宮の弾圧 46448938 0 --Spellbook of Judgment
05851097 0 --虚無空間 11110587 0 --That Grass Looks Greener
57585212 0 --自爆スイッチ 42829885 0 --The Forceful Sentry
03280747 0 --第六感 28566710 0 --Last Turn
64697231 0 --ダスト·シュート 27174286 0 --Return from the Different Dimension
35316708 0 --刻の封印 93016201 0 --Royal Oppression
80604091 0 --血の代償 57585212 0 --Self-Destruct Button
28566710 0 --ラストバトル! 03280747 0 --Sixth Sense
35316708 0 --Time Seal
64697231 0 --Trap Dustshoot
80604091 0 --Ultimate Offering
05851097 0 --Vanity's Emptiness
#limit #limit
98338152 1 --閃刀機-ウィドウアンカー 07902349 1 --Left Arm of the Forbidden One
64034255 1 --A·ジェネクス·バードマン 44519536 1 --Left Leg of the Forbidden One
61901281 1 --暗黒竜 コラプサーペント 70903634 1 --Right Arm of the Forbidden One
45222299 1 --イビリチュア·ガストクラーケ 08124921 1 --Right Leg of the Forbidden One
11877465 1 --イビリチュア·マインドオーガス 42790071 1 --Altergeist Multifaker
99177923 1 --インフェルニティ·デーモン 28985331 1 --Armageddon Knight
27552504 1 --永遠の淑女 ベアトリーチェ 61901281 1 --Black Dragon Collapserpent
42790071 1 --オルターガイスト・マルチフェイカー 57143342 1 --Cir, Malebranche of the Burning Abyss
99234526 1 --輝白竜 ワイバースター 69015963 1 --Cyber-Stein
12958919 1 --幻銃士 70711847 1 --Danger! Nessie!
74586817 1 --PSYフレームロード・Ω 14536035 1 --Dark Grepher
26889158 1 --転生炎獣ガゼル 58984738 1 --Dinomight Knight, the True Dracofighter
39512984 1 --ジェムナイトマスター・ダイヤ 82385847 1 --Dinowrestler Pankratops
78872731 1 --十二獣モルモラット 33396948 1 --Exodia the Forbidden One
28985331 1 --終末の騎士 64034255 1 --Genex Ally Birdman
78868119 1 --深海のディーヴァ 20758643 1 --Graff, Malebranche of the Burning Abyss
58984738 1 --真竜拳士ダイナマイトK 99177923 1 --Infernity Archfiend
04474060 1 --SPYRAL GEAR-ドローン 33508719 1 --Morphing Jar
78080961 1 --SPYRAL-ジーニアス 16226786 1 --Night Assailant
81275020 1 --SRベイゴマックス 12958919 1 --Phantom Skyblaster
48063985 1 --聖霊獣騎 カンナホーク 88264978 1 --Red-Eyes Darkness Metal Dragon
63288573 1 --閃刀姫-カガリ 26889158 1 --Salamangreat Gazelle
14536035 1 --ダーク・グレファー 92559258 1 --Servant of Endymion
00581014 1 --ダイガスタ・エメラル 81275020 1 --Speedroid Terrortop
69015963 1 --デビル·フランケン 04474060 1 --SPYRAL GEAR - Drone
16226786 1 --深淵の暗殺者 78080961 1 --SPYRAL Quik-Fix
18239909 1 --爆竜剣士イグニスターP 89399912 1 --Tempest, Dragon Ruler of Storms
57143342 1 --彼岸の悪鬼 ガトルホッグ 30539496 1 --True King Lithosagym, the Disaster
20758643 1 --彼岸の悪鬼 グラバースニッチ 99234526 1 --White Dragon Wyverburster
70583986 1 --氷結界の虎王ドゥローレン 78872731 1 --Zoodiac Ratpier
33396948 1 --封印されしエクゾディア 45222299 1 --Evigishki Gustkraken
07902349 1 --封印されし者の左腕 11877465 1 --Evigishki Mind Augus
70903634 1 --封印されし者の右腕 89463537 1 --Nekroz of Unicore
44519536 1 --封印されし者の左足 39512984 1 --Gem-Knight Master Diamond
08124921 1 --封印されし者の右足 48063985 1 --Ritual Beast Ulti-Cannahawk
24094258 1 --ヘビーメタルフォーゼ・エレクトラム 70583986 1 --Dewloren, Tiger King of the Ice Barrier
10802915 1 --魔界発現世行きデスガイド 18239909 1 --Ignister Prominence, the Blasting Dracoslayer
33508719 1 --メタモルポット 74586817 1 --PSY-Framelord Omega
89463537 1 --ユニコールの影霊衣 27552504 1 --Beatrice, Lady of the Eternal
89399912 1 --嵐征竜-テンペスト 00581014 1 --Daigusto Emeral
88264978 1 --レッドアイズ·ダークネスメタルドラゴン 08949584 1 --A Hero Lives
16188701 1 --レディ・デバッガー 72892473 1 --Card Destruction
71344451 1 --一撃必殺!居合いドロー 59750328 1 --Card of Demise
33782437 1 --一時休戦 91623717 1 --Chain Strike
66957584 1 --インフェルニティガン 81674782 1 --Dimensional Fissure
81439173 1 --おろかな埋葬 15854426 1 --Divine Wind of Mist Valley
67723438 1 --緊急テレポート 14733538 1 --Draco Face-Off
45305419 1 --継承の印 13035077 1 --Dragonic Diagram
52155219 1 --転生炎獣の炎陣 67723438 1 --Emergency Teleport
12580477 1 --サンダー·ボルト 95308449 1 --Final Countdown
81674782 1 --次元の裂け目 81439173 1 --Foolish Burial
83764718 1 --死者蘇生 27970830 1 --Gateway of the Six
95308449 1 --終焉のカウントダウン 75500286 1 --Gold Sarcophagus
35125879 1 --真竜皇の復活 66957584 1 --Infernity Launcher
73915051 1 --スケープ・ゴート 93946239 1 --Into the Void
54631665 1 --SPYRAL RESORT 71650854 1 --Magical Mid-Breaker Field
24010609 1 --閃刀機関-マルチロール 83764718 1 --Monster Reborn
52340444 1 --閃刀機-ホーネットビット 33782437 1 --One Day of Peace
32807846 1 --増援 02295440 1 --One for One
72892473 1 --手札抹殺 22842126 1 --Pantheism of the Monarchs
91623717 1 --連鎖爆撃 67169062 1 --Pot of Avarice
14087893 1 --月の書 12580477 1 --Raigeki
73628505 1 --テラ・フォーミング 58577036 1 --Reasoning
35371948 1 --トリックスター・ライトステージ 32807846 1 --Reinforcement of the Army
70368879 1 --成金ゴブリン 52155219 1 --Salamangreat Circle
22842126 1 --汎神の帝王 73915051 1 --Scapegoat
71650854 1 --半魔導帯域 24940422 1 --Sekka's Light
08949584 1 --ヒーローアライブ 73468603 1 --Set Rotation
75500286 1 --封印の黄金櫃 52340444 1 --Sky Striker Mecha - Hornet Drones
07394770 1 --ブリリアント・フュージョン 98338152 1 --Sky Striker Mecha - Widow Anchor
73468603 1 --盆回し 24010609 1 --Sky Striker Mecha Modules - Multirole
15854426 1 --霞の谷の神風 71344451 1 --Slash Draw
58577036 1 --名推理 54631665 1 --SPYRAL Resort
14733538 1 --竜呼相打つ 45305419 1 --Symbol of Heritage
27970830 1 --六武の門 73628505 1 --Terraforming
02295440 1 --ワン·フォー·ワン 35371948 1 --Trickstar Light Stage
61740673 1 --王宮の勅命 70368879 1 --Upstart Goblin
84749824 1 --神の警告 61740673 1 --Imperial Order
82732705 1 --スキルドレイン 30241314 1 --Macro Cosmos
73599290 1 --ソウルドレイン 32723153 1 --Magical Explosion
17078030 1 --光の護封壁 89208725 1 --Metaverse
30241314 1 --マクロコスモス 23002292 1 --Red Reboot
32723153 1 --マジカル·エクスプロージョン 82732705 1 --Skill Drain
89208725 1 --メタバース 35125879 1 --True King's Return
17078030 1 --Wall of Revealing Light
#semi limit #semi limit
65192027 2 --ダーク·アームド·ドラゴン
68819554 2 --Emダメージ・ジャグラー
43694650 2 --Danger!? Jackalope? 43694650 2 --Danger!? Jackalope?
99745551 2 --Danger!? Tsuchinoko? 99745551 2 --Danger!? Tsuchinoko?
70711847 2 --Danger! Nessie! 78868119 2 --Deep Sea Diva
28297833 2 --ネクロフェイス 28297833 2 --Necroface
10802915 2 --Tour Guide From the Underworld
37520316 2 --Mind Control
!2019.10 !2019.10
#forbidden #forbidden
...@@ -4125,6 +4130,192 @@ ...@@ -4125,6 +4130,192 @@
53582587 2 --激流葬 53582587 2 --激流葬
29401950 2 --奈落の落とし穴 29401950 2 --奈落の落とし穴
!2019.10 TCG
#forbidden
59537380 0 --守護竜アガーペイン
03679218 0 --トロイメア・マーメイド
76794549 0 --アストログラフ・マジシャン
20663556 0 --イレカエル
44910027 0 --ヴィクトリー・ドラゴン
51858306 0 --エクリプス・ワイバーン
25862681 0 --エンシェント・フェアリー・ドラゴン
53804307 0 --焔征竜-ブラスター
07563579 0 --Emヒグルミ
40318957 0 --EMドクロバット・ジョーカー
17330916 0 --EMモンキーボード
79106360 0 --カオスポッド
90411554 0 --巌征竜-レドックス
08903700 0 --儀式魔人リリーサー
17412721 0 --旧神ノーデン
65536818 0 --源竜星-ボウテンコウ
49684352 0 --虹彩の魔術師
34124316 0 --サイバーポッド
05592689 0 --サクリファイス・ロータス
88071625 0 --The tyrant NEPTUNE
61665245 0 --サモン・ソーサレス
48905153 0 --十二獣ドランシア
85115440 0 --十二獣ブルホーン
21593977 0 --処刑人-マキュラ
30539496 0 --真竜皇リトスアジムD
21377582 0 --真竜剣皇マスターP
81122844 0 --発条空母ゼンマイティ
23434538 0 --増殖するG
15341821 0 --ダンディライオン
18326736 0 --星守の騎士 プトレマイオス
33184167 0 --同族感染ウィルス
75732622 0 --トーチ・ゴーレム
22593417 0 --トポロジック・ガンブラー・ドラゴン
39064822 0 --トロイメア・ゴブリン
54719828 0 --No.16 色の支配者ショック·ルーラー
10389142 0 --No.42 スターシップ・ギャラクシー・トマホーク
63504681 0 --No.86 HC ロンゴミアント
58820923 0 --No.95 ギャラクシーアイズ・ダークマター・ドラゴン
43387895 0 --覇王眷竜スターヴ・ヴェノム
26400609 0 --瀑征竜-タイダル
78706415 0 --ファイバーポッド
05043010 0 --ファイアウォール・ドラゴン
26692769 0 --幻影騎士団ラスティ・バルディッシュ
93369354 0 --フィッシュボーグ-ガンナー
55623480 0 --妖精伝姫-シラユキ
23558733 0 --フェニキシアン・クラスター・アマリリス
09929398 0 --BF-朧影のゴウフウ
31178212 0 --マジェスペクター・ユニコーン
34206604 0 --魔導サイエンティスト
04423206 0 --M.X-セイバー インヴォーカー
96782886 0 --メンタルマスター
03078576 0 --八汰烏
34086406 0 --ラヴァルバル·チェイン
57421866 0 --レベル・スティーラー
41482598 0 --悪夢の蜃気楼
44763025 0 --いたずら好きな双子悪魔
19613556 0 --大嵐
17375316 0 --押収
35059553 0 --カイザーコロシアム
74191942 0 --苦渋の選択
42829885 0 --強引な番兵
45986603 0 --強奪
55144522 0 --強欲な壺
04031928 0 --心変わり
23557835 0 --次元融合
57953380 0 --生還の宝札
54447022 0 --ソウル・チャージ
60682203 0 --大寒波
67616300 0 --チキンレース
67169062 0 --貪欲な壺
69243953 0 --蝶の短剣-エルマ
79571449 0 --天使の施し
11110587 0 --隣の芝刈り
42703248 0 --ハリケーン
18144506 0 --ハーピィの羽根帚
70828912 0 --早すぎた埋葬
34906152 0 --マスドライバー
46448938 0 --魔導書の神判
46411259 0 --突然変異
85602018 0 --遺言状
94220427 0 --RUM-アージェント・カオス・フォース
03298689 0 --RUM-幻影騎士団ラウンチ
27174286 0 --異次元からの帰還
93016201 0 --王宮の弾圧
05851097 0 --虚無空間
57585212 0 --自爆スイッチ
03280747 0 --第六感
64697231 0 --ダスト·シュート
35316708 0 --刻の封印
80604091 0 --血の代償
28566710 0 --ラストバトル!
#limit
98338152 1 --閃刀機-ウィドウアンカー
64034255 1 --A·ジェネクス·バードマン
61901281 1 --暗黒竜 コラプサーペント
45222299 1 --イビリチュア·ガストクラーケ
11877465 1 --イビリチュア·マインドオーガス
99177923 1 --インフェルニティ·デーモン
27552504 1 --永遠の淑女 ベアトリーチェ
42790071 1 --オルターガイスト・マルチフェイカー
99234526 1 --輝白竜 ワイバースター
12958919 1 --幻銃士
74586817 1 --PSYフレームロード・Ω
26889158 1 --転生炎獣ガゼル
39512984 1 --ジェムナイトマスター・ダイヤ
78872731 1 --十二獣モルモラット
28985331 1 --終末の騎士
78868119 1 --深海のディーヴァ
58984738 1 --真竜拳士ダイナマイトK
04474060 1 --SPYRAL GEAR-ドローン
78080961 1 --SPYRAL-ジーニアス
81275020 1 --SRベイゴマックス
48063985 1 --聖霊獣騎 カンナホーク
63288573 1 --閃刀姫-カガリ
14536035 1 --ダーク・グレファー
00581014 1 --ダイガスタ・エメラル
69015963 1 --デビル·フランケン
16226786 1 --深淵の暗殺者
18239909 1 --爆竜剣士イグニスターP
57143342 1 --彼岸の悪鬼 ガトルホッグ
20758643 1 --彼岸の悪鬼 グラバースニッチ
70583986 1 --氷結界の虎王ドゥローレン
33396948 1 --封印されしエクゾディア
07902349 1 --封印されし者の左腕
70903634 1 --封印されし者の右腕
44519536 1 --封印されし者の左足
08124921 1 --封印されし者の右足
24094258 1 --ヘビーメタルフォーゼ・エレクトラム
10802915 1 --魔界発現世行きデスガイド
33508719 1 --メタモルポット
89463537 1 --ユニコールの影霊衣
89399912 1 --嵐征竜-テンペスト
88264978 1 --レッドアイズ·ダークネスメタルドラゴン
16188701 1 --レディ・デバッガー
71344451 1 --一撃必殺!居合いドロー
33782437 1 --一時休戦
66957584 1 --インフェルニティガン
81439173 1 --おろかな埋葬
67723438 1 --緊急テレポート
45305419 1 --継承の印
52155219 1 --転生炎獣の炎陣
12580477 1 --サンダー·ボルト
81674782 1 --次元の裂け目
83764718 1 --死者蘇生
95308449 1 --終焉のカウントダウン
35125879 1 --真竜皇の復活
73915051 1 --スケープ・ゴート
54631665 1 --SPYRAL RESORT
24010609 1 --閃刀機関-マルチロール
52340444 1 --閃刀機-ホーネットビット
32807846 1 --増援
72892473 1 --手札抹殺
91623717 1 --連鎖爆撃
14087893 1 --月の書
73628505 1 --テラ・フォーミング
35371948 1 --トリックスター・ライトステージ
70368879 1 --成金ゴブリン
22842126 1 --汎神の帝王
71650854 1 --半魔導帯域
08949584 1 --ヒーローアライブ
75500286 1 --封印の黄金櫃
07394770 1 --ブリリアント・フュージョン
73468603 1 --盆回し
15854426 1 --霞の谷の神風
58577036 1 --名推理
14733538 1 --竜呼相打つ
27970830 1 --六武の門
02295440 1 --ワン·フォー·ワン
61740673 1 --王宮の勅命
84749824 1 --神の警告
82732705 1 --スキルドレイン
73599290 1 --ソウルドレイン
17078030 1 --光の護封壁
30241314 1 --マクロコスモス
32723153 1 --マジカル·エクスプロージョン
89208725 1 --メタバース
#semi limit
65192027 2 --ダーク·アームド·ドラゴン
68819554 2 --Emダメージ・ジャグラー
43694650 2 --Danger!? Jackalope?
99745551 2 --Danger!? Tsuchinoko?
70711847 2 --Danger! Nessie!
28297833 2 --ネクロフェイス
!2019.7 TCG !2019.7 TCG
#forbidden #forbidden
76794549 0 --アストログラフ・マジシャン 76794549 0 --アストログラフ・マジシャン
......
...@@ -43,9 +43,6 @@ solution "ygo" ...@@ -43,9 +43,6 @@ solution "ygo"
defines "NDEBUG" defines "NDEBUG"
buildoptions "-march=native" buildoptions "-march=native"
configuration { "Debug", "vs*" }
defines { "_ITERATOR_DEBUG_LEVEL=0" }
configuration "Release" configuration "Release"
--flags { "OptimizeSpeed" } --flags { "OptimizeSpeed" }
targetdir "bin/release" targetdir "bin/release"
......
...@@ -53,6 +53,8 @@ ...@@ -53,6 +53,8 @@
!system 98 是否要解放对方怪兽? !system 98 是否要解放对方怪兽?
!system 100 先攻 !system 100 先攻
!system 101 后攻 !system 101 后攻
!system 102 我方
!system 103 对方
!system 200 是否在[%ls]发动[%ls]的效果? !system 200 是否在[%ls]发动[%ls]的效果?
!system 201 此时没有可以发动的效果 !system 201 此时没有可以发动的效果
!system 202 是否要确认场上的情况? !system 202 是否要确认场上的情况?
...@@ -204,6 +206,7 @@ ...@@ -204,6 +206,7 @@
!system 1075 特殊召唤 !system 1075 特殊召唤
!system 1076 连接 !system 1076 连接
!system 1080 (N/A) !system 1080 (N/A)
!system 1081 额外怪兽区
#GUI #GUI
!system 1100 魔陷破坏 !system 1100 魔陷破坏
!system 1101 怪兽破坏 !system 1101 怪兽破坏
...@@ -535,7 +538,8 @@ ...@@ -535,7 +538,8 @@
!victory 0x1d 「方程式运动员胜利团队」效果胜利 !victory 0x1d 「方程式运动员胜利团队」效果胜利
!victory 0x1e 「飞行象」效果胜利 !victory 0x1e 「飞行象」效果胜利
!victory 0x1f 「守护神 艾克佐迪亚」效果胜利 !victory 0x1f 「守护神 艾克佐迪亚」效果胜利
!victory 0x20 由于「%ls」的效果获得比赛胜利 !victory 0x20 「真艾克佐迪亚」效果胜利
!victory 0xffff 由于「%ls」的效果获得比赛胜利
#counters #counters
!counter 0x1 魔力指示物 !counter 0x1 魔力指示物
!counter 0x1002 楔指示物 !counter 0x1002 楔指示物
...@@ -1020,3 +1024,6 @@ ...@@ -1020,3 +1024,6 @@
!setname 0x139 守护神官 守護神官 !setname 0x139 守护神官 守護神官
!setname 0x13a 拟声 オノマト !setname 0x13a 拟声 オノマト
!setname 0x13b 叛逆 リベリオン !setname 0x13b 叛逆 リベリオン
!setname 0x13c 代码破坏者 コードブレイカー
!setname 0x13d 星义 ネメシス
!setname 0x13e 巴巴罗斯 バルバロス
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