6th Unit Slot Discussion / BattleBelk's Glass Shell Builder

Started by Phobos, September 28, 2011, 09:48:37 PM

Previous topic - Next topic
September 28, 2011, 09:48:37 PM Last Edit: September 29, 2011, 03:20:35 PM by Phobos Developer
was this ever saved http://files.filefront.com/glass+shell+inprogress7z/;12196378;/fileinfo.html
or is it just a re-textured red shell builder?
you can see the same glass shell here http://www.xfire.com/profile/battlebelk/screenshots/?view#79904445
something was also changed in the shell to enable a 6th unit slot. doesn't look like he set up the LUA though.

It is a hard coded value in the EXE for 5 slots what he did was he made a Sixth button appear through poking around common.lvl scripts(Compiled LUA). both him and pysch0fred have been seen to do the same thing.

and thats not even a unit slot. its seems to be an unfinished list of "profiles"
Current Projects:
Battlefront One and a Half Era Mod, v2.0. Making great progress (SWBF)

im pretty sure the "unit slot" is from shell.lvl which controls interface.. the .exe is basically just the c++ engine which has lua on top that controls basically most of the game
itself.

but, in common.lvl there's a script. called ifs_pc_spawnselect or something similar and an ifs_charselect script. which makes me think that these are the scripts



In BF2, the unit count (max is 10. or 9 +1 hero) is hardcoded in a programming script called pcspawndisplay.h or something like that (i looked at the bf2 scripts which are available)
Current Projects:
Battlefront One and a Half Era Mod, v2.0. Making great progress (SWBF)

my thought on all of this, since i know a little bit of c++. in the swbf engine the hardcoded propertys are refrences to lua files which make it
100x easier to change then in the c++ code itself since lua is robust and dynamic, on top of that i dont think there is a hardcoded value but its
in the shell.lvl or common.lvl as youve said that there are scripts youve seen they might control what happens when the mouse entity clicks on the specific
button(spawn thing and selection on the side) if there were scripts you could add a new button on the side i guess and modify what happens when its clicked
but thatsjust my thoughts on this.

September 29, 2011, 03:16:12 PM #6 Last Edit: September 29, 2011, 03:19:45 PM by Phobos Developer
Quote from: Bamdur on September 29, 2011, 01:34:42 PM
my thought on all of this, since i know a little bit of c++. in the swbf engine the hardcoded propertys are refrences to lua files which make it
100x easier to change then in the c++ code itself since lua is robust and dynamic, on top of that i dont think there is a hardcoded value but its
in the shell.lvl or common.lvl as youve said that there are scripts youve seen they might control what happens when the mouse entity clicks on the specific
button(spawn thing and selection on the side) if there were scripts you could add a new button on the side i guess and modify what happens when its clicked
but thatsjust my thoughts on this.

I also strongly believe that there is very little which is "hard coded" in the exe. I think people like to assume things they have not figured out yet how to change are hard coded, but usually this is not the case. Ggctuk posted a decompiled list of every LUA command the executable calls upon, I will post it here.

QuoteI have yet to make certain but the executeable seems to contain all known LUA function names. Okay, here's everything I turned up out of the executeable with regards to the LUA coding in BF1. Please be aware these are mostly untested, and I think some are not even LUA, but because of the ordering of the exe they have been included between LUA codes.

