Some Cleanup

This commit is contained in:
PabstMirror 2015-05-03 02:06:49 -05:00
parent 5147f9f584
commit 5c556647ab
2 changed files with 23 additions and 25 deletions

View File

@ -26,7 +26,7 @@ if ((vehicle ACE_player) != ACE_player) exitWith {};
systemChat format ["starting %1", diag_tickTime];
[{
private ["_fncStatement", "_player", "_fncCondition", "_variable", "_theHouse", "_statement", "_condition", "_configPath", "_displayName", "_displayNameDefault", "_iconImage", "_position", "_maxDistance", "_helperObject", "_actionOffset", "_memPoint", "_object", "_count", "_helperPos", "_action"];
private["_helperObject", "_helperPos", "_houseWasScaned", "_nearBuidlings", "_theHouse"];
PARAMS_2(_args,_pfID);
EXPLODE_4_PVT(_args,_setPosition,_addedHelpers,_housesScaned,_houseBeingScaned);
@ -40,10 +40,10 @@ systemChat format ["starting %1", diag_tickTime];
//If player moved >5 meters from last pos, then rescan
if (((getPosASL ace_player) distance _setPosition) < 5) exitWith {};
//Make the common case fast (looking at a door):
//Make the common case fast (cursorTarget is looking at a door):
if ((!isNull cursorTarget) && {cursorTarget isKindOf "Static"} && {!(cursorTarget in _housesScaned)}) then {
_housesScaned pushBack _houseBeingScaned;
if ((isClass (_configPath >> "UserActions")) || {(count (getArray (configFile >> "CfgVehicles" >> (typeOf _theHouse) >> "ladders"))) > 0}) then {
_housesScaned pushBack cursorTarget;
if (((count (configFile >> "CfgVehicles" >> (typeOf cursorTarget) >> "UserActions")) > 0) || {(count (getArray (configFile >> "CfgVehicles" >> (typeOf cursorTarget) >> "ladders"))) > 0}) then {
_houseBeingScaned = cursorTarget;
};
};
@ -57,8 +57,7 @@ systemChat format ["starting %1", diag_tickTime];
_houseWasScaned = true;
_housesScaned pushBack _x;
if ((typeOf _theHouse) != "") then {
_configPath = (configFile >> "CfgVehicles" >> (typeOf _theHouse));
if ((isClass (_configPath >> "UserActions")) || {(count (getArray (configFile >> "CfgVehicles" >> (typeOf _theHouse) >> "ladders"))) > 0}) then {
if (((count (configFile >> "CfgVehicles" >> (typeOf _theHouse) >> "UserActions")) > 0) || {(count (getArray (configFile >> "CfgVehicles" >> (typeOf _theHouse) >> "ladders"))) > 0}) then {
_args set [3, _theHouse];
};
};
@ -68,7 +67,7 @@ systemChat format ["starting %1", diag_tickTime];
//If we finished scanning everything, update position
if (!_houseWasScaned) then {
systemChat format ["Pos Updated (stable): %1", diag_tickTime];
systemChat format ["Pos Updated (stable): %1 [count %2]", diag_tickTime, (count _addedHelpers)];
_args set [0, (getPosASL ace_player)];
};
} else {
@ -84,12 +83,9 @@ systemChat format ["starting %1", diag_tickTime];
//ASL/ATL bullshit (note: attachTo doesn't work on buildings)
_helperPos = _houseBeingScaned modelToWorld (_houseBeingScaned selectionPosition _x);
if (surfaceIsWater _helperPos) then {
_helperObject setPosAslw _helperPos;
} else {
_helperObject setPosAtl _helperPos;
};
// _helperObject hideObject true;
_helperObject setPosASL (_helperPos call EFUNC(common,positionToASL));
_helperObject hideObject true;
TRACE_3("Making New Helper",_helperObject,_x,_houseBeingScaned);
{
[_helperObject, 0, [], _x] call EFUNC(interact_menu,addActionToObject);

View File

@ -1,7 +1,6 @@
/*
* Author: PabstMirror
* Scans for nearby "Static" objects (buildings) and adds the UserActions to them.
* Called when interact_menu starts rendering (from "interact_keyDown" event)
* Scans the buidling type for UserActions and Ladder mount points.
*
* Arguments:
* 0: Building Classname <STRING>
@ -13,9 +12,10 @@
*/
#include "script_component.hpp"
PARAMS_1(_typeOfBuilding);
private["_action", "_actionDisplayName", "_actionDisplayNameDefault", "_actionMaxDistance", "_actionOffset", "_actionPath", "_actionPosition", "_building", "_configPath", "_endIndex", "_iconImage", "_index", "_ladders", "_memPointIndex", "_memPoints", "_memPointsActions", "_startIndex"];
_memPoints = [];
_memPointsActions = [];
@ -98,39 +98,41 @@ _fnc_ladder_ladderUp = {
PARAMS_3(_target,_player,_variable);
EXPLODE_1_PVT(_variable,_ladderIndex);
_building = _target getVariable [QGVAR(building), objNull];
ACE_player action ["LadderUp", _building, _ladderIndex, 0];
_player action ["LadderUp", _building, _ladderIndex, 0];
};
_fnc_ladder_ladderDown = {
PARAMS_3(_target,_player,_variable);
EXPLODE_1_PVT(_variable,_ladderIndex);
_building = _target getVariable [QGVAR(building), objNull];
ACE_player action ["LadderUp", _building, (_variable select 0), 1];
_player action ["LadderUp", _building, (_variable select 0), 1];
};
_fnc_ladder_conditional = { //Don't show actions if on a ladder
((getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState _player) >> "onLadder")) == 0)
};
_ladders = getArray (configFile >> "CfgVehicles" >> _typeOfBuilding >> "ladders");
{
EXPLODE_2_PVT(_x,_ladderBottomMemPoint,_ladderTopMemPoint);
_actionMaxDistance = 2;
_actionDisplayName = "Climb Ladder Up";
_actionDisplayName = localize "str_action_ladderup";
_iconImage = "\A3\ui_f\data\igui\cfg\actions\ladderup_ca.paa";
//Ladder Up Action:
_actionOffset = [_ladderBottomMemPoint] call _fnc_getMemPointOffset;
_actionOffset = _actionOffset vectorAdd [0,0,1];
_memPointIndex = _memPoints find _ladderBottomMemPoint;
_action = [format ["LadderUp_%1", _forEachIndex], _actionDisplayName, _iconImage, _fnc_ladder_ladderUp, {true}, {}, [_forEachIndex], _actionOffset, _actionMaxDistance, [false,false,false,false,true]] call EFUNC(interact_menu,createAction);
_action = [format ["LadderUp_%1", _forEachIndex], _actionDisplayName, _iconImage, _fnc_ladder_ladderUp, _fnc_ladder_conditional, {}, [_forEachIndex], _actionOffset, _actionMaxDistance, [false,false,false,false,true]] call EFUNC(interact_menu,createAction);
(_memPointsActions select _memPointIndex) pushBack _action;
_actionDisplayName = "Climb Ladder Down";
_actionDisplayName = localize "str_action_ladderdown";
_iconImage = "\A3\ui_f\data\igui\cfg\actions\ladderdown_ca.paa";
//Ladder Down Action:
_actionOffset = [_ladderTopMemPoint] call _fnc_getMemPointOffset;
_actionOffset = _actionOffset vectorAdd [0,0,1];
_actionOffset = _actionOffset vectorAdd [0,0,0.25];
_memPointIndex = _memPoints find _ladderTopMemPoint;
_action = [format ["LadderDown_%1", _forEachIndex], _actionDisplayName, _iconImage, _fnc_ladder_ladderDown, {true}, {}, [_forEachIndex], _actionOffset, _actionMaxDistance, [false,false,false,false,true]] call EFUNC(interact_menu,createAction);
_action = [format ["LadderDown_%1", _forEachIndex], _actionDisplayName, _iconImage, _fnc_ladder_ladderDown, _fnc_ladder_conditional, {}, [_forEachIndex], _actionOffset, _actionMaxDistance, [false,false,false,false,true]] call EFUNC(interact_menu,createAction);
(_memPointsActions select _memPointIndex) pushBack _action;
} forEach _ladders;