diff options
| author | Petr Mrázek | 2012-02-28 03:37:56 +0100 |
|---|---|---|
| committer | Petr Mrázek | 2012-02-28 03:37:56 +0100 |
| commit | 731472a4781f091ae313bd39d512207e920db10c (patch) | |
| tree | 25242218ca8f641ef4b36c6d6f46b4ad6cfb1f62 /library/Hooks-egg.cpp | |
| parent | f8721c88b57b22842a2d0ecf60f58b31d151b600 (diff) | |
| download | dfhack-731472a4781f091ae313bd39d512207e920db10c.tar.gz dfhack-731472a4781f091ae313bd39d512207e920db10c.tar.bz2 dfhack-731472a4781f091ae313bd39d512207e920db10c.tar.xz | |
Add eggy hooks (linux only for now)
Diffstat (limited to 'library/Hooks-egg.cpp')
| -rw-r--r-- | library/Hooks-egg.cpp | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/library/Hooks-egg.cpp b/library/Hooks-egg.cpp new file mode 100644 index 00000000..34b31d22 --- /dev/null +++ b/library/Hooks-egg.cpp @@ -0,0 +1,91 @@ +/* +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 <stdio.h> +#include <stdint.h> +#include <stdlib.h> +#include <string.h> +#include <vector> +#include <string> +#include <map> + +#include "Core.h" +#include "Hooks.h" +#include <iostream> + +// hook - called before rendering +DFhackCExport int egg_init(void) +{ + // reroute stderr + freopen("stderr.log", "w", stderr); + // we don't reroute stdout until we figure out if this should be done at all + // See: Console-linux.cpp + fprintf(stderr,"dfhack: hooking successful\n"); + return true; +} + +// hook - called before rendering +DFhackCExport int egg_shutdown(void) +{ + DFHack::Core & c = DFHack::Core::getInstance(); + return c.Shutdown(); +} + +// hook - called for each game tick (or more often) +DFhackCExport int egg_tick(void) +{ + DFHack::Core & c = DFHack::Core::getInstance(); + return c.Update(); +} +// hook - called before rendering +DFhackCExport int egg_prerender(void) +{ + return true; +} + +// hook - called for each SDL event, returns 0 when the event has been consumed. 1 otherwise +DFhackCExport int egg_sdl_event(SDL::Event* event) +{ + // if the event is valid, intercept + if( event != 0 ) + { + DFHack::Core & c = DFHack::Core::getInstance(); + return c.SDL_Event(event); + } + return true; +} + +// return this if you want to kill the event. +const int curses_error = -1; +// hook - ncurses event, -1 signifies error. +DFhackCExport int egg_curses_event(int orig_return) +{ + /* + if(orig_return != -1) + { + DFHack::Core & c = DFHack::Core::getInstance(); + int out; + return c.ncurses_wgetch(orig_return,); + }*/ + return orig_return; +} |
