/*
* 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 : OTORNADO.H
//Description : Header file of Object Tornado
//Ownership : Gilbert
#ifndef __OTORNADO_H
#define __OTORNADO_H
#ifndef __OSPRITE_H
#include
#endif
//#ifndef __OUNIT_H
//#include
//#endif
//#ifndef __OFIRM_H
//#include
//#endif
//--------- Define constant -----------//
//----------- Define class Tornado -----------//
#pragma pack(1)
class Tornado : public Sprite
{
public:
float attack_damage;
short life_time;
short dmg_offset_x;
short dmg_offset_y;
public:
void init(short startX, short startY, short lifeTime);
//void update_abs_pos(SpriteFrame* =0);
//void draw();
void pre_process();
void process_move();
void hit_target();
void hit_building();
void hit_plant();
void hit_fire();
short damage_x_loc() { return (cur_x + dmg_offset_x) >> ZOOM_X_SHIFT_COUNT; }
short damage_y_loc() { return (cur_y + dmg_offset_y) >> ZOOM_Y_SHIFT_COUNT; }
//--------- file functions -----------//
int write_file(File* filePtr);
int read_file(File* filePtr);
};
#pragma pack()
//------- Define class TornadoArray ---------//
class TornadoArray : public SpriteArray
{
public:
TornadoArray(int initArraySize);
short create_tornado();
short add_tornado(int xLoc, int yLoc, short lifeTime); // unit attacks firm, townzone
// short tornado_possible(int parentXLoc, int parentYLoc, int targetXLoc, int targetYLoc, char tornadoSpeed);
#ifdef DEBUG
Tornado* operator[](int recNo);
#else
Tornado* operator[](int recNo) { return (Tornado*) get_ptr(recNo); }
#endif
void process();
void draw_dot();
//--------- file functions -----------//
int write_file(File* filePtr);
int read_file(File* filePtr);
};
extern TornadoArray tornado_array;
//-----------------------------------------//
#endif