1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/*
* $Id: BarrageManager.d,v 1.2 2004/01/01 11:26:41 kenta Exp $
*
* Copyright 2003 Kenta Cho. All rights reserved.
*/
module abagames.p47.BarrageManager;
private:
import std.string;
import std.conv;
import std.path;
import std.file;
import bulletml;
import abagames.p47.MorphBullet;
import abagames.util.Logger;
/**
* Barrage manager(BulletMLs' loader).
*/
public class BarrageManager {
public:
static enum {
MORPH, SMALL, SMALLMOVE, SMALLSIDEMOVE,
MIDDLE, MIDDLESUB, MIDDLEMOVE, MIDDLEBACKMOVE,
LARGE, LARGEMOVE,
MORPH_LOCK, SMALL_LOCK, MIDDLESUB_LOCK,
}
static const int BARRAGE_TYPE = 13;
static const int BARRAGE_MAX = 64;
BulletMLParserTinyXML*[BARRAGE_MAX][BARRAGE_TYPE] parser;
int[BARRAGE_TYPE] parserNum;
private:
static const string[BARRAGE_TYPE] dirName =
["/usr/share/games/parsec47/morph",
"/usr/share/games/parsec47/small",
"/usr/share/games/parsec47/smallmove",
"/usr/share/games/parsec47/smallsidemove",
"/usr/share/games/parsec47/middle",
"/usr/share/games/parsec47/middlesub",
"/usr/share/games/parsec47/middlemove",
"/usr/share/games/parsec47/middlebackmove",
"/usr/share/games/parsec47/large",
"/usr/share/games/parsec47/largemove",
"/usr/share/games/parsec47/morph_lock",
"/usr/share/games/parsec47/small_lock",
"/usr/share/games/parsec47/middlesub_lock"
];
public void loadBulletMLs() {
for (int i = 0; i< BARRAGE_TYPE; i++) {
int j = 0;
auto files = dirEntries(dirName[i], SpanMode.shallow);
foreach (string fileName; files) {
if (extension(fileName) != ".xml")
continue;
Logger.info("Load BulletML: " ~ fileName);
parser[i][j] =
BulletMLParserTinyXML_new(std.string.toStringz(fileName));
BulletMLParserTinyXML_parse(parser[i][j]);
j++;
}
parserNum[i] = j;
}
}
public void unloadBulletMLs() {
for (int i = 0; i< BARRAGE_TYPE; i++) {
for (int j = 0; j < parserNum[i]; j++) {
BulletMLParserTinyXML_delete(parser[i][j]);
}
}
}
}
|