SetDefeatMovie 
SetVictoryMovie
ScriptCB_SetHistoricalRulesOn   
ScriptCB_AreHistoricalRulesOn   
ScriptCB_SetAIDifficulty   
ScriptCB_SetCanSwitchSides 
ScriptCB_SetMetagameRulesOn
ScriptCB_AreMetagameRulesOn
ScriptCB_MetagameSetBonus   
ScriptCB_DeleteSavedMetagameState   
ScriptCB_SetLastBattleVictoryValid 
ScriptCB_GetLastBattleVictory   
ScriptCB_DoesMetagameExistOnCardSplitScreen
ScriptCB_GetSavedMetagameListSplitScreen   
ScriptCB_DoesMetagameExistOnCard   
ScriptCB_StartNewMetagame   
ScriptCB_GetSavedMetagameList   
ScriptCB_SetMetagameTeams   
ScriptCB_SetSPProgress 
ScriptCB_GetSPProgress 
ScriptCB_SaveSPState 
ScriptCB_IsSPStateSaved
ScriptCB_IsMetagameStateSaved   
ScriptCB_LoadMetagameState 
ScriptCB_SaveMetagameState
ScriptCB_UnlockUnlockable   
ScriptCB_UnlockableState   
GetMultisamplingModeDescription
GetNumMultisamplingQualityModes
GetMaxMultisamplingModeForScreenSize   
GetMaxScreenSizeForMultisamplingMode   
IsMultisamplingModeSupported   
IsMultisamplingModeForcedFromDriver
IsVideoModeSupported   
ScriptCB_SetProfileJoinIP   
ScriptCB_GetProfileJoinIP   
ScriptCB_IsPCVideoFixedFunction
ScriptCB_SetPCBrightnessContrast   
ScriptCB_SetPCVideoOptions 
ScriptCB_GetAutodetectPCVideoOptions   
ScriptCB_GetPCVideoOptions 
ScriptCB_GetIdealResolution
ScriptCB_SetResolution 
ScriptCB_FillMultisampleTable   
ScriptCB_FillResolutionTable   
ScriptCB_SetJoystickEnabled
ScriptCB_IsJoystickEnabled 
ScriptCB_SetMouseSensitivity   
ScriptCB_GetJoySensitivity 
ScriptCB_GetMouseSensitivity   
ScriptCB_SetMetaAllMapsOn   
ScriptCB_IsMetaAllMapsOn   
ScriptCB_GetControlMode
ScriptCB_SetControlMode
ScriptCB_ResetToolTips 
ScriptCB_PrevToolTipState   
ScriptCB_NextToolTipState   
ScriptCB_IsToolTipAuto 
ScriptCB_IsToolTipOn   
ScriptCB_SetHeroesOn   
ScriptCB_AreHeroesOn   
ScriptCB_SetFriendlyFire   
ScriptCB_GetFriendlyFire   
ScriptCB_SetAutoAimOn   
ScriptCB_IsAutoAimOn   
ScriptCB_SetRumbleOn   
ScriptCB_IsRumbleOn
ScriptCB_SetHorizontalSplitScreen   
ScriptCB_IsHorizontalSplitScreen   
ScriptCB_SetFirstPersonView
ScriptCB_IsFirstPersonView 
ScriptCB_ResetSoundToDefault   
ScriptCB_ResetGameOptionsToDefault 
ScriptCB_ResetControlsToDefault
ScriptCB_SetControlScale   
ScriptCB_GetControlScale   
ScriptCB_SetYAxisFlip   
ScriptCB_GetYAxisFlip   
ScriptCB_SetFunctionIdForAnalogId   
ScriptCB_GetFunctionIdForAnalogId   
ScriptCB_SetFunctionIdForButtonId   
ScriptCB_GetFunctionIdForButtonId   
ScriptCB_UpdateScreen   
ScriptCB_GetBuildStr   
ScriptCB_GetTeamName   
ScriptCB_PersonalStatsSetTitles
ScriptCB_TeamStatsSetTitles
ScriptCB_TeamStatsGetTeamColor 
ScriptCB_TeamStatsGetTeam1 
ScriptCB_TeamStatsValidatePos   
ScriptCB_GetAwardStats 
ScriptCB_GetPersonalStats   
ScriptCB_SetTeamStatsSortMode   
ScriptCB_GetTeamstats   
ScriptCB_ClientGotStats
ScriptCB_Freecamera
ScriptCB_GetMissionTime
ScriptCB_CheckPlayerListDone   
ScriptCB_ResetSkipToPlayerList 
ScriptCB_SkipToPlayerList   
ScriptCB_Unpause   
ScriptCB_QuitFromStats 
ScriptCB_QuitToWindows 
ScriptCB_QuitToShell   
ScriptCB_Reboot
ScriptCB_GetPausingViewport
ScriptCB_RestartMission
ScriptCB_LaunchDemo
ScriptCB_EnterMission   
ScriptCB_CheckMouseMark
ScriptCB_ResetMouseMark
ScriptCB_SetMouseMark   
ScriptCB_HideDownloadableContent   
ScriptCB_SetDCMap   
ScriptCB_GetDifficulty 
ScriptCB_SetDifficulty 
ScriptCB_SetPlayerSide 
ScriptCB_IsUniqueLoginName 
ScriptCB_GetUniqueLoginName
ScriptCB_TrimLoginName 
ScriptCB_Logout
ScriptCB_GetProfileName
ScriptCB_GetCurrentProfileName 
ScriptCB_GetCurrentProfileNetName   
ScriptCB_IsPlayerLoggedIn
ScriptCB_SwapActiveProfileSlots
ScriptCB_AddProfile
ScriptCB_GetLoginList   
ScriptCB_CheckIfOkToExitMemoryMode 
ScriptCB_SetMemoryProfileMode   
ScriptCB_InMemoryProfileMode   
ScriptCB_DoesProfileExistOnCard
ScriptCB_StartDeleteMetagameSplitScreen
ScriptCB_StartSaveMetagameSplitScreen   
ScriptCB_StartLoadMetagameSplitScreen   
ScriptCB_CheckMemoryCardMark   
ScriptCB_MarkMemoryCard
ScriptCB_StartDeleteMetagame   
ScriptCB_IsCurrentMetagame 
ScriptCB_StartSaveMetagame 
ScriptCB_StartLoadMetagame 
ScriptCB_StartSaveProfile   
ScriptCB_StartDeleteProfile
ScriptCB_ReloadMarkedProfile   
ScriptCB_MarkCurrentProfile
ScriptCB_StartLoadProfile   
ScriptCB_StartPreOp
ScriptCB_StartInitialMemcardCheck   
ScriptCB_DoInitialMemcardCheck 
ScriptCB_ShowMultipageText 
ScriptCB_IndexMultipageText
ScriptCB_DoneCheckPatch
ScriptCB_ShouldCheckPatch   
ScriptCB_SetHasSeenDNASEULA
ScriptCB_HasSeenDNASEULA   
ScriptCB_DoneCheckDNAS 
ScriptCB_ShouldCheckDNAS   
ScriptCB_LoadSavePopupResult   
ScriptCB_SetProfileNotDirty
ScriptCB_IsProfileDirty
ScriptCB_IsCurProfileDirty 
ScriptCB_ShouldShowDemoPostscreen   
ScriptCB_ShouldShowLegal   
ScriptCB_GetQuitPlayer 
ScriptCB_SetQuitPlayer 
ScriptCB_WasSplitscreen
ScriptCB_IsSplitscreen 
ScriptCB_SetSplitscreen
ScriptCB_GetAutoNetScript   
ScriptCB_SetupAutoNetIsLan 
ScriptCB_SetupAutoNetMissions   
ScriptCB_GetAutoGetPlayerCount 
ScriptCB_GetAutoNetGameName
ScriptCB_GetAutoNetIsDedicated 
ScriptCB_ReadLeftstick 
ScriptCB_GetNumControllers 
ScriptCB_SetIgnoreControllerRemoval
ScriptCB_UnbindController   
ScriptCB_ReadAllControllers
ScriptCB_SetAutoAcquireControllers 
ScriptCB_GetShellActive
ScriptCB_GetDateStr
ScriptCB_random
ScriptCB_srand 
ScriptCB_ustrupper 
ScriptCB_usprintf   
ScriptCB_getlocalizestr
ScriptCB_UnicodeStrCat 
ScriptCB_ununicode 
ScriptCB_tounicode 
ScriptCB_GetMaxMissionQueue
ScriptCB_SetMissionNames   
ScriptCB_SetTeamNames   
ScriptCB_IsLegalGamespyString   
ScriptCB_GetVKeyboardCharacter 
ScriptCB_FormatTimeString   
ScriptCB_GetLanguage   
ScriptCB_GetPlatform   
ScriptCB_DoFile Team2
Team1   
Side
Map
Attract
mode
fs_opt_pcvideo_reslistbox_contents
ifs_opt_pcvideo_fsaalistbox_contents
memslot
showstr
ifs_saveop_InitialMemcardCheckDone 
ifs_saveop_PreOpDone   
ifs_saveop_LoadProfileDone 
ifs_saveop_DeleteProfileDone   
ifs_saveop_SaveProfileDone 
ifs_saveop_LoadMetagameDone
ifs_saveop_SaveMetagameDone
ifs_saveop_DeleteMetagameDone   
isCurrent   
datestr
filename   
namestr contentsstr
labelustr   
contentsustr
ColorB 
ColorG 
ColorR 
val3str
val2str
val1str
fix MP stats   
teamstats_listbox_contentsR
teamstats_listbox_contentsL
com_icon_CIS   
com_icon_imperial   
com_icon_alliance   
com_icon_republic   
ifs_teamstats.RightModel 
ifs_teamstats.LeftModel
ifs_teamstats.RightList.Title   
ifs_teamstats.LeftList.Title
ifs_personalstats.IconModel
stats_listbox_contents   
ifs_awardstats_seticonstartside
ifs_awardstats.IconModels.%d.model
ScriptCB_EnableCursor   
ScriptCB_ResetControl   
ScriptCB_SetBinding
ScriptCB_GetKeyBoardCmds   
ScriptCB_DoConsoleCmd
ScriptCB_GetConsoleCmds
ScriptCB_IFModel_SetLighting   
ScriptCB_SetSunlight   
ScriptCB_ResetLeaderBoardPlayerData
ScriptCB_CancelLeaderBoardPlayerData   
ScriptCB_DownloadLeaderBoardData   
ScriptCB_LeaderBoardDownloadDone   
ScriptCB_GetLeaderBoardPlayerData   
ScriptCB_GetSafeScreenInfo 
ScriptCB_GetScreenInfo 
ScriptCB_GetErrorLevel 
ScriptCB_CloseErrorBox 
ScriptCB_OpenErrorBox
ScriptCB_IsPropertyPlayingNow   
ScriptCB_SetMovieAudioBus   
ScriptCB_StopMovie 
ScriptCB_AreMoviePropertiesPlaying 
ScriptCB_IsMoviePlaying
ScriptCB_PlayMovie 
ScriptCB_CloseMovie
ScriptCB_OpenMovie 
ScriptCB_SetIgnoreInputs   
ScriptCB_IsPopupOpen   
ScriptCB_IsErrorBoxOpen
ScriptCB_ClosePopup
ScriptCB_OpenPopup 
ScriptCB_PopScreen 
ScriptCB_PushScreen
ScriptCB_SetIFScreen   
ScriptCB_IFObj_SetUseSafezone   
ScriptCB_IFObj_SetScreenPosition   
ScriptCB_IFModel_SetOmegaY 
ScriptCB_IFModel_GetDepth   
ScriptCB_IFModel_SetDepth   
ScriptCB_IFModel_GetTranslation
ScriptCB_IFModel_SetTranslation
ScriptCB_IFModel_GetRotation   
ScriptCB_IFModel_SetRotation   
ScriptCB_IFModel_GetScale   
ScriptCB_IFModel_SetScale   
ScriptCB_IFModel_SetAnimation   
ScriptCB_IFModel_SetModel   
ScriptCB_IFMaskImage_GetMaskTexCoords   
ScriptCB_IFMaskImage_SetMaskTexCoords   
ScriptCB_IFMaskImage_SetMaskTexture
ScriptCB_IFImage_SetTexCoords   
ScriptCB_IFImage_GetTexCoords   
ScriptCB_IFImage_SetRect   
ScriptCB_IFImage_GetRect   
ScriptCB_IFImage_SetTexture
ScriptCB_IFFlashyText_StartFlashiness   
ScriptCB_IFFlashyText_SetBackgroundRightJustify
ScriptCB_IFFlashyText_SetBackgroundSize
ScriptCB_IFFlashyText_SetBackground
ScriptCB_IFFlashyText_SetTextColor 
ScriptCB_IFFlashyText_Setup
ScriptCB_IFText_GetLeading 
ScriptCB_IFText_SetLeading 
ScriptCB_IFText_SetTextStyle   
ScriptCB_IFText_GetDisplayRect 
ScriptCB_IFText_GetTextExtent   
ScriptCB_IFText_GetTextScaleY   
ScriptCB_IFText_GetTextScaleX
ScriptCB_IFText_SetTextScale   
ScriptCB_IFText_SetTextBreak   
ScriptCB_IFText_SetJustify 
ScriptCB_IFText_GetTextBox 
ScriptCB_IFText_SetTextBox 
ScriptCB_IFText_GetIntercharacterSpacing   
ScriptCB_IFText_SetIntercharacterSpacing   
ScriptCB_IFText_SetFont
ScriptCB_IFText_SetTextPosition
ScriptCB_IFText_SetUString 
ScriptCB_IFText_SetString   
ScriptCB_GetFontHeight 
ScriptCB_IFObj_RemoveHotSpot   
ScriptCB_IFObj_CreateHotSpot   
ScriptCB_IFObj_TestHotSpot 
ScriptCB_IFObj_MouseOver   
ScriptCB_IFObj_IsGroup 
ScriptCB_IFObj_IsEnabled   
ScriptCB_IFObj_Enable   
ScriptCB_IFObj_SendToBack
ScriptCB_IFObj_BringToFront
ScriptCB_IFObj_GetPosition 
ScriptCB_IFObj_GetWidthHeight   
ScriptCB_IFObj_GetVis   
ScriptCB_IFObj_GetZOrder   
ScriptCB_IFObj_GetColor
ScriptCB_IFObj_GetAlpha
ScriptCB_IFObj_GetPos   
ScriptCB_IFObj_SetRotation 
ScriptCB_IFObj_SetRelativeRotation 
ScriptCB_IFObj_SetBasicRotation
ScriptCB_IFObj_SetPosition 
ScriptCB_IFObj_SetWidthHeight   
ScriptCB_IFObj_SetVis   
ScriptCB_IFObj_SetZOrder   
ScriptCB_IFObj_SetColor
ScriptCB_IFObj_SetAlpha
ScriptCB_IFObj_SetPos   
ScriptCB_IFObj_GetCPointer 
ScriptCB_IsFileExist   
ScriptCB_IsPAL 
ScriptCB_EndIFScreen   
ScriptCB_SetIFScreenViewport   
ScriptCB_AddIFScreen   
ScriptCB_EndIFObj   
ScriptCB_AddIFContainer
ScriptCB_AddIFModel
ScriptCB_AddIFMaskImage
ScriptCB_AddIFImage
ScriptCB_AddIFFlashyText   
ScriptCB_AddIFText
ScriptCB_PlayerSuicide 
AddMissionObjective
SetAIVehicleNotifyRadius   
SetAIFormationRadius   
AddWalkerType   
ClearWalkers   
AddDeathRegion 
SetFishType
SetNumFishTypes
SetBirdFlockMinHeight   
SetBirdType
SetNumBirdTypes
SetMemoryPoolSize   
SetLevelModelMem   
SetEnemyTeamDifficultyHard 
SetEnemyTeamDifficultyMedium   
SetEnemyTeamDifficultyEasy 
SetEnemyTeamDifficulty 
SetPlayerTeamDifficultyHard
SetPlayerTeamDifficultyMedium   
SetPlayerTeamDifficultyEasy
SetPlayerTeamDifficulty
SetStayInTurrets   
SetDefenderSnipeRange   
SetAttackerSnipeRange   
SetDenseEnvironment
SetUrbanEnvironment
SetSpawnDelay   
SetCarrierClass AddBleedThreshold   
ActivateBonus   
SetHeroClass   
AddUnitClass   
SetReinforcementCount   
SetUnitCount    SetTeamAsFriend
SetTeamAsNeutral   
SetTeamAsEnemy 
SetTeamIcon
SetStationaryWaitTime   
SetAllowBlindJetJumps  SetMaxPlayerFlyHeight   
SetMinPlayerFlyHeight   
SetMaxFlyHeight
SetMinFlyHeight
SetTeamAggressiveness   SetTeamName
SetHistorical   
SetState   
SetCameraPosition   
SetCameraRotation   
AddCameraShot   
SetModelMemory ReadDataFileInGame 
ReadDataFile
false   
true   
EntityLight EntityDroideka  WalkerBlendUnit
WalkerBlend
WalkerLegPair   
EntityWalker   
ScriptCB_CanClientLeaveStats    ScriptCB_SetVoiceLocalEchoEnable   
ScriptCB_GetLobbyPlayerCount   
ScriptCB_ResetSkipToNTGUI   ScriptCB_GetSkipToNTGUIProfileName 
ScriptCB_SkipToNTGUI   
ScriptCB_GetFriendListIcon  ScriptCB_DoFriendAction
ScriptCB_GetFriendActions   
ScriptCB_GetFriendStateStr 
ScriptCB_UpdateFriends  ScriptCB_CancelFriends 
ScriptCB_BeginFriends   
ScriptCB_CheckForPatch 
ScriptCB_AllowSkipDNAS  ScriptCB_GetIPAddr 
ScriptCB_SetNoticeNoCable   
ScriptCB_IsNetCableIn   
ScriptCB_IsNetHWPresent ScriptCB_IsLeaveDone   
ScriptCB_CancelLeave   
ScriptCB_LaunchLeave   
ScriptCB_UpdateLeave    ScriptCB_BeginLeave
ScriptCB_IsJoinDone
ScriptCB_CancelJoin
ScriptCB_LaunchJoin
ScriptCB_UpdateJoin ScriptCB_BeginJoin 
ScriptCB_CanSupportMaxPlayers   
ScriptCB_IsBadNetworkConnection
ScriptCB_IsQuickmatchDone  ScriptCB_CancelQuickmatch   
ScriptCB_LaunchQuickmatch   
ScriptCB_UpdateQuickmatch   
ScriptCB_BeginJoinSpecial ScriptCB_BeginJoinIP   
ScriptCB_BeginQuickmatch   
ScriptCB_GetCmdlineLogin    ScriptCB_IsCmdlineJoinPending   
ScriptCB_IsSpecialJoinPending   
ScriptCB_GetDSSessionList   ScriptCB_CancelDSSessionList   
ScriptCB_LaunchDSSessionList   
ScriptCB_UpdateDSSessionList    ScriptCB_BeginDSSessionList
ScriptCB_PreviousHost   
ScriptCB_NextHost   
ScriptCB_SetSortOrder   ScriptCB_GetSortOrder   
ScriptCB_SetSessionSortMode
ScriptCB_GetSessionSortMode
ScriptCB_ApplyFilters   ScriptCB_GetExtraSessionInfo   
ScriptCB_GetSessionListPercent 
ScriptCB_IsSessionReady ScriptCB_GetSessionList
ScriptCB_PauseSessionList   
ScriptCB_CancelSessionList 
ScriptCB_LaunchSessionList  ScriptCB_UpdateSessionList 
ScriptCB_BeginSessionList   
ScriptCB_ClearPrevSessionId
ScriptCB_VoteOrNominate ScriptCB_VoteKick   
ScriptCB_LobbyAction   
ScriptCB_CancelLobby   
ScriptCB_LaunchLobby    ScriptCB_HasServerLaunched 
ScriptCB_UpdateLobby   
ScriptCB_BeginLobby
ScriptCB_TrackLoginErrors   ScriptCB_CancelLogin   
ScriptCB_StartLoginDedicatedServer 
ScriptCB_StartLogin
ScriptCB_IsLoginDone    ScriptCB_SetGSProfileInfo   
ScriptCB_GetGSProfileInfo   
ScriptCB_UpdateMPMetagame   
ScriptCB_BeginMPMetagame   ScriptCB_ClearError
ScriptCB_GetError   
ScriptCB_GetLatestError
ScriptCB_DownloadJournals   ScriptCB_EnablePlayback
ScriptCB_UploadJournals
ScriptCB_EnableJournal 
ScriptCB_GetConnectType ScriptCB_SetConnectType
ScriptCB_GetOnlineOpts 
ScriptCB_SetOnlineOpts 
ScriptCB_GetAutoAssignTeams ScriptCB_SetNetGameDefaults
ScriptCB_GetNetGameDefaults
ScriptCB_IsBootInvitePending   
ScriptCB_CloseNetShell ScriptCB_IsNetworkOn   
ScriptCB_OpenNetShell   
ScriptCB_GetAutoNetMode
ScriptCB_EndAutoNet ScriptCB_IsAutoNet 
ScriptCB_IsInShell 
ScriptCB_IsDedicated   
ScriptCB_SetDedicated   
ScriptCB_NetWasClient  ScriptCB_NetWasDedicatedQuit   
ScriptCB_NetWasDedicated   
ScriptCB_NetWasHost
ScriptCB_InNetSession   ScriptCB_InMultiplayer 
ScriptCB_SetInNetGame   
ScriptCB_InNetGame 
ScriptCB_GetLobbyPlayerFlags    ScriptCB_GetLobbyPlayerlist
ScriptCB_GetGameName   
ScriptCB_SetNumBots
ScriptCB_SetGameName    ScriptCB_SetHostLimit   
ScriptCB_GetAmHost 
ScriptCB_SetAmHost 
ScriptCB_SetNetLoginName    ScriptCB_GetOnlineService   
ScriptCB_AutoNetJoin   
friends_listbox_contents
ClearListbox   
mp_joinds_listbox_contents 
indexstr     
–Cgsfriends_listbox_layout   
StateIcon   
VoiceIcon 
launchflag 
fnFindReady
ListManager_fnMoveCursor(ifs_mp_sessionlist.listbox,mpsessionlist_listbox_layout)   
FirstShownIdx   
ifs_mp_joinds   
ScriptCB_GetVoiceEnable
ScriptCB_VoiceEnable   
ScriptCB_SoundDisable   
ScriptCB_SoundEnable   
ScriptCB_ShellPlayDelayedStream
ScriptCB_IsShellMusicPlaying   
ScriptCB_SetShellMusicInterval 
ScriptCB_SetShellMusic 
ScriptCB_PlayAuditionEffect
ScriptCB_GetBassManagement 
ScriptCB_SetBassManagement 
ScriptCB_GetMixConfigChanged   
ScriptCB_GetEAXVersion 
ScriptCB_NextMixConfig 
ScriptCB_PreviousMixConfig 
ScriptCB_GetMixConfig   
ScriptCB_NextOutputMode
ScriptCB_PreviousOutputMode
ScriptCB_GetOutputMode 
ScriptCB_HWSupport 
ScriptCB_ToggleEffects 
ScriptCB_EffectsEnabled
ScriptCB_SetVolumes
ScriptCB_GetVolumes
ScaleSoundParameter
SetOutOfBoundsVoiceOver
SetDefeatMusic 
SetVictoryMusic
SetAttackingTeam   
SetAmbientMusic
SetSoundEffect
SetLowReinforcementsVoiceOver   
ScriptCB_SetBleedingRepeatTime 
SetBleedingVoiceOver   
SetReservesVO   
SetPlanetaryBonusVoiceOver 
AudioStreamAppendSegments   
AudioStreamComplete
CloseAudioStream   
OpenAudioStream
StopAudioStream
PlayAudioStreamUsingProperties 
PlayAudioStream
ScriptCB_SndPlaySound   
ScriptCB_SndBusFadeAAdvancedTraining   
Regeneration   
Reinforcements 
SensorJam   
SneakAttack
Hero   
Sabotage   
endor   
hoth   
kamino 
geonosis   
naboo   
kashyyyk   
rhenvar
yavin   
tatooine   
bespin
bSetsBlockade   
aicontrol   
lastattack 
char   
icon   
shortname   
teamname2   
teamname   
Bonus2Votes
Bonus1Votes
SecretBaseVotes
AttackVotes
bBlockaded 
activatedthisturn   
destroyed   
pickorder   
charge 
owner2 
owner1 
mJoystickTeams 
mIsSplitscreen 
metagame_state_local   
mWonMaps3   
mWonMaps2   
mWonMaps1   
mWonMaps0   
teamsAreBackwards   
team2_charged   
team1_charged   
applyingbonus   
charge_meter_team2 
charge_meter_team1 
TimePerTurn
bSneakAttack   
pickplanet 
pickteam   
era
MaxTime
MaxTurn
CurTime
ShowedTurn1Intro   
ShowedTurn0Intro 
planets
team2   
team1   
metagame_state 
gBonus2
gBonus1
gBonusPlanet   
gAttackPlanet   
metagame_host_state
gBonus2Vote
gBonus1Vote
gBonusPlanetVote   
gAttackPlanetVote   
metagame_vote_state mEra   
classic new cw
ifs_meta_opts

