warzone2100/src/scriptcb.h

159 lines
4.5 KiB
C

/*
This file is part of Warzone 2100.
Copyright (C) 1999-2004 Eidos Interactive
Copyright (C) 2005-2013 Warzone 2100 Project
Warzone 2100 is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Warzone 2100 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Warzone 2100; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/** @file
* functions to deal with parameterised script callback triggers.
*/
#ifndef __INCLUDED_SRC_SCRIPTCB_H__
#define __INCLUDED_SRC_SCRIPTCB_H__
//console callback stuff
//---------------------------
#ifndef MAXSTRLEN
#define MAXSTRLEN 255
#endif
extern SDWORD ConsolePlayer;
extern SDWORD MultiMsgPlayerTo;
extern SDWORD MultiMsgPlayerFrom;
extern SDWORD beaconX;
extern SDWORD beaconY;
extern char ConsoleMsg[MAXSTRLEN]; //Last console message
extern char MultiplayMsg[MAXSTRLEN]; //Last multiplayer message
extern STRUCTURE *psScrCBNewStruct; //for scrCBStructBuilt callback
extern DROID *psScrCBNewStructTruck; //for scrCBStructBuilt callback
// The pointer to the droid that was just built for a CALL_NEWDROID
extern DROID *psScrCBDroidTaken;
extern DROID *psScrCBNewDroid;
extern STRUCTURE *psScrCBNewDroidFact;
extern DROID *psScrCBOrderDroid;
extern SDWORD psScrCBOrder;
extern DROID *psScrVtolRetarget;
//Script key event callback
extern SDWORD cbPressedMetaKey;
extern SDWORD cbPressedKey;
// deal with unit takover(2)
extern bool scrCBDroidTaken(void);
// Deal with a CALL_NEWDROID
extern bool scrCBNewDroid(void);
// the attacker and target for a CALL_ATTACKED
extern BASE_OBJECT *psScrCBAttacker, *psScrCBTarget;
// Deal with a CALL_STRUCT_ATTACKED
extern bool scrCBStructAttacked(void);
// Deal with a CALL_DROID_ATTACKED
extern bool scrCBDroidAttacked(void);
// Deal with a CALL_ATTACKED
extern bool scrCBAttacked(void);
// deal with CALL_BUTTON_PRESSED
extern bool scrCBButtonPressed(void);
// the Droid that was selected for a CALL_DROID_SELECTED
extern DROID *psCBSelectedDroid;
// deal with CALL_DROID_SELECTED
extern bool scrCBDroidSelected(void);
// the object that was last killed for a CALL_OBJ_DESTROYED
extern BASE_OBJECT *psCBObjDestroyed;
// deal with a CALL_OBJ_DESTROYED
extern bool scrCBObjDestroyed(void);
// deal with a CALL_STRUCT_DESTROYED
extern bool scrCBStructDestroyed(void);
// deal with a CALL_DROID_DESTROYED
extern bool scrCBDroidDestroyed(void);
// deal with a CALL_FEATURE_DESTROYED
extern bool scrCBFeatureDestroyed(void);
// the last object to be seen for a CALL_OBJ_SEEN
extern BASE_OBJECT *psScrCBObjSeen;
// the object that saw psScrCBObjSeen for a CALL_OBJ_SEEN
extern BASE_OBJECT *psScrCBObjViewer;
// deal with a CALL_OBJ_SEEN
extern bool scrCBObjSeen(void);
// deal with a CALL_DROID_SEEN
extern bool scrCBDroidSeen(void);
// deal with a CALL_STRUCT_SEEN
extern bool scrCBStructSeen(void);
// deal with a CALL_FEATURE_SEEN
extern bool scrCBFeatureSeen(void);
// deal with a CALL_TRANSPORTER_OFFMAP
extern bool scrCBTransporterOffMap(void);
// deal with a CALL_TRANSPORTER_LANDED
extern bool scrCBTransporterLanded(void);
// tell the scripts when a cluster is no longer valid
extern SDWORD scrCBEmptyClusterID;
extern bool scrCBClusterEmpty( void );
// note when a vtol has finished returning to base - used to vanish
// vtols when they are attacking from off map
extern DROID *psScrCBVtolOffMap;
extern bool scrCBVtolOffMap(void);
/*called when selectedPlayer completes some research*/
extern bool scrCBResCompleted(void);
/* when a player leaves the game*/
extern bool scrCBPlayerLeft(void);
/* when a VTOL runs out of things to do while mid-air */
extern bool scrCBVTOLRetarget(void);
// alliance offered.
extern bool scrCBAllianceOffer(void);
extern UDWORD CBallFrom,CBallTo;
// player number that left the game
extern UDWORD CBPlayerLeft;
//Console callback
extern bool scrCallConsole(void);
extern bool scrCBStructBuilt(void);
extern bool scrCallMultiMsg(void);
extern bool scrCallBeacon(void);
extern bool scrCBTransporterLandedB(void);
extern bool scrCBDorderStop(void);
extern bool scrCBDorderReachedLocation(void);
extern bool scrCBProcessKeyPress(void);
#endif // __INCLUDED_SRC_SCRIPTCB_H__