Files
AM2R-Community-Updates/objects/oOptionsDisplay.object.gmx
2021-08-03 23:11:48 -05:00

774 lines
24 KiB
XML

<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<object>
<spriteName>&lt;undefined&gt;</spriteName>
<solid>0</solid>
<visible>-1</visible>
<depth>0</depth>
<persistent>0</persistent>
<parentName>&lt;undefined&gt;</parentName>
<maskName>&lt;undefined&gt;</maskName>
<events>
<event eventtype="0" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>y -= 8; // Moved from user 0 to avoid reset issues.
// Change to object creation position instead!
global.curropt = 0;
active = 0;
targetY = y;
timer = 0;
SPACER = 16;
buttonsEnabled = true;
if (os_type != os_android &amp;&amp; !gamepad_is_connected(global.gamepadIndex)) || (os_type == os_android &amp;&amp; (!global.joydetected || global.compatibilitymode)) {
buttonsEnabled = false;
}
view_object[0] = id;
// Active in 5
alarm[0] = 5;
var i = 0;
/*
This list dictates the order of selection in the Display Menu.
Also, the lists in User Defined 0 and 3 need to be in order.
*/
// DISPLAY OPTIONS
// Fullscreen and scale should NOT exist on Android
if (os_type != os_android) {
opFullscreen = i++;
opScale = i++;
}
opVSync = i++;
opSensitivity = i++;
opWidescreen = i++;
// HUD
opShowHUD = i++;
opShowMap = i++;
opCounterStyle = i++;
// NOTIFICATIONS
opShowHints = i++;
if (buttonsEnabled) {
opButtonType = i++;
}
opShowScans = i++;
opLanguage = i++;
menuSize = i; // 1 larger than last item
vTargetY = 18 * menuSize + 72;
i = 0;
// Enable menu
repeat (menuSize + 1) {
canEdit[i] = 1;
i++;
}
// Get lang info
langCount = array_length_1d(global.language);
for (i = 0; i &lt; langCount; i += 1) {
ini_open(global.language[i]);
lang[i] = ini_read_string("Header", "Language", "[!]");
langAuthor[i] = ini_read_string("Header", "Author", "[!]");
langAuthor2[i] = ini_read_string("Header", "Author2", "[!]");
ini_close();
}
// Create menu items
event_user(0);
// Load tip text
event_user(3);
// Load current tip text
global.tiptext = tip[global.curropt];
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="1" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>/// Destroy menu options
event_user(1);
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="1">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>/// Update window scale
set_window_scale(global.opscale);
display_reset(0, global.opvsync);
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="2" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>active = 1;
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="3" enumb="0">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>if (active) {
// Menu DOWN
if (oControl.kDown &gt; 0 &amp;&amp; (oControl.kDownPushedSteps == 0 || oControl.kDownPushedSteps &gt; 30 &amp;&amp; timer == 0)) {
global.curropt += 1;
// Wrap
if (global.curropt &gt; menuSize) global.curropt = 0;
// Skip inactive
while (canEdit[global.curropt] == 0) {
global.curropt += 1;
// Wrap again (safety)
if (global.curropt &gt; menuSize) global.curropt = 0;
}
// New target
targetY = op[global.curropt].y + 16;
if (targetY &gt; vTargetY) targetY = vTargetY;
sfx_play(sndMenuMove);
global.tiptext = tip[global.curropt];
} // Menu UP
else if (oControl.kUp &gt; 0 &amp;&amp; (oControl.kUpPushedSteps == 0 || oControl.kUpPushedSteps &gt; 30 &amp;&amp; timer == 0)) {
global.curropt -= 1;
// Wrap
if (global.curropt &lt; 0) global.curropt = menuSize;
// Skip inactive
while (canEdit[global.curropt] == 0)
{
global.curropt -= 1;
// Wrap again (safety)
if (global.curropt &lt; 0) global.curropt = menuSize;
}
// New target
targetY = op[global.curropt].y + 16;
if (targetY &gt; vTargetY) targetY = vTargetY;
sfx_play(sndMenuMove);
global.tiptext = tip[global.curropt];
}
var input = oControl.kRight - oControl.kLeft;
var inputSteps = oControl.kRightPushedSteps - oControl.kLeftPushedSteps;
// Menu LEFT and RIGHT
if (input != 0 &amp;&amp; inputSteps == 0 &amp;&amp; global.curropt &lt; menuSize &amp;&amp; oControl.kDown == 0 &amp;&amp; oControl.kUp == 0) {
if (os_type != os_android) {
// Fullscreen
if (global.curropt == opFullscreen) {
global.opfullscreen = !global.opfullscreen;
set_fullscreen(global.opfullscreen);
if (!global.opfullscreen) {
global.opscale = 1;
// Update window scale
alarm[1] = 1;
}
}
// Scale
if (global.curropt == opScale) {
if (global.opfullscreen) {
global.opscale = wrap(global.opscale + input, 0, 4);
}
if (!global.opfullscreen) {
global.opscale = wrap(global.opscale + input, 1, 4)
set_window_scale(global.opscale);
}
}
}
// VSync
if (global.curropt == opVSync) {
global.opvsync = !global.opvsync;
display_reset(0, global.opvsync);
if (!global.opfullscreen) set_window_scale(global.opscale);
}
// Sensitivity Mode
if (global.curropt == opSensitivity) {
global.sensitivitymode = !global.sensitivitymode;
}
// Widescreen
if (global.curropt == opWidescreen) {
global.widescreen_enabled = !global.widescreen_enabled;
if (room == rm_options) {
oControl.widescreen = global.widescreen_enabled;
if (global.widescreen_enabled == 0) {
view_visible[1] = false;
}
if (global.opfullscreen == 0) {
set_window_scale(window_get_height()/240);
window_set_position(window_get_x()+((53-(global.widescreen_enabled*106))*(window_get_height()/240)),window_get_y());
}
if (global.opfullscreen == 1 || os_type == os_android) {
display_reset(0, global.opvsync);
}
}
}
// Show HUD
if (global.curropt == opShowHUD) global.opshowhud = !global.opshowhud;
// Show Map
if (global.curropt == opShowMap) global.ophudshowmap = !global.ophudshowmap;
// Monster Counter
if (global.curropt == opCounterStyle) {
global.ophudshowmetrcount = wrap(global.ophudshowmetrcount + input, 0, 2);
}
// Show Hints
if (global.curropt == opShowHints) global.ophudshowhints = !global.ophudshowhints;
// Button Prompt Style
if (buttonsEnabled &amp;&amp; global.curropt == opButtonType) {
var inputMax = 5 - ((os_type == os_android) * 2);
oControl.mod_buttonsconfig = wrap(oControl.mod_buttonsconfig + input, 0, inputMax);
// Update events
event_user(3);
event_user(4);
}
// Show Scans
if (global.curropt == opShowScans) global.ophudshowlogmsg = !global.ophudshowlogmsg;
// Language
if (global.curropt == opLanguage) {
global.currentlanguage = wrap(global.currentlanguage + input, 0, langCount - 1);
// Update events
event_user(3);
event_user(4);
global.tiptext = tip[global.curropt];
}
sfx_play(sndMenuMove);
// Update text
event_user(2);
}
if (oControl.kMenu1 &amp;&amp; oControl.kMenu1PushedSteps == 0) {
if (global.curropt == menuSize) {
load_resources();
save_gameoptions();
view_object[0] = noone;
view_yview[0] = 0;
instance_create(50, 92, oOptionsMain);
instance_destroy();
sfx_play(sndMenuSel);
}
}
}
if (targetY != y) y += (targetY - y) / 10;
timer -= 1;
if (timer &lt; 0) timer = 8;
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="14">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>/// Reload ALL text (usually for lang files)
// Label
op[50].text = get_text("OptionsDisplay", "Title_Display");
// Fullscreen, scale
if (os_type != os_android) {
op[opFullscreen].label = get_text("OptionsDisplay", "Fullscreen");
if (global.opfullscreen) {
op[opScale].label = get_text("OptionsDisplay", "DisplayScale");
} else op[opScale].label = get_text("OptionsDisplay", "WindowSize");
}
op[opVSync].label = get_text("OptionsDisplay", "VSync");
op[51].text = get_text("OptionsDisplay", "Title_HUD");
op[opSensitivity].label = get_text("Misc", "SensitivityMode");
op[opWidescreen].label = get_text("Misc", "Widescreen");
op[opShowHUD].label = get_text("OptionsDisplay", "HUDDisplay");
op[opShowMap].label = get_text("OptionsDisplay", "HUDMap");
op[opCounterStyle].label = get_text("OptionsDisplay", "MonsterCounter");
op[52].text = get_text("OptionsDisplay", "Title_Notifications");
op[opShowHints].label = get_text("OptionsDisplay", "Hints");
if (buttonsEnabled) {
op[opButtonType].label = get_text("ExtrasMenu", "Controller");
}
op[opShowScans].label = get_text("OptionsDisplay", "ScanNotifications");
op[opLanguage].label = get_text("OptionsDisplay", "Language");
op[53].label = get_text("OptionsDisplay", "Author") + " " + langAuthor[global.currentlanguage];
op[54].label = langAuthor2[global.currentlanguage];
op[menuSize].label = get_text("GlobalOptions", "Exit");
with (oSS_Fg) {
opt_text1 = get_text("Subscreen", "Title_Options");
tip1text = get_text("Subscreen", "Menu_Tip");
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="13">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>/// Load tip text
if (os_type != os_android) {
tip[opFullscreen] = get_text("OptionsDisplay", "Fullscreen_Tip");
tip[opScale] = get_text("OptionsDisplay", "DisplayScale_Tip");
}
tip[opVSync] = get_text("OptionsDisplay", "VSync_Tip");
tip[opSensitivity] = get_text("Misc", "SensitivityMode_Tip");
tip[opWidescreen] = get_text("Misc", "Widescreen_Tip");
tip[opShowHUD] = get_text("OptionsDisplay", "HUDDisplay_Tip");
tip[opShowMap] = get_text("OptionsDisplay", "HUDMap_Tip");
tip[opCounterStyle] = get_text("OptionsDisplay", "MonsterCounter_Tip");
tip[opShowHints] = get_text("OptionsDisplay", "Hints_Tip");
if (buttonsEnabled) {
tip[opButtonType] = get_text("ExtrasMenu", "Controller_Tip");
}
tip[opShowScans] = get_text("OptionsDisplay", "ScanNotifications_Tip");
tip[opLanguage] = get_text("OptionsDisplay", "Language_Tip");
tip[menuSize] = get_text("GlobalOptions", "ExitMain_Tip");
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="12">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>/// Update option text
// Fullscreen, Scale
if (os_type != os_android) {
if (global.opfullscreen) {
op[opFullscreen].optext = get_text("GlobalOptions", "Enabled");
op[opScale].label = get_text("OptionsDisplay", "DisplayScale");
} else {
op[opFullscreen].optext = get_text("GlobalOptions", "Disabled");
op[opScale].label = get_text("OptionsDisplay", "WindowSize");
}
// Scale sizes
switch (global.opscale) {
case 0: op[opScale].optext = get_text("OptionsDisplay", "DisplayScale_Stretch"); break;
case 1: op[opScale].optext = "1X"; break;
case 2: op[opScale].optext = "2X"; break;
case 3: op[opScale].optext = "3X"; break;
case 4: op[opScale].optext = "4X"; break;
default: op[opScale].optext = "[!]"; break;
}
}
// Vsync
if (global.opvsync) {
op[opVSync].optext = get_text("GlobalOptions", "Enabled");
} else {
op[opVSync].optext = get_text("GlobalOptions", "Disabled");
}
// Sensitivity Mode
if (global.sensitivitymode) {
op[opSensitivity].optext = get_text("GlobalOptions", "Enabled");
} else {
op[opSensitivity].optext = get_text("GlobalOptions", "Disabled");
}
// Widescreen
if (global.widescreen_enabled) {
op[opWidescreen].optext = get_text("GlobalOptions", "Enabled");
} else {
op[opWidescreen].optext = get_text("GlobalOptions", "Disabled");
}
// Show HUD
if (global.opshowhud) {
op[opShowHUD].optext = get_text("GlobalOptions", "Enabled");
} else op[opShowHUD].optext = get_text("GlobalOptions", "Disabled");
// Show Map
if (global.ophudshowmap) {
op[opShowMap].optext = get_text("GlobalOptions", "Enabled");
} else op[opShowMap].optext = get_text("GlobalOptions", "Disabled");
// Monster Counter Style
switch (global.ophudshowmetrcount) {
case 0: op[opCounterStyle].optext = get_text("GlobalOptions", "Disabled"); break;
case 1: op[opCounterStyle].optext = get_text("OptionsDisplay", "MonsterCounter_Local"); break;
case 2: op[opCounterStyle].optext = get_text("OptionsDisplay", "MonsterCounter_Global"); break;
default: op[opCounterStyle].optext = "[!]"; break;
}
// Update Monster Counter tip text
if (global.curropt == opCounterStyle) {
switch (global.ophudshowmetrcount) {
case 0: global.tiptext = get_text("OptionsDisplay", "MonsterCounter_Disabled_Tip"); break;
case 1: global.tiptext = get_text("OptionsDisplay", "MonsterCounter_Local_Tip"); break;
case 2: global.tiptext = get_text("OptionsDisplay", "MonsterCounter_Global_Tip"); break;
default: global.tiptext = "[!]"; break;
}
}
// Show Hints
if (global.ophudshowhints) {
op[opShowHints].optext = get_text("GlobalOptions", "Enabled");
} else op[opShowHints].optext = get_text("GlobalOptions", "Disabled");
// Button Display Type
if (buttonsEnabled) {
switch (oControl.mod_buttonsconfig) {
case 0: op[opButtonType].optext = get_text("ExtrasMenu", "XBox"); break;
case 1: op[opButtonType].optext = get_text("ExtrasMenu", "Playstation"); break;
case 2: op[opButtonType].optext = get_text("ExtrasMenu", "NintendoPro"); break;
case 3: op[opButtonType].optext = get_text("ExtrasMenu", "SNESColored"); break;
case 4: op[opButtonType].optext = get_text("ExtrasMenu", "MOGA"); break;
case 5: op[opButtonType].optext = get_text("ExtrasMenu", "OUYA"); break;
default: op[opButtonType].optext = "[!]"; break;
}
}
// Show Scans
if (global.ophudshowlogmsg) {
op[opShowScans].optext = get_text("GlobalOptions", "Enabled");
} else op[opShowScans].optext = get_text("GlobalOptions", "Disabled");
// Language
op[opLanguage].optext = lang[global.currentlanguage];
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="11">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>/// Delete menu options
for (var i = 0; i &lt;= menuSize; i++) {
with (op[i]) instance_destroy();
}
// Delete headers
for (var i = 50; i &lt;= 54; i++) {
with (op[i]) instance_destroy();
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="10">
<action>
<libid>1</libid>
<id>603</id>
<kind>7</kind>
<userelative>0</userelative>
<isquestion>0</isquestion>
<useapplyto>-1</useapplyto>
<exetype>2</exetype>
<functionname></functionname>
<codestring></codestring>
<whoName>self</whoName>
<relative>0</relative>
<isnot>0</isnot>
<arguments>
<argument>
<kind>1</kind>
<string>/// Create menu options
var i = 1;
// Label
op[50] = instance_create(x, y, oMenuLabel);
op[50].text = get_text("OptionsDisplay", "Title_Display");
// Fullscreen and scale should NOT exist on Android
if (os_type != os_android) {
// Fullscreen
op[opFullscreen] = instance_create(x, y + SPACER * i, oOptionLR);
op[opFullscreen].label = get_text("OptionsDisplay", "Fullscreen");
op[opFullscreen].optionid = opFullscreen;
i++;
// Scale
op[opScale] = instance_create(x, y + SPACER * i, oOptionLR);
// Scale on fullscreen, size on not
if (global.opfullscreen) {
op[opScale].label = get_text("OptionsDisplay", "DisplayScale");
} else op[opScale].label = get_text("OptionsDisplay", "WindowSize");
op[opScale].optionid = opScale;
i++;
}
// VSync
op[opVSync] = instance_create(x, y + SPACER * i, oOptionLR);
op[opVSync].label = get_text("OptionsDisplay", "VSync");
op[opVSync].optionid = opVSync;
i++;
// Sensitivity Mode
op[opSensitivity] = instance_create(x, y + SPACER * i, oOptionLR);
op[opSensitivity].label = get_text("Misc", "SensitivityMode");
op[opSensitivity].optionid = opSensitivity;
i++;
// Widescreen
op[opWidescreen] = instance_create(x, y + SPACER * i, oOptionLR);
op[opWidescreen].label = get_text("Misc", "Widescreen");
op[opWidescreen].optionid = opWidescreen;
i++;
// HUD Header
op[51] = instance_create(x, y + SPACER * i, oMenuLabel);
op[51].text = get_text("OptionsDisplay", "Title_HUD");
i++;
// HUD Display
op[opShowHUD] = instance_create(x, y + SPACER * i, oOptionLR);
op[opShowHUD].label = get_text("OptionsDisplay", "HUDDisplay");
op[opShowHUD].optionid = opShowHUD;
i++;
// Map Display
op[opShowMap] = instance_create(x, y + SPACER * i, oOptionLR);
op[opShowMap].label = get_text("OptionsDisplay", "HUDMap");
op[opShowMap].optionid = opShowMap;
i++;
// Monster Counter Style
op[opCounterStyle] = instance_create(x, y + SPACER * i, oOptionLR);
op[opCounterStyle].label = get_text("OptionsDisplay", "MonsterCounter");
op[opCounterStyle].optionid = opCounterStyle;
i++;
// Notification Header
op[52] = instance_create(x, y + SPACER * i, oMenuLabel);
op[52].text = get_text("OptionsDisplay", "Title_Notifications");
i++;
// Show Hints
op[opShowHints] = instance_create(x, y + SPACER * i, oOptionLR);
op[opShowHints].label = get_text("OptionsDisplay", "Hints");
op[opShowHints].optionid = opShowHints;
i++;
// Button Display Type
if (buttonsEnabled) {
op[opButtonType] = instance_create(x, y + SPACER * i, oOptionLR);
op[opButtonType].label = get_text("ExtrasMenu", "Controller");
op[opButtonType].optionid = opButtonType;
i++;
}
// Show Scans
op[opShowScans] = instance_create(x, y + SPACER * i, oOptionLR);
op[opShowScans].label = get_text("OptionsDisplay", "ScanNotifications");
op[opShowScans].optionid = opShowScans;
i++;
// Language
op[opLanguage] = instance_create(x, y + SPACER * i, oOptionLR);
op[opLanguage].label = get_text("OptionsDisplay", "Language");
op[opLanguage].optionid = opLanguage;
i++;
// Author display
op[53] = instance_create(x, y + SPACER * i, oPauseOption);
// The space here will not carry from the lang file, so we manually insert it.
op[53].label = get_text("OptionsDisplay", "Author") + " " + langAuthor[global.currentlanguage];
op[53].optionid = 53;
op[53].canEdit = 0;
op[53].color = c_gray;
i++;
var author2text = get_text("OptionsDisplay", "Author");
op[54] = instance_create(x + 8, y + SPACER * i, oPauseOption);
// The space here will not carry from the lang file, so we manually insert it.
op[54].label = langAuthor2[global.currentlanguage];
op[54].optionid = 54;
op[54].canEdit = 0;
op[54].color = c_gray;
i++;
// Exit - This will always be the last option
op[menuSize] = instance_create(x, y + SPACER * i, oPauseOption);
op[menuSize].optionid = menuSize;
op[menuSize].label = get_text("GlobalOptions", "Exit");
// Update options text
event_user(2);
</string>
</argument>
</arguments>
</action>
</event>
</events>
<PhysicsObject>0</PhysicsObject>
<PhysicsObjectSensor>0</PhysicsObjectSensor>
<PhysicsObjectShape>0</PhysicsObjectShape>
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
<PhysicsObjectGroup>0</PhysicsObjectGroup>
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
<PhysicsShapePoints/>
</object>