You can see they are all references to compiled LUA scripts which are stored in the munged folders of common and shell LVL, and variously in other LVLs also. I think battlebelk found a way to modify these munged *.script files, thereby enabling 6th class, just like the person who uploaded the (modified?) "ifs_pausemenu.script" (which goes in munged/common) was able to enable fake console option in the main menu.

So there must be a way to modify the munged lua scripts in these files since battlebelk and someone else has done it. Decompilation might not be possible due to obfuscation, but I am not going to give up so easily by saying everything is hard-coded. BattleBelk left us many clues but unfortunately not everything he knew.

I'm sure ifs_pc_spawnselect.script has something to do with this. If we can edit ifs_pausemenu then why not ifs_pc_spawnselect?


Okay heres how it works.

shell.lvl controls: The Pre-InGame interface nothing in shell.lvl is loaded once in a battle. Shell also handles campaigns and Galatic Conquests.

common.lvl handles everything In-battle i.e the spawn script. However LUA in SWBF1 is mainly used for inerface coding few things to do with gameplay can be changed by it.

Bottom line you can get a sixth button to appear but it will not be fuctional.

Quote from: SleepKiller on September 29, 2011, 04:03:40 PM
Okay heres how it works.

shell.lvl controls: The Pre-InGame interface nothing in shell.lvl is loaded once in a battle. Shell also handles campaigns and Galatic Conquests.

