From dd6c40febf846fbb1730326b4c578091b2e36a76 Mon Sep 17 00:00:00 2001 From: coppro Date: Fri, 6 Jul 2007 17:30:26 +0000 Subject: [PATCH] Compatibility update (escaped trigraphs) (yay for unused standard features) Used real casting in ChoiceThumbnailRequest (can now bactrace card list errors properly) git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@509 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/gfx/generated_image.hpp | 2 +- src/gui/value/choice.cpp | 24 +++++++++++++----------- src/script/context.cpp | 8 ++++---- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/gfx/generated_image.hpp b/src/gfx/generated_image.hpp index 7836d1e1..fb6473dc 100644 --- a/src/gfx/generated_image.hpp +++ b/src/gfx/generated_image.hpp @@ -165,7 +165,7 @@ class SetCombineImage : public GeneratedImage { class EnlargeImage : public GeneratedImage { public: inline EnlargeImage(const GeneratedImageP& image, double border_size) - : image(image), border_size(abs(border_size)) + : image(image), border_size(fabs(border_size)) {} virtual Image generate(const Options& opt) const; virtual ImageCombine combine() const; diff --git a/src/gui/value/choice.cpp b/src/gui/value/choice.cpp index 7c3f4601..c1b12767 100644 --- a/src/gui/value/choice.cpp +++ b/src/gui/value/choice.cpp @@ -33,7 +33,7 @@ class ChoiceThumbnailRequest : public ThumbnailRequest { ChoiceThumbnailRequest::ChoiceThumbnailRequest(ValueViewer* cve, int id, bool from_disk) : ThumbnailRequest( - cve, + reinterpret_cast (cve), cve->viewer.stylesheet->name() + _("/") + cve->getField()->name + _("/") << id, from_disk ? cve->viewer.stylesheet->lastModified() : wxDateTime::Now() @@ -41,24 +41,26 @@ ChoiceThumbnailRequest::ChoiceThumbnailRequest(ValueViewer* cve, int id, bool fr , stylesheet(cve->viewer.stylesheet) , id(id) { - ChoiceValueEditor e = *(ChoiceValueEditor*)cve; - String name = cannocial_name_form(e.field().choices->choiceName(id)); - ScriptableImage img = e.style().choice_images[name]; + ChoiceValueEditor* e = dynamic_cast (cve); + if (!e) + throw InternalError(_("Non-editor passed to ChoiceThumbnailRequest")); + String name = cannocial_name_form(e->field().choices->choiceName(id)); + ScriptableImage img = e->style().choice_images[name]; isThreadSafe = img.threadSafe(); } Image ChoiceThumbnailRequest::generate() { - ChoiceValueEditor& cve = *(ChoiceValueEditor*)owner; - String name = cannocial_name_form(cve.field().choices->choiceName(id)); - ScriptableImage& img = cve.style().choice_images[name]; + ChoiceValueEditor* cve = reinterpret_cast (owner); + String name = cannocial_name_form(cve->field().choices->choiceName(id)); + ScriptableImage& img = cve->style().choice_images[name]; return img.isReady() - ? img.generate(GeneratedImage::Options(16,16, stylesheet.get(), &cve.getSet(), ASPECT_BORDER, true), false) + ? img.generate(GeneratedImage::Options(16,16, stylesheet.get(), &cve->getSet(), ASPECT_BORDER, true), false) : wxImage(); } void ChoiceThumbnailRequest::store(const Image& img) { - ChoiceValueEditor& cve = *(ChoiceValueEditor*)owner; - wxImageList* il = cve.style().thumbnails; + ChoiceValueEditor* cve = reinterpret_cast (owner); + wxImageList* il = cve->style().thumbnails; while (id > il->GetImageCount()) { il->Add(wxBitmap(16,16),*wxBLACK); } @@ -89,7 +91,7 @@ void ChoiceThumbnailRequest::store(const Image& img) { } else { il->Replace(id, img); } - cve.style().thumbnails_status[id] = THUMB_OK; + cve->style().thumbnails_status[id] = THUMB_OK; } } diff --git a/src/script/context.cpp b/src/script/context.cpp index 7234ca30..2034e718 100644 --- a/src/script/context.cpp +++ b/src/script/context.cpp @@ -134,15 +134,15 @@ ScriptValueP Context::eval(const Script& script, bool useScope) { if (instr_bt->instr == I_GET_VAR) { throw ScriptError(e.what() + _("\n in function: ") + variable_to_string(instr_bt->data)); } else if (instr_bt->instr == I_MEMBER_C) { - throw ScriptError(e.what() + _("\n in function: ???.") + *script.constants[instr_bt->data]); + throw ScriptError(e.what() + _("\n in function: ??\?.") + script.constants[instr_bt->data]->operator String()); } else if (instr_bt->instr == I_BINARY && instr_bt->instr2 == I_MEMBER) { - throw ScriptError(e.what() + _("\n in function: ???[???]")); + throw ScriptError(e.what() + _("\n in function: ??\?[??\?]")); } else if (instr_bt->instr == I_BINARY && instr_bt->instr2 == I_ADD) { throw ScriptError(e.what() + _("\n in function: ??? + ???")); } else if (instr_bt->instr == I_NOP || instr_bt->instr == I_CALL) { - throw ScriptError(e.what() + _("\n in function: ???(???)")); + throw ScriptError(e.what() + _("\n in function: ??\?(??\?)")); } else { - throw ScriptError(e.what() + _("\n in function: ???")); + throw ScriptError(e.what() + _("\n in function: ??\?")); } } else { throw e; // rethrow