Crud removal: Context is gone. Added missing FakeSDL.h
							parent
							
								
									4da11927af
								
							
						
					
					
						commit
						e0fb8f7c81
					
				| @ -1,181 +0,0 @@ | ||||
| /*
 | ||||
| https://github.com/peterix/dfhack
 | ||||
| Copyright (c) 2009-2011 Petr Mrázek (peterix@gmail.com) | ||||
| 
 | ||||
| This software is provided 'as-is', without any express or implied | ||||
| warranty. In no event will the authors be held liable for any | ||||
| damages arising from the use of this software. | ||||
| 
 | ||||
| Permission is granted to anyone to use this software for any | ||||
| purpose, including commercial applications, and to alter it and | ||||
| redistribute it freely, subject to the following restrictions: | ||||
| 
 | ||||
| 1. The origin of this software must not be misrepresented; you must | ||||
| not claim that you wrote the original software. If you use this | ||||
| software in a product, an acknowledgment in the product documentation | ||||
| would be appreciated but is not required. | ||||
| 
 | ||||
| 2. Altered source versions must be plainly marked as such, and | ||||
| must not be misrepresented as being the original software. | ||||
| 
 | ||||
| 3. This notice may not be removed or altered from any source | ||||
| distribution. | ||||
| */ | ||||
| 
 | ||||
| 
 | ||||
| #include "Internal.h" | ||||
| 
 | ||||
| #include <string> | ||||
| #include <vector> | ||||
| #include <cstring> | ||||
| using namespace std; | ||||
| 
 | ||||
| #include "dfhack/Process.h" | ||||
| #include "dfhack/Context.h" | ||||
| #include "dfhack/Error.h" | ||||
| #include "dfhack/Module.h" | ||||
| 
 | ||||
| #include "private/ContextShared.h" | ||||
| #include "private/ModuleFactory.h" | ||||
| 
 | ||||
| using namespace DFHack; | ||||
| 
 | ||||
| Context::Context (Process* p) : d (new DFContextShared()) | ||||
| { | ||||
|     d->p = p; | ||||
|     d->offset_descriptor = p->getDescriptor(); | ||||
|     d->shm_start = 0; | ||||
| } | ||||
| 
 | ||||
| Context::~Context() | ||||
| { | ||||
|     //Detach();
 | ||||
|     delete d; | ||||
| } | ||||
| 
 | ||||