common.lvl handles everything In-battle i.e the spawn script. However LUA in SWBF1 is mainly used for inerface coding few things to do with gameplay can be changed by it.

Bottom line you can get a sixth button to appear but it will not be fuctional.

Getting 6th button to appear is the first step towards making 6th units functional. Once the option to select is there, it can be changed to spawn units like the other 5 buttons.

@SleepKiller, have you managed to get a sixth button? if you can, you should test to see if a sixth unit works with that sixth button... just in case it does (i mean, i have no idea of what to do with this)
Current Projects:
Battlefront One and a Half Era Mod, v2.0. Making great progress (SWBF)

No I have not due to the fact most of my LUA expirments work from converting a SWBFII to a SWBFI LUA script. (Not as easy as you would think.) And SWBFII's Spawn Script crashes SWBFI no matter how you modify it. A work around could be to put a command at the start of a mission script telling it to read a new LUA file that rewrites the default interface for the spawn screen.( Don't know if that would work it is a possibility.)
But you see the LUA commands there are alot of them, but not one referances anything to altering the spawn screen.

Quote from: SleepKiller on September 29, 2011, 06:31:49 PM
No I have not due to the fact most of my LUA expirments work from converting a SWBFII to a SWBFI LUA script. (Not as easy as you would think.) And SWBFII's Spawn Script crashes SWBFI no matter how you modify it. A work around could be to put a command at the start of a mission script telling it to read a new LUA file that rewrites the default interface for the spawn screen.( Don't know if that would work it is a possibility.)
But you see the LUA commands there are alot of them, but not one referances anything to altering the spawn screen.

If it works for your custom shell.lvl/addon.lvl builder it would probably work for customizing common.lvl also. Good to try any possibilities because one of them might be the solution. It's too bad BattleBelk is so inactive this is the first question I would ask him: What did you do to make 6th button appear?

Quote from: SleepKiller on September 29, 2011, 06:31:49 PM
No I have not due to the fact most of my LUA expirments work from converting a SWBFII to a SWBFI LUA script. (Not as easy as you would think.) And SWBFII's Spawn Script crashes SWBFI no matter how you modify it. A work around could be to put a command at the start of a mission script telling it to read a new LUA file that rewrites the default interface for the spawn screen.( Don't know if that would work it is a possibility.)
But you see the LUA commands there are alot of them, but not one referances anything to altering the spawn screen.

You reference it at the very beginning of the script with a scriptcbdofile something or other. i do that for defining the playable sides in my mod. which makes loading faster
Current Projects:
Battlefront One and a Half Era Mod, v2.0. Making great progress (SWBF)

Quote from: jdee-barc on September 29, 2011, 08:31:33 PM
You reference it at the very beginning of the script with a scriptcbdofile something or other. i do that for defining the playable sides in my mod. which makes loading faster
i wonder if battlebelk did something similar

Yes this command ScriptCB_DoFile is used to load a script into SWBF1 memory and then execute it. So for instance if you had a whole binch of default values that did not varrie from map to map you could put them in a differant LUA file and just tell the game to load up that LUA file instead of putting the commands in the mission script.