DREAMWEB: Move checkCoords templated implementation to Dreambase header.

The PSP (MIPS) toolchain generates differing symbols for this template
and thus fails to link. By moving the implementation to the defining
header, this should fix this.
This commit is contained in:
D G Turner 2011-12-28 02:49:27 +00:00
parent 4c2d2684ea
commit 1ff19e19e7
2 changed files with 15 additions and 15 deletions

View File

@ -778,7 +778,21 @@ public:
void setAllChanges();
void restoreAll();
void redrawMainScrn();
template <class T> void checkCoords(const RectWithCallback<T> *rectWithCallbacks);
template <class T>
void checkCoords(const RectWithCallback<T> *rectWithCallbacks) {
if (_newLocation != 0xff)
return;
const RectWithCallback<T> *r;
for (r = rectWithCallbacks; r->_xMin != 0xffff; ++r) {
if (r->contains(_mouseX, _mouseY)) {
(((T *)this)->*(r->_callback))();
return;
}
}
}
void newGame();
void deleteTaken();
void autoAppear();

View File

@ -1527,20 +1527,6 @@ void DreamBase::dumpPointer() {
multiDump(_oldPointerX, _oldPointerY, _pointerXS, _pointerYS);
}
template <class T>
void DreamBase::checkCoords(const RectWithCallback<T> *rectWithCallbacks) {
if (_newLocation != 0xff)
return;
const RectWithCallback<T> *r;
for (r = rectWithCallbacks; r->_xMin != 0xffff; ++r) {
if (r->contains(_mouseX, _mouseY)) {
(((T *)this)->*(r->_callback))();
return;
}
}
}
void DreamBase::showPointer() {
showBlink();
uint16 x = _mouseX;