2009-11-13 20:46:56 -07:00
|
|
|
/*
|
2011-06-16 15:53:39 -06:00
|
|
|
https://github.com/peterix/dfhack
|
2012-09-29 20:03:37 -06:00
|
|
|
Copyright (c) 2009-2012 Petr Mrázek (peterix@gmail.com)
|
2009-11-13 20:46:56 -07:00
|
|
|
|
|
|
|
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.
|
|
|
|
*/
|
|
|
|
|
2011-06-16 15:53:39 -06:00
|
|
|
|
2011-04-10 05:12:28 -06:00
|
|
|
#pragma once
|
|
|
|
|
2009-11-13 20:46:56 -07:00
|
|
|
#ifdef LINUX_BUILD
|
2010-05-01 17:20:31 -06:00
|
|
|
#ifndef DFHACK_EXPORT
|
|
|
|
#define DFHACK_EXPORT __attribute__ ((visibility("default")))
|
|
|
|
#endif
|
2013-10-01 08:58:04 -06:00
|
|
|
#ifndef DFHACK_IMPORT
|
|
|
|
#define DFHACK_IMPORT DFHACK_EXPORT
|
|
|
|
#endif
|
2012-03-15 10:50:38 -06:00
|
|
|
#else
|
2010-05-01 17:20:31 -06:00
|
|
|
#ifdef BUILD_DFHACK_LIB
|
|
|
|
#ifndef DFHACK_EXPORT
|
|
|
|
#define DFHACK_EXPORT __declspec(dllexport)
|
|
|
|
#endif
|
2013-10-01 08:58:04 -06:00
|
|
|
#ifndef DFHACK_IMPORT
|
|
|
|
#define DFHACK_IMPORT
|
|
|
|
#endif
|
2010-05-01 17:20:31 -06:00
|
|
|
#else
|
|
|
|
#ifndef DFHACK_EXPORT
|
|
|
|
#define DFHACK_EXPORT __declspec(dllimport)
|
|
|
|
#endif
|
2013-10-01 08:58:04 -06:00
|
|
|
#ifndef DFHACK_IMPORT
|
|
|
|
#define DFHACK_IMPORT DFHACK_EXPORT
|
|
|
|
#endif
|
2010-05-01 17:20:31 -06:00
|
|
|
#endif
|
2010-02-26 14:22:10 -07:00
|
|
|
#endif
|
2011-06-19 20:29:38 -06:00
|
|
|
|
|
|
|
// C export macros for faking SDL and plugin exports
|
|
|
|
#ifdef LINUX_BUILD
|
|
|
|
#define DFhackCExport extern "C" __attribute__ ((visibility("default")))
|
2012-02-22 07:21:29 -07:00
|
|
|
#define DFhackDataExport __attribute__ ((visibility("default")))
|
2011-06-19 20:29:38 -06:00
|
|
|
#else
|
|
|
|
#define DFhackCExport extern "C" __declspec(dllexport)
|
2012-02-22 11:54:07 -07:00
|
|
|
#define DFhackDataExport extern "C" __declspec(dllexport)
|
|
|
|
#endif
|
2018-06-11 10:20:51 -06:00
|
|
|
|
|
|
|
// Make gcc warn if types and format string don't match for printf
|
|
|
|
#ifdef __GNUC__
|
|
|
|
//! Tell GCC about format functions to allow parameter strict type checks
|
|
|
|
//! \param type The type of function can be printf, scanf, strftime or strfmon
|
|
|
|
//! \param fmtstr One based position index for format parameter
|
|
|
|
//! \param vararg One based position index for the first checked parameter
|
|
|
|
#define Wformat(type, fmtstr, vararg) __attribute__ ((format (type, fmtstr, vararg)))
|
|
|
|
#else
|
|
|
|
#define Wformat(type, fmtstr, vararg)
|
|
|
|
#endif
|
2023-06-25 18:44:06 -06:00
|
|
|
|
|
|
|
namespace DFHack
|
|
|
|
{
|
|
|
|
enum command_result
|
|
|
|
{
|
|
|
|
CR_LINK_FAILURE = -3, // RPC call failed due to I/O or protocol error
|
|
|
|
CR_NEEDS_CONSOLE = -2, // Attempt to call interactive command without console
|
|
|
|
CR_NOT_IMPLEMENTED = -1, // Command not implemented, or plugin not loaded
|
|
|
|
CR_OK = 0, // Success
|
|
|
|
CR_FAILURE = 1, // Failure
|
|
|
|
CR_WRONG_USAGE = 2, // Wrong arguments or ui state
|
|
|
|
CR_NOT_FOUND = 3 // Target object not found (for RPC mainly)
|
|
|
|
};
|
|
|
|
}
|