first commit

This commit is contained in:
2026-06-14 01:40:04 +02:00
commit 5511354783
4787 changed files with 103543 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

@@ -0,0 +1,2 @@
gotoAndStop("_on");
play();
@@ -0,0 +1,248 @@
class feg_m_contextMenu
{
var m_callback = null;
var m_defaultHelpersCallback = null;
var m_defaultHelpersPlayerId = "0";
static var ATTACHMOVIE_BASE_LEVEL = 500;
static var MAXIMUM_ENTRY_COUNT = 16;
static var ENTRY_HEIGHT = 20;
static var ENTRY_MARGIN_HORIZ = 4;
static var ENTRY_MARGIN_TOP = 4;
static var ENTRY_MARGIN_BOTTOM = 3;
function feg_m_contextMenu(screen)
{
feg_m_contextMenu.m_screen = screen;
this.hideMenu();
feg_m_contextMenu.m_screen.onEnterFrame = _global.bind0(this,this.frameDelayedInit);
}
function shutdown()
{
var _loc3_ = 0;
while(_loc3_ < entryCount)
{
this.m_entryClips[_loc3_].setSelectCallback(null);
this.m_entryClips[_loc3_].removeMovieClip();
_loc3_ = _loc3_ + 1;
}
feg_m_contextMenu.m_screen = null;
delete _global.feg_m_contextMenu;
}
function setNotificationCallback(fn)
{
if(this.m_callback != null && fn != null)
{
trace("ERROR in feg_m_contextMenu::setNotificationCallback(), previous callback exists!");
}
this.m_callback = fn;
}
function show(items, ids, states)
{
this.populateMenu(items,ids,states);
this.positionMenuAtCurrentMouseLocation();
this.showMenu();
}
function hide()
{
this.hideMenu();
}
function isShowing()
{
return feg_m_contextMenu.m_screen.contextMenu._visible;
}
function doDefaultFriendContextMenu(playerId, callback)
{
this.m_defaultHelpersPlayerId = playerId;
var ret = new Object();
// Checked
loadVariables("QueryGameEngine?IsPcGameHost&IS_PLAYER_IGNORED?Player=" + playerId + "&IS_PLAYER_BUDDY?Player=" + playerId + "&MP_BUDDYSTATUS?Player=" + playerId + "&GAME_HAS_OPEN_SLOTS",ret);
var isPCGameHost = Number(ret.IsPcGameHost) != 0;
var isBuddy = Number(ret.IS_PLAYER_BUDDY) != 0;
var isIgnored = Number(ret.IS_PLAYER_IGNORED) != 0;
var isBuddyOnline = Number(ret.MP_BUDDYSTATUS_IS_ONLINE) != 0;
var hasOpenGameSlots = Number(ret.GAME_HAS_OPEN_SLOTS) != 0;
var items = new Array("$ContextInviteToGame","$ContextWhisper",!isIgnored ? "$ContextIgnore" : "$ContextRemoveFromIgnore",!isBuddy ? "$ContextAddAsFriend" : "$ContextRemoveFromFriends");
var ids = new Array(_global.ENUM.CONTEXTMENU_INVITE_TO_GAME,_global.ENUM.CONTEXTMENU_WHISPER,!isIgnored ? _global.ENUM.CONTEXTMENU_IGNORE : _global.ENUM.CONTEXTMENU_REMOVE_FROM_IGNORE,!isBuddy ? _global.ENUM.CONTEXTMENU_ADD_AS_FRIEND : _global.ENUM.CONTEXTMENU_REMOVE_FROM_FRIENDS);
var states = new Array(!(isPCGameHost && isBuddyOnline && hasOpenGameSlots) ? 0 : 1,!isBuddyOnline ? 0 : 1,1,1);
this.m_defaultHelpersCallback = callback;
this.setNotificationCallback(_global.bind1DynamicParams(this,this.onDefaultFriendContextMenuEntrySelected));
this.show(items,ids,states);
}
function onDefaultFriendContextMenuEntrySelected(id)
{
if(id != _global.ENUM.CONTEXTMENU_INVALID_SELECTION)
{
switch(id)
{
case _global.ENUM.CONTEXTMENU_ADD_AS_FRIEND:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineAddFriend?Player=" + this.m_defaultHelpersPlayerId);
break;
case _global.ENUM.CONTEXTMENU_INVITE_TO_GAME:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineInvitePlayer?Player=" + this.m_defaultHelpersPlayerId);
break;
case _global.ENUM.CONTEXTMENU_WHISPER:
break;
case _global.ENUM.CONTEXTMENU_IGNORE:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineIgnorePlayer?Ignore=1|Player=" + this.m_defaultHelpersPlayerId);
break;
case _global.ENUM.CONTEXTMENU_REMOVE_FROM_FRIENDS:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineRemoveFriend?Player=" + this.m_defaultHelpersPlayerId);
break;
case _global.ENUM.CONTEXTMENU_REMOVE_FROM_IGNORE:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineIgnorePlayer?Ignore=0|Player=" + this.m_defaultHelpersPlayerId);
break;
default:
trace("*** ERROR: unknown context menu selection, id is " + id);
}
}
this.m_defaultHelpersCallback(id,this.m_defaultHelpersPlayerId);
this.m_defaultHelpersCallback = null;
this.setNotificationCallback(null);
this.hide();
}
function doDefaultPlayerContextMenu(playerId, callback)
{
this.m_defaultHelpersPlayerId = playerId;
var ret = new Object();
// Checked
loadVariables("QueryGameEngine?IsPcGameHost&IS_PLAYER_IGNORED?Player=" + playerId + "&IS_PLAYER_BUDDY?Player=" + playerId + "&GAME_HAS_OPEN_SLOTS",ret);
var isPCGameHost = Number(ret.IsPcGameHost) != 0;
var isBuddy = Number(ret.IS_PLAYER_BUDDY) != 0;
var isIgnored = Number(ret.IS_PLAYER_IGNORED) != 0;
var hasOpenSlots = Number(ret.GAME_HAS_OPEN_SLOTS) != 0;
var items = new Array("$ContextInviteToGame","$ContextWhisper",!isIgnored ? "$ContextIgnore" : "$ContextRemoveFromIgnore",!isBuddy ? "$ContextAddAsFriend" : "$ContextRemoveFromFriends");
var ids = new Array(_global.ENUM.CONTEXTMENU_INVITE_TO_GAME,_global.ENUM.CONTEXTMENU_WHISPER,!isIgnored ? _global.ENUM.CONTEXTMENU_IGNORE : _global.ENUM.CONTEXTMENU_REMOVE_FROM_IGNORE,!isBuddy ? _global.ENUM.CONTEXTMENU_ADD_AS_FRIEND : _global.ENUM.CONTEXTMENU_REMOVE_FROM_FRIENDS);
var states = new Array(!(isPCGameHost && hasOpenSlots) ? 0 : 1,1,1,1);
this.m_defaultHelpersCallback = callback;
_global.contextMenu.screen.setNotificationCallback(_global.bind1DynamicParams(this,this.onDefaultPlayerContextMenuEntrySelected));
_global.contextMenu.screen.show(items,ids,states);
}
function onDefaultPlayerContextMenuEntrySelected(id)
{
if(id != _global.ENUM.CONTEXTMENU_INVALID_SELECTION)
{
switch(id)
{
case _global.ENUM.CONTEXTMENU_ADD_AS_FRIEND:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineAddFriend?Player=" + this.m_defaultHelpersPlayerId);
break;
case _global.ENUM.CONTEXTMENU_INVITE_TO_GAME:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineInvitePlayer?Player=" + this.m_defaultHelpersPlayerId);
break;
case _global.ENUM.CONTEXTMENU_WHISPER:
break;
case _global.ENUM.CONTEXTMENU_IGNORE:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineIgnorePlayer?Ignore=1|Player=" + this.m_defaultHelpersPlayerId);
break;
case _global.ENUM.CONTEXTMENU_REMOVE_FROM_FRIENDS:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineRemoveFriend?Player=" + this.m_defaultHelpersPlayerId);
break;
case _global.ENUM.CONTEXTMENU_REMOVE_FROM_IGNORE:
// Checked
getURL("FSCommand:CallGameFunction","%OnlineIgnorePlayer?Ignore=0|Player=" + this.m_defaultHelpersPlayerId);
break;
default:
trace("*** ERROR: unknown context menu selection, id is " + id);
}
}
this.m_defaultHelpersCallback(id,this.m_defaultHelpersPlayerId);
this.m_defaultHelpersCallback = null;
this.setNotificationCallback(null);
this.hide();
}
function frameDelayedInit()
{
feg_m_contextMenu.m_screen.onEnterFrame = null;
feg_m_contextMenu.m_screen.buttonGuard.onPress = _global.bind0(this,this.onButtonGuardClicked);
feg_m_contextMenu.m_screen.contextMenu.onPress = _global.bind0(this,this.onContextMenuClicked);
this.initEntryClips(feg_m_contextMenu.MAXIMUM_ENTRY_COUNT,feg_m_contextMenu.ENTRY_HEIGHT);
this.populateMenu([""],[0],[1]);
}
function showMenu()
{
feg_m_contextMenu.m_screen.buttonGuard._visible = feg_m_contextMenu.m_screen.contextMenu._visible = true;
}
function hideMenu()
{
feg_m_contextMenu.m_screen.buttonGuard._visible = feg_m_contextMenu.m_screen.contextMenu._visible = false;
}
function initEntryClips(entryCount, entryHeight)
{
this.m_entryClips = new Array(entryCount);
var _loc5_ = feg_m_contextMenu.ENTRY_MARGIN_TOP;
var _loc4_ = 0;
while(_loc4_ < entryCount)
{
var _loc3_ = feg_m_contextMenu.m_screen.contextMenu.attachMovie("contextMenuEntrySymbol","entryClip" + String(_loc4_),feg_m_contextMenu.ATTACHMOVIE_BASE_LEVEL + _loc4_);
_loc3_._x = feg_m_contextMenu.ENTRY_MARGIN_HORIZ;
_loc3_._y = _loc5_;
_loc3_.init();
_loc3_.setSelectCallback(_global.bind1DynamicParams(this,this.onEntrySelected));
this.m_entryClips[_loc4_] = _loc3_;
_loc5_ += entryHeight;
_loc4_ = _loc4_ + 1;
}
}
function onButtonGuardClicked()
{
this.m_callback(_global.ENUM.CONTEXTMENU_INVALID_SELECTION);
this.setNotificationCallback(null);
this.hide();
}
function onContextMenuClicked()
{
}
function onEntrySelected(entry)
{
this.m_callback(entry.getId());
this.setNotificationCallback(null);
this.hide();
}
function positionMenuAtCurrentMouseLocation()
{
var _loc2_ = _global.getAbsoluteMouseLocation();
feg_m_contextMenu.m_screen.contextMenu._x = _loc2_[0];
feg_m_contextMenu.m_screen.contextMenu._y = _loc2_[1];
}
function populateMenu(items, ids, states)
{
var _loc5_ = 150;
var _loc4_ = items.length > feg_m_contextMenu.MAXIMUM_ENTRY_COUNT ? feg_m_contextMenu.MAXIMUM_ENTRY_COUNT : items.length;
var _loc2_ = 0;
while(_loc2_ < _loc4_)
{
this.m_entryClips[_loc2_].setText(items[_loc2_]);
this.m_entryClips[_loc2_].setId(ids[_loc2_]);
this.m_entryClips[_loc2_].setEnabled(Number(states[_loc2_]) != 0);
this.m_entryClips[_loc2_].adjustWidth(_loc5_);
this.m_entryClips[_loc2_]._visible = true;
_loc2_ = _loc2_ + 1;
}
var _loc3_ = _loc4_;
while(_loc3_ < feg_m_contextMenu.MAXIMUM_ENTRY_COUNT)
{
this.m_entryClips[_loc3_].setText("");
this.m_entryClips[_loc3_]._visible = false;
_loc3_ = _loc3_ + 1;
}
this.setFrameSize(_loc5_ + feg_m_contextMenu.ENTRY_MARGIN_HORIZ * 2,_loc4_ * feg_m_contextMenu.ENTRY_HEIGHT + feg_m_contextMenu.ENTRY_MARGIN_TOP + feg_m_contextMenu.ENTRY_MARGIN_BOTTOM);
}
function setFrameSize(x, y)
{
var _loc1_ = feg_m_contextMenu.m_screen.contextMenu;
_loc1_.fill._width = x;
_loc1_.fill._height = y;
_loc1_.edge_t._width = _loc1_.edge_b._width = x;
_loc1_.edge_b._y = y - _loc1_.edge_b._height;
_loc1_.edge_l._height = _loc1_.edge_r._height = y;
_loc1_.edge_r._x = x - _loc1_.edge_r._width;
}
}
@@ -0,0 +1,2 @@
stop();
var screen = new feg_m_contextMenu(this);
@@ -0,0 +1,2 @@
7;contextMenuEntrySymbol
18;__Packages.feg_m_contextMenu
1 7 contextMenuEntrySymbol
2 18 __Packages.feg_m_contextMenu