| bool Context::isValid() | ||||
| { | ||||
|     //FIXME: check for error states here
 | ||||
|     if(d->p->isIdentified()) | ||||
|         return true; | ||||
|     return false; | ||||
| } | ||||
| /*
 | ||||
| bool Context::Attach() | ||||
| { | ||||
|     if (!d->p->attach()) | ||||
|     { | ||||
|         //throw Error::CantAttach();
 | ||||
|         return false; | ||||
|     } | ||||
|     d->shm_start = d->p->getSHMStart(); | ||||
|     // process is attached, everything went just fine... hopefully
 | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| bool Context::Detach() | ||||
| { | ||||
|     if (!d->p->detach()) | ||||
|     { | ||||
|         cerr << "Context::Detach failed!" << endl; | ||||
|         return false; | ||||
|     } | ||||
|     d->shm_start = 0; | ||||
|     // invalidate all modules
 | ||||
|     for(unsigned int i = 0 ; i < d->allModules.size(); i++) | ||||
|     { | ||||
|         delete d->allModules[i]; | ||||
|     } | ||||
|     d->allModules.clear(); | ||||
|     memset(&(d->s_mods), 0, sizeof(d->s_mods)); | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| bool Context::isAttached() | ||||
| { | ||||
|     return d->p->isAttached(); | ||||
| } | ||||
| */ | ||||
| bool Context::Suspend() | ||||
| { | ||||
| //    return d->p->suspend();
 | ||||
| 	return true; | ||||
| } | ||||
| bool Context::AsyncSuspend() | ||||
| { | ||||
| //    return d->p->asyncSuspend();
 | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
| bool Context::Resume() | ||||
| { | ||||
|     for(unsigned int i = 0 ; i < d->allModules.size(); i++) | ||||
|     { | ||||
|         d->allModules[i]->OnResume(); | ||||
|     } | ||||
|     //return d->p->resume();
 | ||||
| 	return true; | ||||
| } | ||||
| /*
 | ||||
| bool Context::ForceResume() | ||||
| { | ||||
|     for(unsigned int i = 0 ; i < d->allModules.size(); i++) | ||||
|     { | ||||
|         d->allModules[i]->OnResume(); | ||||
|     } | ||||
|     return d->p->forceresume(); | ||||
| } | ||||
| */ | ||||
| bool Context::isSuspended() | ||||
| { | ||||
|     return d->p->isSuspended(); | ||||
| } | ||||
| /*
 | ||||
| void Context::ReadRaw (const uint32_t offset, const uint32_t size, uint8_t *target) | ||||
| { | ||||
|     d->p->read (offset, size, target); | ||||
| } | ||||
| 
 | ||||
| void Context::WriteRaw (const uint32_t offset, const uint32_t size, uint8_t *source) | ||||
| { | ||||
|     d->p->write (offset, size, source); | ||||
| } | ||||
| */ | ||||
| VersionInfo *Context::getMemoryInfo() | ||||
| { | ||||
|     return d->offset_descriptor; | ||||
| } | ||||
| 
 | ||||
| Process * Context::getProcess() | ||||
| { | ||||
|     return d->p; | ||||
| } | ||||
| 
 | ||||
| /*******************************************************************************
 | ||||
|                                 M O D U L E S | ||||
| *******************************************************************************/ | ||||
| 
 | ||||
| #define MODULE_GETTER(TYPE) \ | ||||
| TYPE * Context::get##TYPE() \ | ||||
| { \ | ||||
|     if(!d->s_mods.p##TYPE)\ | ||||
|     {\ | ||||
|         Module * mod = create##TYPE(d);\ | ||||
|         d->s_mods.p##TYPE = (TYPE *) mod;\ | ||||
|         d->allModules.push_back(mod);\ | ||||
|     }\ | ||||
|     return d->s_mods.p##TYPE;\ | ||||
| } | ||||
| 
 | ||||
| MODULE_GETTER(Creatures); | ||||
| MODULE_GETTER(Engravings); | ||||
| MODULE_GETTER(Maps); | ||||
| MODULE_GETTER(Gui); | ||||
| MODULE_GETTER(World); | ||||
| MODULE_GETTER(Materials); | ||||
| MODULE_GETTER(Items); | ||||
| MODULE_GETTER(Translation); | ||||
| MODULE_GETTER(Vegetation); | ||||
| MODULE_GETTER(Buildings); | ||||
| MODULE_GETTER(Constructions); | ||||
| @ -1,112 +0,0 @@ | ||||
| /*
 | ||||
| https://github.com/peterix/dfhack
 | ||||
| Copyright (c) 2009-2011 Petr Mrázek (peterix@gmail.com) | ||||
| 
 | ||||
| This software is provided 'as-is', without any express or implied | ||||
| warranty. In no event will the authors be held liable for any | ||||
| damages arising from the use of this software. | ||||
| 
 | ||||
| Permission is granted to anyone to use this software for any | ||||
| purpose, including commercial applications, and to alter it and | ||||
| redistribute it freely, subject to the following restrictions: | ||||
| 
 | ||||
| 1. The origin of this software must not be misrepresented; you must | ||||
| not claim that you wrote the original software. If you use this | ||||
| software in a product, an acknowledgment in the product documentation | ||||
| would be appreciated but is not required. | ||||
| 
 | ||||
| 2. Altered source versions must be plainly marked as such, and | ||||
| must not be misrepresented as being the original software. | ||||
| 
 | ||||
| 3. This notice may not be removed or altered from any source | ||||
| distribution. | ||||
| */ | ||||
| 
 | ||||
| #include "Internal.h" | ||||
| 
 | ||||
| #include <string> | ||||
| #include <vector> | ||||
| #include <map> | ||||
| #include <cstring> | ||||
| using namespace std; | ||||
| 
 | ||||
| #include "private/ContextShared.h" | ||||
| #include "dfhack/VersionInfo.h" | ||||
| #include "dfhack/Process.h" | ||||
| #include "dfhack/Module.h" | ||||
| using namespace DFHack; | ||||
| 
 | ||||
| DFContextShared::DFContextShared() | ||||
| { | ||||
|     // init modules
 | ||||
|     allModules.clear(); | ||||
|     memset(&(s_mods), 0, sizeof(s_mods)); | ||||
|     namesInited = false; | ||||
|     namesFailed = false; | ||||
| } | ||||
| 
 | ||||
| DFContextShared::~DFContextShared() | ||||
| { | ||||
|     // invalidate all modules
 | ||||
|     for(unsigned int i = 0 ; i < allModules.size(); i++) | ||||
|     { | ||||
|         delete allModules[i]; | ||||
|     } | ||||
|     allModules.clear(); | ||||
| } | ||||
| 
 | ||||
| bool DFContextShared::InitReadNames() | ||||
| { | ||||
|     try | ||||
|     { | ||||
|         OffsetGroup * OG = offset_descriptor->getGroup("name"); | ||||
|         name_firstname_offset = OG->getOffset("first"); | ||||
|         name_nickname_offset = OG->getOffset("nick"); | ||||
|         name_words_offset = OG->getOffset("second_words"); | ||||
|         name_parts_offset = OG->getOffset("parts_of_speech"); | ||||
|         name_language_offset = OG->getOffset("language"); | ||||
|         name_set_offset = OG->getOffset("has_name"); | ||||
|     } | ||||
|     catch(exception &) | ||||
|     { | ||||
|         namesFailed = true; | ||||
|         return false; | ||||
|     } | ||||
|     namesInited = true; | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| void DFContextShared::readName(t_name & name, uint32_t address) | ||||
| { | ||||
|     if(namesFailed) | ||||
|     { | ||||
|         return; | ||||
|     } | ||||
|     if(!namesInited) | ||||
|     { | ||||
|         if(!InitReadNames()) return; | ||||
|     } | ||||
|     p->readSTLString(address + name_firstname_offset , name.first_name, 128); | ||||
|     p->readSTLString(address + name_nickname_offset , name.nickname, 128); | ||||
|     p->read(address + name_words_offset, 7*4, (uint8_t *)name.words); | ||||
|     p->read(address + name_parts_offset, 7*2, (uint8_t *)name.parts_of_speech); | ||||
|     name.language = p->readDWord(address + name_language_offset); | ||||
|     name.has_name = p->readByte(address + name_set_offset); | ||||
| } | ||||
| 
 | ||||
| void DFContextShared::copyName(uint32_t address, uint32_t target) | ||||
| { | ||||
|     uint8_t buf[28]; | ||||
| 
 | ||||
|     if (address == target) | ||||
|         return; | ||||
| 
 | ||||
|     p->copySTLString(address + name_firstname_offset, target + name_firstname_offset); | ||||
|     p->copySTLString(address + name_nickname_offset, target + name_nickname_offset); | ||||
|     p->read(address + name_words_offset, 7*4, buf); | ||||
|     p->write(target + name_words_offset, 7*4, buf); | ||||
|     p->read(address + name_parts_offset, 7*2, buf); | ||||
|     p->write(target + name_parts_offset, 7*2, buf); | ||||
|     p->writeDWord(target + name_language_offset, p->readDWord(address + name_language_offset)); | ||||
|     p->writeByte(target + name_set_offset, p->readByte(address + name_set_offset)); | ||||
| } | ||||
| @ -1,169 +0,0 @@ | ||||
| /*
 | ||||
| https://github.com/peterix/dfhack
 | ||||
| Copyright (c) 2009-2011 Petr Mrázek (peterix@gmail.com) | ||||
| 
 | ||||
| This software is provided 'as-is', without any express or implied | ||||
| warranty. In no event will the authors be held liable for any | ||||
| damages arising from the use of this software. | ||||
| 
 | ||||
| Permission is granted to anyone to use this software for any | ||||
| purpose, including commercial applications, and to alter it and | ||||
| redistribute it freely, subject to the following restrictions: | ||||
| 
 | ||||
| 1. The origin of this software must not be misrepresented; you must | ||||
| not claim that you wrote the original software. If you use this | ||||
| software in a product, an acknowledgment in the product documentation | ||||
| would be appreciated but is not required. | ||||
| 
 | ||||
| 2. Altered source versions must be plainly marked as such, and | ||||
| must not be misrepresented as being the original software. | ||||
| 
 | ||||
| 3. This notice may not be removed or altered from any source | ||||
| distribution. | ||||
| */ | ||||
| 
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #ifndef CONTEXT_H_INCLUDED | ||||
| #define CONTEXT_H_INCLUDED | ||||
| 
 | ||||
| #include "dfhack/Export.h" | ||||
| namespace DFHack | ||||
| { | ||||
|     class Creatures; | ||||
|     class Engravings; | ||||
|     class Maps; | ||||
|     class Gui; | ||||
|     class World; | ||||
|     class Materials; | ||||
|     class Items; | ||||
|     class Translation; | ||||
|     class Vegetation; | ||||
|     class Buildings; | ||||
|     class Constructions; | ||||
|     class VersionInfo; | ||||
|     class DFContextShared; | ||||
|     class Process; | ||||
|     /**
 | ||||
|      * This class wraps all the different related objects for a particular Process | ||||
|      * \ingroup grp_context | ||||
|      */ | ||||
|     class DFHACK_EXPORT Context | ||||
|     { | ||||
|         public: | ||||
|         Context(Process * p); | ||||
|         ~Context(); | ||||
| 
 | ||||
|         /// @return true if there's version information for the associated Process
 | ||||
|         bool isValid(); | ||||
|         /// attach to the related process. Claims OS debugging resources
 | ||||
|         bool Attach(); | ||||
|         /// detach from the related process. Releases OS debugging resources
 | ||||
|         bool Detach(); | ||||
|         /// @return true if the process is attached.
 | ||||
|         bool isAttached(); | ||||
| 
 | ||||
|         /// stop the tracked process
 | ||||
|         bool Suspend(); | ||||
|         /// @return true if the process is stopped
 | ||||
|         bool isSuspended(); | ||||
| 
 | ||||
|         /// stop the tracked process, asynchronous
 | ||||
|         bool AsyncSuspend(); | ||||
| 
 | ||||
|         /// resume the tracked process
 | ||||
|         bool Resume(); | ||||
| 
 | ||||
|         /// forces resume on Windows. This can be a bad thing with multiple tools running!
 | ||||
|         bool ForceResume(); | ||||
| 
 | ||||
|         VersionInfo *getMemoryInfo(); | ||||
|         Process* getProcess(); | ||||
| 
 | ||||
|         void ReadRaw (const uint32_t offset, const uint32_t size, uint8_t *target); | ||||
|         void WriteRaw (const uint32_t offset, const uint32_t size, uint8_t *source); | ||||
| 
 | ||||
|         /// get the creatures module
 | ||||
|         Creatures * getCreatures(); | ||||
| 
 | ||||
|         /// get the engravings module
 | ||||
|         Engravings * getEngravings(); | ||||
| 
 | ||||
|         /// get the maps module
 | ||||
|         Maps * getMaps(); | ||||
| 
 | ||||
|         /// get the gui module
 | ||||
|         Gui * getGui(); | ||||
| 
 | ||||
|         /// get the world module
 | ||||
|         World * getWorld(); | ||||
| 
 | ||||
|         /// get the materials module
 | ||||
|         Materials * getMaterials(); | ||||
| 
 | ||||
|         /// get the items module
 | ||||
|         Items * getItems(); | ||||
| 
 | ||||
|         /// get the translation module
 | ||||
|         Translation * getTranslation(); | ||||
| 
 | ||||
|         /// get the vegetation module
 | ||||
|         Vegetation * getVegetation(); | ||||
| 
 | ||||
|         /// get the buildings module
 | ||||
|         Buildings * getBuildings(); | ||||
| 
 | ||||
|         /// get the constructions module
 | ||||
|         Constructions * getConstructions(); | ||||
| 
 | ||||
|         // DEAD CODE, WAITING TO BE UPDATED TO DF2010
 | ||||
|         /*
 | ||||
|          * Effects like mist, dragonfire or dust | ||||
|          */ | ||||
|         /*
 | ||||
|         bool InitReadEffects ( uint32_t & numeffects ); | ||||
|         bool ReadEffect(const uint32_t index, t_effect_df40d & effect); | ||||
|         bool WriteEffect(const uint32_t index, const t_effect_df40d & effect); | ||||
|         void FinishReadEffects(); | ||||
|         */ | ||||
|         /*
 | ||||
|          * Notes placed by the player | ||||
|          */ | ||||
|         /*
 | ||||
|         /// start reading notes. numnotes is an output - total notes present
 | ||||
|         bool InitReadNotes( uint32_t & numnotes ); | ||||
|         /// read note from the note vector at index
 | ||||
|         bool ReadNote(const int32_t index, t_note & note); | ||||
|         /// free the note vector
 | ||||
|         void FinishReadNotes(); | ||||
|         */ | ||||
|         /*
 | ||||
|          * Settlements | ||||
|          */ | ||||
|         /*
 | ||||
|         bool InitReadSettlements( uint32_t & numsettlements ); | ||||
|         bool ReadSettlement(const int32_t index, t_settlement & settlement); | ||||
|         bool ReadCurrentSettlement(t_settlement & settlement); | ||||
|         void FinishReadSettlements(); | ||||
|         */ | ||||
|         /*
 | ||||
|          * Item reading | ||||
|          */ | ||||
|         /*
 | ||||
|         bool InitReadItems(uint32_t & numitems); | ||||
|         bool getItemIndexesInBox(std::vector<uint32_t> &indexes, | ||||
|                                 const uint16_t x1, const uint16_t y1, const uint16_t z1, | ||||
|                                 const uint16_t x2, const uint16_t y2, const uint16_t z2); | ||||
|         bool ReadItem(const uint32_t index, t_item & item); | ||||
|         void FinishReadItems(); | ||||
|         */ | ||||
|         /*
 | ||||
|          * Get the other API parts for raw access | ||||
|          */ | ||||
|     private: | ||||
|         DFContextShared * d; | ||||
|     }; | ||||
| } | ||||
| #endif //CONTEXT_H_INCLUDED
 | ||||
| 
 | ||||
| @ -0,0 +1,63 @@ | ||||
| /*
 | ||||
| https://github.com/peterix/dfhack
 | ||||
| Copyright (c) 2009-2011 Petr Mrázek (peterix@gmail.com) | ||||
| 
 | ||||
| This software is provided 'as-is', without any express or implied | ||||
| warranty. In no event will the authors be held liable for any | ||||
| damages arising from the use of this software. | ||||
| 
 | ||||
| Permission is granted to anyone to use this software for any | ||||
| purpose, including commercial applications, and to alter it and | ||||
| redistribute it freely, subject to the following restrictions: | ||||
| 
 | ||||
| 1. The origin of this software must not be misrepresented; you must | ||||
| not claim that you wrote the original software. If you use this | ||||
| software in a product, an acknowledgment in the product documentation | ||||
| would be appreciated but is not required. | ||||
| 
 | ||||
| 2. Altered source versions must be plainly marked as such, and | ||||
| must not be misrepresented as being the original software. | ||||
| 
 | ||||
| 3. This notice may not be removed or altered from any source | ||||
| distribution. | ||||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| /*
 | ||||
|  *  Some much needed SDL fakery. | ||||
|  */ | ||||
| 
 | ||||
| #include "dfhack/Pragma.h" | ||||
| #include "dfhack/Export.h" | ||||
| 
 | ||||
| #ifdef LINUX_BUILD | ||||
|     #define DFhackCExport extern "C" __attribute__ ((visibility("default"))) | ||||
| #else | ||||
|     #define DFhackCExport extern "C" __declspec(dllexport) | ||||
| #endif | ||||
| 
 | ||||
| // function and variable pointer... we don't try to understand what SDL does here
 | ||||
| typedef void * fPtr; | ||||
| typedef void * vPtr; | ||||
| struct DFMutex; | ||||
| struct DFThread; | ||||
| 
 | ||||
| // mutex and thread functions. We can call these.
 | ||||
| DFhackCExport DFMutex * SDL_CreateMutex(void); | ||||
| DFhackCExport int SDL_mutexP(DFMutex *); | ||||
| DFhackCExport int SDL_mutexV(DFMutex *); | ||||
| DFhackCExport void SDL_DestroyMutex(DFMutex *); | ||||
| DFhackCExport DFThread *SDL_CreateThread(int (*fn)(void *), void *data); | ||||
| 
 | ||||
| // these functions are here because they call into DFHack::Core and therefore need to
 | ||||
| // be declared as friend functions/known
 | ||||
| DFhackCExport int SDL_NumJoysticks(void); | ||||
| DFhackCExport void SDL_Quit(void); | ||||
| /*
 | ||||
| // not yet.
 | ||||
| DFhackCExport int SDL_Init(uint32_t flags); | ||||
| DFhackCExport int SDL_PollEvent(vPtr event); | ||||
| */ | ||||
| 
 | ||||
| // Other crud is in the OS-specific core files.
 | ||||
| @ -1,120 +0,0 @@ | ||||
| /*
 | ||||
| https://github.com/peterix/dfhack
 | ||||
| Copyright (c) 2009-2011 Petr Mrázek (peterix@gmail.com) | ||||
| 
 | ||||
| This software is provided 'as-is', without any express or implied | ||||
| warranty. In no event will the authors be held liable for any | ||||
| damages arising from the use of this software. | ||||
| 
 | ||||
| Permission is granted to anyone to use this software for any | ||||
| purpose, including commercial applications, and to alter it and | ||||
| redistribute it freely, subject to the following restrictions: | ||||
| 
 | ||||
| 1. The origin of this software must not be misrepresented; you must | ||||
| not claim that you wrote the original software. If you use this | ||||
| software in a product, an acknowledgment in the product documentation | ||||
| would be appreciated but is not required. | ||||
| 
 | ||||
| 2. Altered source versions must be plainly marked as such, and | ||||
| must not be misrepresented as being the original software. | ||||
| 
 | ||||
| 3. This notice may not be removed or altered from any source | ||||
| distribution. | ||||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| #ifndef KEYS_H_INCLUDED | ||||
| #define KEYS_H_INCLUDED | ||||
| 
 | ||||
| /**
 | ||||
|  * \defgroup grp_windowio WindowIO: Send events to DF's window | ||||
|  * @ingroup grp_modules | ||||
|  */ | ||||
| 
 | ||||
| 
 | ||||
| #include "dfhack/Pragma.h" | ||||
| #include "dfhack/Export.h" | ||||
| #include "dfhack/Module.h" | ||||
| 
 | ||||
| namespace DFHack | ||||
| { | ||||
| class Process; | ||||
| /**
 | ||||
|  * enum of all possible special keys | ||||
|  * \ingroup grp_windowio | ||||
|  */ | ||||
| enum t_special | ||||
| { | ||||
|     ENTER, | ||||
|     SPACE, | ||||
|     BACK_SPACE, | ||||
|     TAB, | ||||
|     CAPS_LOCK, | ||||
|     LEFT_SHIFT, | ||||
|     RIGHT_SHIFT, | ||||
|     LEFT_CONTROL, | ||||
|     RIGHT_CONTROL, | ||||
|     ALT, | ||||
|     WAIT, | ||||
|     ESCAPE, | ||||
|     UP, | ||||
|     DOWN, | ||||
|     LEFT, | ||||
|     RIGHT, | ||||
|     F1, | ||||
|     F2, | ||||
|     F3, | ||||
|     F4, | ||||
|     F5, | ||||
|     F6, | ||||
|     F7, | ||||
|     F8, | ||||
|     F9, | ||||
|     F10, | ||||
|     F11, | ||||
|     F12, | ||||
|     PAGE_UP, | ||||
|     PAGE_DOWN, | ||||
|     INSERT, | ||||
|     DFK_DELETE, // stupid windows fails here
 | ||||
|     HOME, | ||||
|     END, | ||||
|     KEYPAD_DIVIDE, | ||||
|     KEYPAD_MULTIPLY, | ||||
|     KEYPAD_SUBTRACT, | ||||
|     KEYPAD_ADD, | ||||
|     KEYPAD_ENTER, | ||||
|     KEYPAD_0, | ||||
|     KEYPAD_1, | ||||
|     KEYPAD_2, | ||||
|     KEYPAD_3, | ||||
|     KEYPAD_4, | ||||
|     KEYPAD_5, | ||||
|     KEYPAD_6, | ||||
|     KEYPAD_7, | ||||
|     KEYPAD_8, | ||||
|     KEYPAD_9, | ||||
|     KEYPAD_DECIMAL_POINT, | ||||
|     NUM_SPECIALS | ||||
| }; | ||||
| class DFContextShared; | ||||
| /**
 | ||||
|  * The WindowIO module | ||||
|  * \ingroup grp_windowio | ||||
|  * \ingroup grp_modules | ||||
|  */ | ||||
| class DFHACK_EXPORT WindowIO : public Module | ||||
| { | ||||
|     class Private; | ||||
|     private: | ||||
|         Private * d; | ||||
|     public: | ||||
|         bool Finish(){return true;}; | ||||
|         WindowIO(DFHack::DFContextShared * d); | ||||
|         ~WindowIO(); | ||||
|         void TypeStr (const char *input, int delay = 0, bool useShift = false); | ||||
|         void TypeSpecial (t_special command, int count = 1, int delay = 0); | ||||
| }; | ||||
| 
 | ||||
| } | ||||
| #endif // KEYS_H_INCLUDED
 | ||||
| @ -1,118 +0,0 @@ | ||||
| /*
 | ||||
| https://github.com/peterix/dfhack
 | ||||
| Copyright (c) 2009-2011 Petr Mrázek (peterix@gmail.com) | ||||
| 
 | ||||
| This software is provided 'as-is', without any express or implied | ||||
| warranty. In no event will the authors be held liable for any | ||||
| damages arising from the use of this software. | ||||
| 
 | ||||
| Permission is granted to anyone to use this software for any | ||||
| purpose, including commercial applications, and to alter it and | ||||
| redistribute it freely, subject to the following restrictions: | ||||
| 
 | ||||
| 1. The origin of this software must not be misrepresented; you must | ||||
| not claim that you wrote the original software. If you use this | ||||
| software in a product, an acknowledgment in the product documentation | ||||
| would be appreciated but is not required. | ||||
| 
 | ||||
| 2. Altered source versions must be plainly marked as such, and | ||||
| must not be misrepresented as being the original software. | ||||
| 
 | ||||
| 3. This notice may not be removed or altered from any source | ||||
| distribution. | ||||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #ifndef APIPRIVATE_H_INCLUDED | ||||
| #define APIPRIVATE_H_INCLUDED | ||||
| 
 | ||||
| namespace DFHack | ||||
| { | ||||
|     class Module; | ||||
| 
 | ||||
|     class Creatures; | ||||
|     class Engravings; | ||||
|     class Maps; | ||||
|     class Gui; | ||||
|     class World; | ||||
|     class Materials; | ||||
|     class Items; | ||||
|     class Translation; | ||||
|     class Vegetation; | ||||
|     class Buildings; | ||||
|     class Constructions; | ||||
|     class WindowIO; | ||||
| 
 | ||||
|     class ProcessEnumerator; | ||||
|     class Process; | ||||
|     class VersionInfo; | ||||
|     struct t_name; | ||||
|     class DFContextShared | ||||
|     { | ||||
|     public: | ||||
|         DFContextShared(); | ||||
|         ~DFContextShared(); | ||||
| 
 | ||||
|         // names, used by a few other modules.
 | ||||
|         void readName(t_name & name, uint32_t address); | ||||
|         void copyName(uint32_t address, uint32_t target); | ||||
|         // get the name offsets
 | ||||
|         bool InitReadNames(); | ||||
|         uint32_t name_firstname_offset; | ||||
|         uint32_t name_nickname_offset; | ||||
|         uint32_t name_words_offset; | ||||
|         uint32_t name_parts_offset; | ||||
|         uint32_t name_language_offset; | ||||
|         uint32_t name_set_offset; | ||||
|         bool namesInited; | ||||
|         bool namesFailed; | ||||
| 
 | ||||
|         ProcessEnumerator* pm; | ||||
|         Process* p; | ||||
|         char * shm_start; | ||||
|         VersionInfo* offset_descriptor; | ||||
|         string xml; | ||||
| 
 | ||||
|         // Modules
 | ||||
|         struct | ||||
|         { | ||||
|             Creatures * pCreatures; | ||||
|             Engravings * pEngravings; | ||||
|             Maps * pMaps; | ||||
|             Gui * pPosition; // blerp
 | ||||
|             Gui * pGui; | ||||
|             World * pWorld; | ||||
|             Materials * pMaterials; | ||||
|             Items * pItems; | ||||
|             Translation * pTranslation; | ||||
|             Vegetation * pVegetation; | ||||
|             Buildings * pBuildings; | ||||
|             Constructions * pConstructions; | ||||
|             WindowIO * pWindowIO; | ||||
|         } s_mods; | ||||
|         std::vector <Module *> allModules; | ||||
|         /*
 | ||||
|         uint32_t item_material_offset; | ||||
| 
 | ||||
|         uint32_t note_foreground_offset; | ||||
|         uint32_t note_background_offset; | ||||
|         uint32_t note_name_offset; | ||||
|         uint32_t note_xyz_offset; | ||||
| 
 | ||||
|         uint32_t settlement_name_offset; | ||||
|         uint32_t settlement_world_xy_offset; | ||||
|         uint32_t settlement_local_xy_offset; | ||||
| 
 | ||||
|         uint32_t dwarf_lang_table_offset; | ||||
| 
 | ||||
|         DfVector *p_effect; | ||||
|         DfVector *p_itm; | ||||
|         DfVector *p_notes; | ||||
|         DfVector *p_settlements; | ||||
|         DfVector *p_current_settlement; | ||||
|         */ | ||||
|     }; | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue