HyperRogue  11.3d
game/visualization engine based on non-Euclidean geometry
Classes | Namespaces | Macros | Typedefs | Functions | Variables
shmup.cpp File Reference

shoot'em up mode More...

#include "hyper.h"

Classes

struct  hr::shmup::monster
 

Namespaces

 hr
 

Macros

#define SCALE   cgi.scalefactor
 
#define SCALE2   (SCALE*SCALE)
 
#define IGO   9
 
#define CHARGING   (-777)
 
#define BULLSTUN   (1500)
 

Typedefs

typedef multimap< cell *, monster * >::iterator hr::shmup::mit
 

Functions

EX void hr::shmupballs::calc ()
 
ld hr::sqdist (hyperpoint a, hyperpoint b)
 
eItem hr::shmup::targetRangedOrbKey (enum orbAction a)
 
ld hr::shmup::fabsl (ld x)
 
cell * hr::shmup::findbaseAround (hyperpoint p, cell *around, int maxsteps)
 
cell * hr::shmup::findbaseAround (const transmatrix &H, cell *around, int maxsteps)
 
void hr::shmup::fix_to_2 (transmatrix &T)
 
bool hr::shmup::trackroute (monster *m, transmatrix goal, double spd)
 
bool hr::shmup::isBullet (monster *m)
 
bool hr::shmup::isPlayer (monster *m)
 
bool hr::shmup::isMonster (monster *m)
 
void hr::shmup::killMonster (monster *m, eMonster who_kills, int flags=0)
 
EX void hr::shmup::pushmonsters ()
 
EX void hr::shmup::popmonsters ()
 
EX void hr::shmup::degradeDemons ()
 
void hr::shmup::awakenMimics (monster *m, cell *c2)
 
EX void hr::shmup::visibleFor (int t)
 
ld hr::shmup::bullet_velocity (eMonster t)
 
int hr::shmup::frontdir ()
 
void hr::shmup::shootBullet (monster *m)
 
EX void hr::shmup::killThePlayer (eMonster m)
 
monster * hr::shmup::playerCrash (monster *who, hyperpoint where)
 
void hr::shmup::oceanCurrents (transmatrix &nat, monster *m, int delta)
 
bool hr::shmup::airCurrents (transmatrix &nat, monster *m, int delta)
 
void hr::shmup::roseCurrents (transmatrix &nat, monster *m, int delta)
 
hyperpoint hr::shmup::keytarget (int i)
 
ld hr::shmup::getSwordSize ()
 
ld hr::shmup::getHornsSize ()
 
hyperpoint hr::shmup::swordpos (int id, bool rev, double frac)
 
hyperpoint hr::shmup::hornpos (int id)
 
bool hr::shmup::swordKills (eMonster m)
 
bool hr::shmup::hornKills (eMonster m)
 
EX void hr::shmup::activateArrow (cell *c)
 
void hr::shmup::doTraps ()
 
bool hr::shmup::hornStuns (eMonster m)
 
bool hr::shmup::noncrashable (monster *m, monster *by)
 
void hr::shmup::movePlayer (monster *m, int delta)
 
EX monster * hr::shmup::getPlayer ()
 
void hr::shmup::virtualize (monster *m)
 
bool hr::shmup::reflectmatrix (transmatrix &M, cell *c1, cell *c2, bool onlypos)
 
EX int hr::shmup::reflect (cell *&c2, cell *&mbase, transmatrix &nat)
 
void hr::shmup::moveMimic (monster *m)
 
bool hr::shmup::isPlayerOrImage (eMonster m)
 
monster * hr::shmup::parentOrSelf (monster *m)
 
EX bool hr::shmup::verifyTeleport ()
 
void hr::shmup::destroyMimics ()
 
EX void hr::shmup::teleported ()
 
void hr::shmup::shoot (eItem it, monster *m)
 
EX eItem hr::shmup::targetRangedOrb (orbAction a)
 
int hr::shmup::speedfactor ()
 
int hr::shmup::bulletdir ()
 
hyperpoint hr::shmup::fronttangent (ld x)
 
ld hr::shmup::collision_distance (monster *bullet, monster *target)
 
void hr::shmup::spawn_asteroids (monster *bullet, monster *target)
 
EX int hr::shmup::protect_pid (int i)
 
void hr::shmup::moveBullet (monster *m, int delta)
 
bool hr::shmup::closer (monster *m1, monster *m2)
 
EX bool hr::shmup::dragonbreath (cell *dragon)
 
void hr::shmup::moveMonster (monster *m, int delta)
 
void hr::shmup::activateMonstersAt (cell *c)
 
EX void hr::shmup::fixStorage ()
 
EX void hr::shmup::turn (int delta)
 
EX void hr::shmup::recall ()
 
EX void hr::shmup::init ()
 
EX bool hr::shmup::boatAt (cell *c)
 
EX void hr::shmup::clearMonsters ()
 
EX void hr::shmup::clearMemory ()
 
void hr::shmup::gamedata (hr::gamedata *gd)
 
EX cell * hr::shmup::playerpos (int i)
 
EX bool hr::shmup::playerInBoat (int i)
 
EX void hr::shmup::destroyBoats (cell *c)
 
EX void hr::shmup::virtualRebase (shmup::monster *m)
 
EX void hr::shmup::addShmupHelp (string &out)
 
EX void hr::shmup::switch_shmup ()
 

Variables

EX int hr::shmupballs::xmove
 
EX int hr::shmupballs::xfire
 
EX int hr::shmupballs::yb
 
EX int hr::shmupballs::rad
 
eItem hr::shmup::keyresult [MAXPLAYER]
 
EX bool hr::shmup::on = false
 
EX bool hr::shmup::delayed_safety = false
 
bool hr::shmup::lastdead = false
 
EX multimap< cell *, monster * > hr::shmup::monstersAt
 
vector< monster * > hr::shmup::active
 
vector< monster * > hr::shmup::nonvirtual
 
vector< monster * > hr::shmup::additional
 
EX monster * hr::shmup::pc [MAXPLAYER]
 
EX monster * hr::shmup::mousetarget
 
EX monster * hr::shmup::lmousetarget
 
EX int hr::shmup::curtime
 
EX int hr::shmup::nextmove
 
EX int hr::shmup::nextdragon
 
EX hookset< bool(shmup::monster *)> * hr::shmup::hooks_kill
 
EX double hr::shmup::playerturn [MAXPLAYER]
 
EX double hr::shmup::playergo [MAXPLAYER]
 
EX double hr::shmup::playerstrafe [MAXPLAYER]
 
EX double hr::shmup::playerturny [MAXPLAYER]
 
EX double hr::shmup::playergoturn [MAXPLAYER]
 
EX double hr::shmup::godir [MAXPLAYER]
 
EX transmatrix hr::shmup::playersmallspin [MAXPLAYER]
 
bool hr::shmup::playerfire [MAXPLAYER]
 
int hr::shmup::visibleAt
 
EX transmatrix hr::shmup::swordmatrix [MAXPLAYER]
 
double hr::shmup::igospan [IGO+1]
 
queue< pair< int, cell * > > hr::shmup::traplist
 
queue< pair< int, cell * > > hr::shmup::firetraplist
 
monster hr::shmup::arrowtrap_fakeparent
 
int hr::shmup::bulltime [MAXPLAYER]
 
hyperpoint hr::shmup::closerTo
 
EX hookset< bool(int)> * hr::shmup::hooks_turn
 
EX hookset< bool(const transmatrix &, cell *, shmup::monster *)> * hr::shmup::hooks_draw
 
EX hookset< bool(shmup::monster *, string &)> * hr::shmup::hooks_describe
 
auto hr::shmup::hooks
 
auto hr::shmup::hooksw
 

Detailed Description

shoot'em up mode

Variable Documentation

◆ igospan

double hr::shmup::igospan[IGO+1]
Initial value:
= { 0,
M_PI/6, -M_PI/6,
M_PI/4, -M_PI/4,
M_PI/3, -M_PI/3,
M_PI/2.1, -M_PI/2.1,
0
}

◆ hooks

auto hr::shmup::hooks
Initial value:
= addHook(clearmemory, 0, shmup::clearMemory) +
addHook(hooks_gamedata, 0, shmup::gamedata) +
addHook(hooks_removecells, 0, [] () {
for(mit it = monstersAt.begin(); it != monstersAt.end();) {
if(is_cell_removed(it->first)) {
monstersAt.insert(make_pair(nullptr, it->second));
auto it0 = it; it++;
monstersAt.erase(it0);
}
else it++;
}
})

◆ hooksw

auto hr::shmup::hooksw
Initial value:
= addHook(hooks_swapdim, 100, [] {
for(auto& p: monstersAt) swapmatrix(p.second->at);
})