mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
luaengine: add machine_flags library (#5048)
This commit is contained in:
commit
072ae8d701
@ -1283,6 +1283,18 @@ void lua_engine::initialize()
|
||||
* driver.manufacturer
|
||||
* driver.compatible_with
|
||||
* driver.default_layout
|
||||
* driver.orientation - screen rotation degree (rot0/90/180/270)
|
||||
* driver.type - machine type (arcade/console/computer/other)
|
||||
* driver.not_working - not considered working
|
||||
* driver.supports_save - supports save states
|
||||
* driver.no_cocktail - screen flip support is missing
|
||||
* driver.is_bios_root - this driver entry is a BIOS root
|
||||
* driver.requires_artwork - requires external artwork for key game elements
|
||||
* driver.clickable_artwork - artwork is clickable and requires mouse cursor
|
||||
* driver.unofficial - unofficial hardware modification
|
||||
* driver.no_sound_hw - system has no sound output
|
||||
* driver.mechanical - contains mechanical parts (pinball, redemption games, ...)
|
||||
* driver.is_incomplete - official system with blatantly incomplete hardware/software
|
||||
*/
|
||||
|
||||
sol().registry().new_usertype<game_driver>("game_driver", "new", sol::no_constructor,
|
||||
@ -1293,7 +1305,59 @@ void lua_engine::initialize()
|
||||
"year", sol::readonly(&game_driver::year),
|
||||
"manufacturer", sol::readonly(&game_driver::manufacturer),
|
||||
"compatible_with", sol::readonly(&game_driver::compatible_with),
|
||||
"default_layout", sol::readonly(&game_driver::default_layout));
|
||||
"default_layout", sol::readonly(&game_driver::default_layout),
|
||||
"orientation", sol::property([](game_driver const &driver) {
|
||||
std::string rot;
|
||||
switch (driver.flags & machine_flags::MASK_ORIENTATION)
|
||||
{
|
||||
case machine_flags::ROT0:
|
||||
rot = "rot0";
|
||||
break;
|
||||
case machine_flags::ROT90:
|
||||
rot = "rot90";
|
||||
break;
|
||||
case machine_flags::ROT180:
|
||||
rot = "rot180";
|
||||
break;
|
||||
case machine_flags::ROT270:
|
||||
rot = "rot270";
|
||||
break;
|
||||
default:
|
||||
rot = "undefined";
|
||||
break;
|
||||
}
|
||||
return rot;
|
||||
}),
|
||||
"type", sol::property([](game_driver const &driver) {
|
||||
std::string type;
|
||||
switch (driver.flags & machine_flags::MASK_TYPE)
|
||||
{
|
||||
case machine_flags::TYPE_ARCADE:
|
||||
type = "arcade";
|
||||
break;
|
||||
case machine_flags::TYPE_CONSOLE:
|
||||
type = "console";
|
||||
break;
|
||||
case machine_flags::TYPE_COMPUTER:
|
||||
type = "computer";
|
||||
break;
|
||||
default:
|
||||
type = "other";
|
||||
break;
|
||||
}
|
||||
return type;
|
||||
}),
|
||||
"not_working", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::NOT_WORKING) > 0; }),
|
||||
"supports_save", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::SUPPORTS_SAVE) > 0; }),
|
||||
"no_cocktail", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::NO_COCKTAIL) > 0; }),
|
||||
"is_bios_root", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::IS_BIOS_ROOT) > 0; }),
|
||||
"requires_artwork", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::REQUIRES_ARTWORK) > 0; }),
|
||||
"clickable_artwork", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::CLICKABLE_ARTWORK) > 0; }),
|
||||
"unofficial", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::UNOFFICIAL) > 0; }),
|
||||
"no_sound_hw", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::NO_SOUND_HW) > 0; }),
|
||||
"mechanical", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::MECHANICAL) > 0; }),
|
||||
"is_incomplete", sol::property([](game_driver const &driver) { return (driver.flags & machine_flags::IS_INCOMPLETE) > 0; }
|
||||
));
|
||||
|
||||
|
||||
/* debugger_manager library (requires debugger to be active)
|
||||
|
Loading…
Reference in New Issue
Block a user