feat(battle-engine): clear header frontier (Item/ErrorDialog/SDK shims + infra copies)
Resolves the 268-error header frontier: settings Item base, ErrorDialog.Data, RoomConnectController nested types, Unity asset/light/collider types, CriWare/ CodeStage/Spine SDK surface, and copies INetworkLogger + SingletonMonoBehaviour verbatim. Per F3 this unmasks the type bodies (~26.5k member-level errors now visible) -- the real M1 bulk, attacked in following waves.
This commit is contained in:
50
SVSim.BattleEngine/Shim/External/SdkStubs.cs
vendored
Normal file
50
SVSim.BattleEngine/Shim/External/SdkStubs.cs
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
// AUTHORED SHIM (not copied). Third-party SDK surface swept into the copy closure by
|
||||
// non-battle files (audio/movie/anti-cheat/analytics/spine). None is on the battle-
|
||||
// resolution path. Namespaces must merely exist (anchors); the few types referenced
|
||||
// by member get a minimal no-op surface. Members grow only as the compile loop demands.
|
||||
|
||||
// ---- CriWare audio + movie ----
|
||||
namespace CriWare
|
||||
{
|
||||
public class CriAtomExAcb { }
|
||||
public class CriAtomExPlayback { }
|
||||
internal class _ShimAnchor { }
|
||||
}
|
||||
namespace CriWare.CriMana
|
||||
{
|
||||
public class CriManaMovieMaterial
|
||||
{
|
||||
public enum MaxFrameDrop { Disable, One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten }
|
||||
}
|
||||
internal class _ShimAnchor { }
|
||||
}
|
||||
|
||||
// ---- CodeStage anti-cheat obscured prefs (static k/v facade; no persistence headless) ----
|
||||
namespace CodeStage.AntiCheat.ObscuredTypes
|
||||
{
|
||||
public static class ObscuredPrefs
|
||||
{
|
||||
public static bool HasKey(string key) => false;
|
||||
public static void DeleteKey(string key) { }
|
||||
public static void DeleteAll() { }
|
||||
public static void Save() { }
|
||||
public static int GetInt(string key, int defaultValue = 0) => defaultValue;
|
||||
public static float GetFloat(string key, float defaultValue = 0f) => defaultValue;
|
||||
public static string GetString(string key, string defaultValue = "") => defaultValue;
|
||||
public static void SetInt(string key, int value) { }
|
||||
public static void SetFloat(string key, float value) { }
|
||||
public static void SetString(string key, string value) { }
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Spine animation ----
|
||||
namespace Spine { public class Bone { } internal class _ShimAnchor { } }
|
||||
namespace Spine.Unity { public class SkeletonMecanim { } internal class _ShimAnchor { } }
|
||||
|
||||
// ---- misc third-party namespaces (anchors) ----
|
||||
namespace RedShellUnity { internal class _ShimAnchor { } }
|
||||
namespace PlatformSupport.Collections.ObjectModel { internal class _ShimAnchor { } }
|
||||
namespace Convention { internal class _ShimAnchor { } }
|
||||
namespace com.adjust.sdk { internal class _ShimAnchor { } }
|
||||
namespace BestHTTP.Decompression { internal class _ShimAnchor { } }
|
||||
namespace BestHTTP.SocketIO.Transports { internal class _ShimAnchor { } }
|
||||
68
SVSim.BattleEngine/Shim/UnityEngine/UnityShim2.cs
Normal file
68
SVSim.BattleEngine/Shim/UnityEngine/UnityShim2.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
// AUTHORED SHIM (not copied). Second UnityEngine batch surfaced by the M1 compile
|
||||
// loop (wave after the 2,570-file copy closure). Same rules as UnityShim.cs: no-op
|
||||
// presentation/IO surface; add only what the compiler demands. Asset/light/collider
|
||||
// types are referenced only as field/parameter types or via suppressed-IO calls.
|
||||
using System;
|
||||
|
||||
namespace UnityEngine
|
||||
{
|
||||
public class TextAsset : Object
|
||||
{
|
||||
public string text => "";
|
||||
public byte[] bytes => new byte[0];
|
||||
}
|
||||
|
||||
public class AsyncOperation
|
||||
{
|
||||
public bool isDone => true;
|
||||
public float progress => 1f;
|
||||
public int priority { get; set; }
|
||||
public bool allowSceneActivation { get; set; }
|
||||
}
|
||||
|
||||
public class AssetBundle : Object
|
||||
{
|
||||
public static AssetBundle LoadFromFile(string path) => null;
|
||||
public static AssetBundleCreateRequest LoadFromFileAsync(string path) => null;
|
||||
public string[] GetAllAssetNames() => new string[0];
|
||||
public T LoadAsset<T>(string name) where T : Object => null;
|
||||
public Object LoadAsset(string name) => null;
|
||||
public Object[] LoadAllAssets() => new Object[0];
|
||||
public AssetBundleRequest LoadAllAssetsAsync() => null;
|
||||
public void Unload(bool unloadAllLoadedObjects) { }
|
||||
}
|
||||
|
||||
public class AssetBundleCreateRequest : AsyncOperation { public AssetBundle assetBundle => null; }
|
||||
public class AssetBundleRequest : AsyncOperation { public Object asset => null; public Object[] allAssets => new Object[0]; }
|
||||
|
||||
public class Collider2D : Component { public bool enabled { get; set; } }
|
||||
public class BoxCollider2D : Collider2D { }
|
||||
public class Light : Behaviour { }
|
||||
public class AudioListener : Behaviour { }
|
||||
|
||||
public enum RenderTextureFormat { ARGB32, Depth, ARGBHalf, ARGB64, Default }
|
||||
|
||||
public enum RuntimeInitializeLoadType
|
||||
{
|
||||
AfterSceneLoad, BeforeSceneLoad, AfterAssembliesLoaded,
|
||||
BeforeSplashScreen, SubsystemRegistration
|
||||
}
|
||||
|
||||
public sealed class RuntimeInitializeOnLoadMethodAttribute : Attribute
|
||||
{
|
||||
public RuntimeInitializeOnLoadMethodAttribute() { }
|
||||
public RuntimeInitializeOnLoadMethodAttribute(RuntimeInitializeLoadType loadType) { }
|
||||
}
|
||||
}
|
||||
|
||||
// Sub-namespace anchors (referenced via `using`; types unmask in later waves if used).
|
||||
namespace UnityEngine.Experimental { internal class _ShimAnchor { } }
|
||||
namespace UnityEngine.Experimental.Rendering { internal class _ShimAnchor { } }
|
||||
namespace UnityEngine.SceneManagement { internal class _ShimAnchor { } }
|
||||
namespace UnityEngine.SocialPlatforms
|
||||
{
|
||||
// NOTE: no IAchievementCallback here -- the engine's AchievementImpl uses
|
||||
// Cute.IAchievementCallback; adding one here makes the unqualified name ambiguous.
|
||||
public interface IAchievement { }
|
||||
public interface IAchievementDescription { }
|
||||
}
|
||||
122
SVSim.BattleEngine/Shim/View/SettingsUiStubs.cs
Normal file
122
SVSim.BattleEngine/Shim/View/SettingsUiStubs.cs
Normal file
@@ -0,0 +1,122 @@
|
||||
// AUTHORED SHIM (not copied). Non-battle game types (settings widgets, error-dialog
|
||||
// data, login-bonus, deck-builder, story chapter-selection, room-match, socket.io)
|
||||
// swept into the copy closure but never driven headless. Stubbed in their ORIGINAL
|
||||
// namespaces so the copied engine resolves their type references. Enums are replicated
|
||||
// VERBATIM from decomp (integer values can be cast); classes are empty until the loop
|
||||
// demands a member.
|
||||
using UnityEngine;
|
||||
|
||||
namespace Wizard.Dialog.Setting
|
||||
{
|
||||
// Real base of ItemButton/ItemToggle/... (copied). Abstract methods the copied
|
||||
// subclasses override -- without this base they fall back to the unrelated
|
||||
// Wizard.Item data class and CS0115 ("no method to override").
|
||||
public abstract class Item : MonoBehaviour
|
||||
{
|
||||
public abstract void AddChangeCallback(EventDelegate.Callback callback);
|
||||
public abstract void SetActive_SeparatorLine(bool isActive);
|
||||
}
|
||||
}
|
||||
|
||||
namespace Wizard.ErrorDialog
|
||||
{
|
||||
// Real Wizard.ErrorDialog.Data; without it Dialog.cs's unqualified `Data` falls
|
||||
// back to the static Wizard.Data god-object (CS0718/0722/0723 + missing ButtonType).
|
||||
public class Data
|
||||
{
|
||||
public enum ContactDisplayType { _NONE_, 表示, MAX }
|
||||
public enum ButtonType { _NONE_, OK, リトライ, タイトルへ戻る, ホームへ戻る, アプリ終了, バージョンアップ, 推奨端末一覧, MAX }
|
||||
|
||||
public string TitleId { get; private set; }
|
||||
public string BodyId { get; private set; }
|
||||
public bool IsDisplayContact { get; private set; }
|
||||
public ButtonType MainButton { get; private set; }
|
||||
public ButtonType SubButton { get; private set; }
|
||||
public int PanelDepth { get; private set; }
|
||||
|
||||
public Data(string id, string titleId, string bodyId, string contactDisplay,
|
||||
string mainButton, string subButton, string panelDepth) { }
|
||||
}
|
||||
}
|
||||
|
||||
namespace Wizard.Battle.UI
|
||||
{
|
||||
public enum CantAttackType { Null, All, Class, NotHasGuard, Unit, Max }
|
||||
}
|
||||
|
||||
namespace Wizard.Battle.View
|
||||
{
|
||||
public abstract class ClassBattleCardViewBase { }
|
||||
public class NullBattleCardView { }
|
||||
}
|
||||
|
||||
namespace Wizard.Battle.View.Vfx
|
||||
{
|
||||
// Base of the copied PuzzleBattleManager.PuzzleOpeningVfx (ctor + abstract override).
|
||||
public abstract class OpeningVfx : SequentialVfxPlayer
|
||||
{
|
||||
protected OpeningVfx(BackGroundBase backGround) { }
|
||||
public abstract void RegisterOpeningVfx(ClassBattleCardBase playerClass, ClassBattleCardBase enemyClass);
|
||||
}
|
||||
}
|
||||
|
||||
namespace AnimationOrTween
|
||||
{
|
||||
public enum DisableCondition { DisableAfterReverse = -1, DoNotDisable, DisableAfterForward }
|
||||
public enum EnableCondition { DoNothing, EnableThenPlay, IgnoreDisabledState }
|
||||
}
|
||||
|
||||
namespace Wizard.UI.LoginBonus
|
||||
{
|
||||
public class ContinuousData { }
|
||||
public class NormalData { }
|
||||
public class SpecialData { }
|
||||
public class FreeCardPackBoxData { }
|
||||
}
|
||||
|
||||
namespace DeckBuilder
|
||||
{
|
||||
public class GenerateDeckCode { }
|
||||
public class GetDeckDataFromCode { }
|
||||
}
|
||||
|
||||
namespace Wizard.Story.ChapterSelection.SelectionProcessing.BattleResult
|
||||
{
|
||||
public interface IProcessing { }
|
||||
public class Parameter { }
|
||||
}
|
||||
|
||||
namespace Wizard.RoomMatch
|
||||
{
|
||||
public class PlayerControllerForWatching { }
|
||||
public class RoomRuleSetting { }
|
||||
}
|
||||
|
||||
namespace Cute
|
||||
{
|
||||
public class SceneManager { }
|
||||
}
|
||||
|
||||
namespace Wizard.Story
|
||||
{
|
||||
public enum StoryApiType { None, MainStory, LimitedStory, EventStory }
|
||||
public class SelectedStoryInfo { }
|
||||
public sealed class StoryWorldDataManager { }
|
||||
}
|
||||
|
||||
namespace BestHTTP.SocketIO
|
||||
{
|
||||
public sealed class Packet { }
|
||||
public sealed class Socket { }
|
||||
public sealed class SocketManager
|
||||
{
|
||||
// Connection state enum the network agent polls (Initial/Open referenced).
|
||||
public enum States { Initial, Opening, Open, Paused, Reconnecting, Closed }
|
||||
}
|
||||
}
|
||||
|
||||
// ---- namespace anchors (referenced via `using`/qualified path; no type used yet) ----
|
||||
namespace Wizard.Scripts.Network.Task { internal class _ShimAnchor { } }
|
||||
namespace Wizard.Scripts.Network.Task.Arena { internal class _ShimAnchor { } }
|
||||
namespace Wizard.Scripts.Network.Task.Arena.TwoPick { internal class _ShimAnchor { } }
|
||||
namespace BestHTTP.Decompression.Zlib { internal class _ShimAnchor { } }
|
||||
@@ -67,6 +67,8 @@ namespace Wizard.RoomMatch
|
||||
public class RoomConnectController
|
||||
{
|
||||
public enum BattleRule { None, Bo1 }
|
||||
public enum PositionMode { OWNER, VISITOR, WATCHER }
|
||||
public class InitializeParameter { }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user