/* * Seven Kingdoms: Ancient Adversaries * * Copyright 1997,1998 Enlight Software Ltd. * * This program 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. * * This program 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 this program. If not, see . * */ //Filename : OPOWER.H //Description : Header file of Object Power #ifndef __OPOWER_H #define __OPOWER_H #ifndef __ALL_H #include #endif //-------- Define command id. -----------// enum { COMMAND_BUILD_FIRM=1, COMMAND_ASSIGN, COMMAND_BURN, COMMAND_SETTLE, COMMAND_SET_CARAVAN_STOP, COMMAND_SET_SHIP_STOP, COMMAND_BUILD_WALL, COMMAND_DESTRUCT_WALL, COMMAND_GOD_CAST_POWER, }; // --------- define ScreenObjectType --------// enum ScreenObjectType { SCREEN_OBJECT_NONE, SCREEN_OBJECT_FRIEND_UNIT, SCREEN_OBJECT_UNIT_GROUP, SCREEN_OBJECT_ENEMY_UNIT, SCREEN_OBJECT_SPY_UNIT, // our spy, shealthed to other nation, selected object only SCREEN_OBJECT_FRIEND_TOWN, SCREEN_OBJECT_ENEMY_TOWN, SCREEN_OBJECT_FRIEND_FIRM, SCREEN_OBJECT_ENEMY_FIRM, SCREEN_OBJECT_WALL, SCREEN_OBJECT_SITE, }; //-------- Map modes ------------// enum { MAP_MODE_NUM = 5 }; enum { MAP_NORMAL=0, MAP_CLIMATE, MAP_RESOURCE, MAP_PROFIT, MAP_LINK }; //----------- Define constant -----------// enum { MAX_KEY_STR = 5 }; // Maximum 5 different key string //--------- Define class Power ----------// struct Location; #pragma pack(1) class Power { public: int command_id; int command_unit_recno, command_para; char win_opened; char enable_flag; int key_str_pos[MAX_KEY_STR]; // for detecting cheating codes public: Power(); ~Power(); void init(); void enable() { enable_flag=1; } void disable() { enable_flag=0; } void issue_command(int,int=0,int=0); void reset_command() { command_id=0; } void mouse_handler(); void reset_selection(); char* get_link_icon(char linkStatus, int sameNation); int write_file(File* filePtr); int read_file(File* filePtr); //------- cursor related functions ------// int choose_cursor(int scrnX, int scrnY, ScreenObjectType selectedObjectType, short selectedObjectRecno, ScreenObjectType pointingObjectType, short pointingObjectRecno); int choose_cursor_units(short selectedUnitRecno, short pointingUnitRecno); int choose_cursor_unit_group(short pointingUnitRecno); ScreenObjectType find_selected_type( short *); ScreenObjectType find_pointing_type( Location *, short *); public: int detect_frame(); int detect_action(); // ###### begin Gilbert 31/7 ######// // Location* test_detect(int curX, int curY); Location* test_detect(int curX, int curY, char *mobileType=NULL); // ###### end Gilbert 31/7 ######// int detect_select(int selX1, int selY1, int selX2, int selY2, int recallGroup, int shiftSelect); int detect_scroll(); // ###### begin Gilbert 22/10 #######// int unit_can_assign_firm(int unitRecno, int firmRecno, int ownNationRecno); // ###### end Gilbert 22/10 #######// //### begin alex 19/3 ###// short select_active_unit(short *selectedArray, short selectedCount); //#### end alex 19/3 ####// }; #pragma pack() extern Power power; //---------------------------------------// #endif