- filemap.cpp: fix inverted ternary in getkey() that dereferenced ref when ref==NULL; remove dead strncpy in recurse_get(); log a warning when addpath() silently truncates keys longer than 8 chars. - screen.cpp: replace lone strcpy with memcpy. - enemies.h: brace nested if/else blocks to silence dangling-else warnings (no behavior change). - myship.cpp: replace three 8-case direction switches (movement and twice in shot_single) with dir_dx[]/dir_dy[] lookup tables; extract free_bolt() helper to deduplicate five copies of the boltst/free_obj/NULL pattern. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
115 lines
3.0 KiB
C++
115 lines
3.0 KiB
C++
/*
|
|
------------------------------------------------------------
|
|
Kobo Deluxe - An enhanced SDL port of XKobo
|
|
------------------------------------------------------------
|
|
* Copyright (C) 1995, 1996, Akira Higuchi
|
|
* Copyright (C) 2001, 2003, 2007 David Olofson
|
|
*
|
|
* 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, write to the Free Software Foundation, Inc.,
|
|
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
#ifndef XKOBO_H_MYSHIP
|
|
#define XKOBO_H_MYSHIP
|
|
|
|
#include "config.h"
|
|
#include "gfxengine.h"
|
|
#include "game.h"
|
|
|
|
#define ABS(x) (((x)>=0) ? (x) : (-(x)))
|
|
#define MAX(x,y) (((x)>(y)) ? (x) : (y))
|
|
|
|
//---------------------------------------------------------------------------//
|
|
enum _myship_state
|
|
{
|
|
normal,
|
|
dead
|
|
};
|
|
|
|
class _myship
|
|
{
|
|
static _myship_state _state;
|
|
static int di; /* direction */
|
|
static int virtx, virty; /* scroll position */
|
|
static int x, y;
|
|
static int _health;
|
|
static int health_time;
|
|
static int explo_time;
|
|
static int nose_reload_timer;
|
|
static int nose_temperature;
|
|
static int nose_alt;
|
|
static int tail_reload_timer;
|
|
static int tail_temperature;
|
|
static int tail_alt;
|
|
static int lapx, lapy;
|
|
static int boltx[MAX_BOLTS], bolty[MAX_BOLTS];
|
|
static int boltdx[MAX_BOLTS], boltdy[MAX_BOLTS];
|
|
static int boltst[MAX_BOLTS];
|
|
/* For the gfxengine connection */
|
|
static cs_obj_t *object;
|
|
static cs_obj_t *bolt_objects[MAX_BOLTS];
|
|
static cs_obj_t *crosshair;
|
|
static void state(_myship_state s);
|
|
static void shot_single(int i, int dir, int offset);
|
|
static void apply_position();
|
|
static void explode(int x, int y);
|
|
static void free_bolt(int i);
|
|
public:
|
|
_myship();
|
|
static inline int get_x()
|
|
{
|
|
return x;
|
|
}
|
|
static inline int get_y()
|
|
{
|
|
return y;
|
|
}
|
|
static inline int get_virtx()
|
|
{
|
|
return virtx;
|
|
}
|
|
static inline int get_virty()
|
|
{
|
|
return virty;
|
|
}
|
|
static inline int get_nose_temp()
|
|
{
|
|
return nose_temperature;
|
|
}
|
|
static inline int get_tail_temp()
|
|
{
|
|
return tail_temperature;
|
|
}
|
|
static int init();
|
|
static void off();
|
|
static int move();
|
|
static int put();
|
|
static void put_crosshair();
|
|
static int xkobo_shot();
|
|
static int nose_fire();
|
|
static int tail_fire();
|
|
static int hit_structure();
|
|
static int hit_bolt(int ex, int ey, int hitsize, int health);
|
|
static void hit(int dmg);
|
|
static int health() { return _health; }
|
|
static void health(int h) { _health = h; }
|
|
static void health_bonus(int h);
|
|
static void set_position(int px, int py);
|
|
static int alive() { return _state == normal; }
|
|
};
|
|
|
|
extern _myship myship;
|
|
|
|
#endif // XKOBO_H_MYSHIP
|