Lines 17-22
Link Here
|
17 |
private import abagames.tt.bulletimpl; |
17 |
private import abagames.tt.bulletimpl; |
18 |
private import abagames.tt.bullettarget; |
18 |
private import abagames.tt.bullettarget; |
19 |
private import abagames.tt.shape; |
19 |
private import abagames.tt.shape; |
|
|
20 |
import linux_listdir; |
20 |
|
21 |
|
21 |
/** |
22 |
/** |
22 |
* Barrage pattern. |
23 |
* Barrage pattern. |
Lines 30-40
Link Here
|
30 |
int prevWait, postWait; |
31 |
int prevWait, postWait; |
31 |
bool noXReverse = false; |
32 |
bool noXReverse = false; |
32 |
|
33 |
|
33 |
public static this() { |
34 |
public static void randInit() { |
34 |
rand = new Rand; |
35 |
rand = new Rand; |
35 |
} |
36 |
} |
36 |
|
37 |
|
37 |
public static void setRandSeed(long seed) { |
38 |
public static void setRandSeed(long seed) { |
|
|
39 |
if (!rand) rand = new Rand; |
38 |
rand.setSeed(seed); |
40 |
rand.setSeed(seed); |
39 |
} |
41 |
} |
40 |
|
42 |
|
Lines 93-121
Link Here
|
93 |
public class BarrageManager { |
95 |
public class BarrageManager { |
94 |
private: |
96 |
private: |
95 |
static BulletMLParserTinyXML *parser[char[]][char[]]; |
97 |
static BulletMLParserTinyXML *parser[char[]][char[]]; |
|
|
98 |
static BulletMLParserTinyXML *parser2[char[]]; |
96 |
static const char[] BARRAGE_DIR_NAME = "barrage"; |
99 |
static const char[] BARRAGE_DIR_NAME = "barrage"; |
97 |
|
100 |
|
98 |
public static void load() { |
101 |
public static void load() { |
99 |
char[][] dirs = listdir(BARRAGE_DIR_NAME); |
102 |
char[][] dirs = linux_listdir.listdir(BARRAGE_DIR_NAME); |
100 |
foreach (char[] dirName; dirs) { |
103 |
foreach (char[] dirName; dirs) { |
101 |
char[][] files = listdir(BARRAGE_DIR_NAME ~ "/" ~ dirName); |
104 |
char[][] files = linux_listdir.listdir(BARRAGE_DIR_NAME ~ "/" ~ dirName); |
102 |
foreach (char[] fileName; files) { |
105 |
foreach (char[] fileName; files) { |
103 |
if (getExt(fileName) != "xml") |
106 |
if (getExt(fileName) != "xml") |
104 |
continue; |
107 |
continue; |
105 |
parser[dirName][fileName] = getInstance(dirName, fileName); |
108 |
char[] barrageName = dirName ~ "/" ~ fileName; |
|
|
109 |
parser2[barrageName] = getInstance(dirName, fileName); |
106 |
} |
110 |
} |
107 |
} |
111 |
} |
108 |
} |
112 |
} |
109 |
|
113 |
|
110 |
public static BulletMLParserTinyXML* getInstance(char[] dirName, char[] fileName) { |
114 |
public static BulletMLParserTinyXML* getInstance(char[] dirName, char[] fileName) { |
111 |
if (!parser[dirName][fileName]) { |
115 |
char[] barrageName = dirName ~ "/" ~ fileName; |
112 |
char[] barrageName = dirName ~ "/" ~ fileName; |
116 |
if (!parser2[barrageName]) { |
113 |
Logger.info("Load BulletML: " ~ barrageName); |
117 |
Logger.info("Load BulletML: " ~ barrageName); |
114 |
parser[dirName][fileName] = |
118 |
parser2[barrageName] = |
115 |
BulletMLParserTinyXML_new(std.string.toStringz(BARRAGE_DIR_NAME ~ "/" ~ barrageName)); |
119 |
BulletMLParserTinyXML_new(std.string.toStringz(BARRAGE_DIR_NAME ~ "/" ~ barrageName)); |
116 |
BulletMLParserTinyXML_parse(parser[dirName][fileName]); |
120 |
BulletMLParserTinyXML_parse(parser2[barrageName]); |
117 |
} |
121 |
} |
118 |
return parser[dirName][fileName]; |
122 |
return parser2[barrageName]; |
119 |
} |
123 |
} |
120 |
|
124 |
|
121 |
public static BulletMLParserTinyXML*[] getInstanceList(char[] dirName) { |
125 |
public static BulletMLParserTinyXML*[] getInstanceList(char[] dirName) { |