/* * 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 : ORACERES.H //Description : Header file of object RaceRes #ifndef __ORACERES_H #define __ORACERES_H #ifndef __ORESDB_H #include #endif //------------ Define race id. -------------// enum { RACE_NORMAN=1, RACE_MAYA, RACE_GREEK, RACE_VIKING, RACE_PERSIAN, RACE_CHINESE, RACE_JAPANESE, #ifdef AMPLUS RACE_EGYPTIAN, RACE_INDIAN, RACE_ZULU, #endif }; //--------- Define constant -----------// enum { RACE_ICON_WIDTH=24, RACE_ICON_HEIGHT=20, }; //------------ Define struct RaceRec ---------------// struct RaceRec { enum { CODE_LEN=8, NAME_LEN=12, ADJECTIVE_LEN=12, FILE_NAME_LEN=8, BITMAP_PTR_LEN=4 }; char code[CODE_LEN]; char name[NAME_LEN]; char adjective[ADJECTIVE_LEN]; char icon_file_name[FILE_NAME_LEN]; char icon_bitmap_ptr[BITMAP_PTR_LEN]; }; //------------- Define struct RaceInfo --------------// struct RaceInfo { public: //------ constant vars --------// enum { CODE_LEN=8, NAME_LEN=12, ADJECTIVE_LEN=12 }; char race_id; char code[CODE_LEN+1]; char name[NAME_LEN+1]; char adjective[ADJECTIVE_LEN+1]; char* icon_bitmap_ptr; //----------------------// short first_first_name_id; // first of this race in first_name_array[] short first_last_name_id; // first of this race in last_name_array[] short first_name_count; short last_name_count; //----------------------// short first_town_name_recno; short town_name_count; //----------------------// short basic_unit_id; //--------- game vars ----------// short town_name_used_count; public: char* get_name(WORD nameId, int nameType=0); char* get_single_name(WORD nameId); WORD get_new_name_id(); void free_name_id(WORD nameId); void use_name_id(WORD nameId); }; //-------- Define struct NameRec ----------// struct RaceNameRec { enum { NAME_LEN=20 }; char name[NAME_LEN+1]; }; //-------- Define struct NameInfo ----------// struct RaceName { enum { NAME_LEN=20 }; char name[NAME_LEN+1]; }; //----------- Define class RaceRes ---------------// class RaceRes { public: char init_flag; short race_count; RaceInfo* race_info_array; short name_count; RaceName* name_array; char* name_used_array; ResourceDb res_bitmap; public: RaceRes(); void init(); void deinit(); int write_file(File*); int read_file(File*); int is_same_race(int,int); RaceInfo* operator[](int raceId); // pass raceId as recno private: void load_race_info(); void load_name(); }; extern RaceRes race_res; //----------------------------------------------------// #endif