etqw-sdk/base/script/misc/maskeditor.script
2008-05-29 00:00:00 +00:00

115 lines
2.5 KiB
Text

/***********************************************************************
maskeditor.script
***********************************************************************/
object maskeditor : weapon_base {
void destroy();
void init();
void Lower();
void Raise();
void Idle();
object session;
float hudModuleHandle;
float showHudValue;
cvar g_editMask;
cvar g_editMaskSize;
cvar g_editMaskAutoSave;
};
void maskeditor::destroy() {
if ( hudModuleHandle != -1 ) {
sys.freeHudModule( hudModuleHandle );
hudModuleHandle = -1;
}
session.remove();
g_editMask.remove();
g_editMaskSize.remove();
g_editMaskAutoSave.remove();
}
void maskeditor::init() {
hudModuleHandle = sys.allocHudModule( getKey( "gui_overlay" ), getFloatKeyWithDefault( "hud_sort", 0 ), false );
session = sys.createMaskEditSession();
session.setDecalMaterial( getKey( "mtr_decal" ) );
g_editMask = sys.getCVar( "g_editMask", "dm_default" );
g_editMaskSize = sys.getCVar( "g_editMaskSize", "1" );
g_editMaskAutoSave = sys.getCVar( "g_editMaskAutoSave", "1" );
session.openMask( g_editMask.getStringValue() );
weaponState( "Raise", 0 );
}
void maskeditor::Raise() {
weaponRising();
weaponState( "Idle", 4 );
}
void maskeditor::Lower() {
weaponHolstered();
waitUntil( WEAPON_RAISEWEAPON );
weaponState( "Raise", 0 );
}
void maskeditor::Idle() {
weaponReady();
float changed = 0.f;
float autosave;
while ( 1 ) {
sys.waitFrame();
session.setStampSize( g_editMaskSize.getFloatValue() );
autosave = g_editMaskAutoSave.getBoolValue();
sys.setGUIFloat( hudModuleHandle, "changed", changed );
if ( melee( MASK_SOLID | MASK_OPAQUE, 4096.f * 20, 1, false ) ) {
vector position = getMeleeEndPos();
session.updateProjection( position );
if ( WEAPON_ATTACK ) {
if ( session.stamp( position, autosave, 1.f ) ) {
if ( !autosave ) {
changed = 1.f;
}
}
}
if ( WEAPON_ALTFIRE ) {
if ( session.stamp( position, autosave, 0.f ) ) {
if ( !autosave ) {
changed = 1.f;
}
}
}
if ( myPlayer.getButton( PK_ACTIVATE ) ) {
if ( changed ) {
session.saveAll();
changed = 0.f;
}
}
if ( WEAPON_LOWERWEAPON ) {
weaponState( "Lower", 0 );
}
if ( myPlayer.getButton( PK_SPRINT ) ) {
sys.print("Position: X: " + position_x + " Y:" + position_y + " Z:" + position_z + "\n" );
}
}
}
}