-#ifndef MONSTERS_ALL_H
-#define MONSTERS_ALL_H
+#pragma once
-#include "monster.qh"
+string M_Model(string m_mdl);
-void RegisterMonsters();
-const int MON_MAXCOUNT = 24;
-entity monster_info[MON_MAXCOUNT], monster_info_first, monster_info_last;
-entity get_monsterinfo(float id);
-int MON_COUNT;
+REGISTRY(Monsters, BITS(5))
+#define Monsters_from(i) _Monsters_from(i, MON_Null)
+#define get_monsterinfo(i) Monsters_from(i)
+REGISTER_REGISTRY(Monsters)
+REGISTRY_CHECK(Monsters)
const int MON_FIRST = 1;
-#define MON_LAST (MON_FIRST + MON_COUNT - 1)
-/** If you register a new monster, make sure to add it to all.inc */
-#define REGISTER_MONSTER(id, inst) REGISTER(RegisterMonsters, MON, monster_info, MON_COUNT, id, monsterid, inst)
-REGISTER_REGISTRY(RegisterMonsters)
+#define MON_LAST (Monsters_COUNT - 1)
+#define REGISTER_MONSTER(id, inst) REGISTER(Monsters, MON, id, monsterid, inst)
-entity get_monsterinfo(int id);
+#include "monster.qh"
REGISTER_MONSTER(Null, NEW(Monster));
-
-#include "all.inc"
-
-#endif