]> git.localhorst.tv Git - blank.git/blobdiff - src/app/app.cpp
fix multiple application support in makefile
[blank.git] / src / app / app.cpp
index 2b1a494efadbd20424a22886b57e93c6c2828478..6c89bdbeebeef3710b43b37881a0af1042e8ccf6 100644 (file)
@@ -81,7 +81,7 @@ void HeadlessApplication::RunS(size_t n, size_t t) {
        for (size_t i = 0; HasState() && i < n; ++i) {
                Loop(t);
                std::cout << '.';
-               if (i % 16 == 15) {
+               if (i % 32 == 31) {
                        std::cout << std::setfill(' ') << std::setw(5) << std::right << (i + 1) << std::endl;
                } else {
                        std::cout << std::flush;
@@ -321,14 +321,19 @@ void AssetLoader::LoadBlockTypes(
                throw std::runtime_error("failed to open block type file " + full);
        }
        TokenStreamReader in(file);
-       string name;
+       string proto;
        while (in.HasMore()) {
-               in.ReadIdentifier(name);
-               in.Skip(Token::EQUALS);
                BlockType type;
+               in.ReadIdentifier(type.name);
+               in.Skip(Token::EQUALS);
+               if (in.Peek().type == Token::IDENTIFIER) {
+                       // prototype
+                       in.ReadIdentifier(proto);
+                       type.Copy(reg.Get(proto));
+               }
                type.Read(in, snd_index, tex_index, shapes);
                in.Skip(Token::SEMICOLON);
-               reg.Add(type);
+               reg.Add(std::move(type));
        }
 }