mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 15:37:55 -05:00
import all functions from lego1 exports
This declares a bunch of classes and functions for us, as well as fixes some declarations that were slightly incorrect (e.g. missing "virtual", etc)
This commit is contained in:
parent
9520b5a7e9
commit
279d626279
27 changed files with 210 additions and 21 deletions
10
LEGO1/legobackgroundcolor.h
Executable file
10
LEGO1/legobackgroundcolor.h
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#ifndef LEGOBACKGROUNDCOLOR_H
|
||||||
|
#define LEGOBACKGROUNDCOLOR_H
|
||||||
|
|
||||||
|
class LegoBackgroundColor
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) LegoBackgroundColor(const char *, const char *);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // LEGOBACKGROUNDCOLOR_H
|
10
LEGO1/legoentity.h
Executable file
10
LEGO1/legoentity.h
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#ifndef LEGOENTITY_H
|
||||||
|
#define LEGOENTITY_H
|
||||||
|
|
||||||
|
class LegoEntity
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) virtual ~LegoEntity();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // LEGOENTITY_H
|
3
LEGO1/legogamestate.h
Normal file → Executable file
3
LEGO1/legogamestate.h
Normal file → Executable file
|
@ -4,6 +4,9 @@
|
||||||
class LegoGameState
|
class LegoGameState
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
__declspec(dllexport) LegoGameState();
|
||||||
|
__declspec(dllexport) ~LegoGameState();
|
||||||
|
__declspec(dllexport) long Load(unsigned long);
|
||||||
__declspec(dllexport) long Save(unsigned long p);
|
__declspec(dllexport) long Save(unsigned long p);
|
||||||
__declspec(dllexport) void SerializePlayersInfo(short p);
|
__declspec(dllexport) void SerializePlayersInfo(short p);
|
||||||
__declspec(dllexport) void SerializeScoreHistory(short p);
|
__declspec(dllexport) void SerializeScoreHistory(short p);
|
||||||
|
|
|
@ -15,6 +15,8 @@ class LegoInputManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
__declspec(dllexport) void QueueEvent(NotificationId id, unsigned char p2, long p3, long p4, unsigned char p5);
|
__declspec(dllexport) void QueueEvent(NotificationId id, unsigned char p2, long p3, long p4, unsigned char p5);
|
||||||
|
__declspec(dllexport) void Register(MxCore *);
|
||||||
|
__declspec(dllexport) void UnRegister(MxCore *);
|
||||||
|
|
||||||
int m_unk00[0x400];
|
int m_unk00[0x400];
|
||||||
};
|
};
|
||||||
|
|
11
LEGO1/legonavcontroller.h
Executable file
11
LEGO1/legonavcontroller.h
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#ifndef LEGONAVCONTROLLER_H
|
||||||
|
#define LEGONAVCONTROLLER_H
|
||||||
|
|
||||||
|
class LegoNavController
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) static void GetDefaults(int *,float *,float *,float *,float *,float *,float *,float *,float *,float *,unsigned char *);
|
||||||
|
__declspec(dllexport) static void SetDefaults(int,float,float,float,float,float,float,float,float,float,unsigned char);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // LEGONAVCONTROLLER_H
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include "mxbackgroundaudiomanager.h"
|
#include "mxbackgroundaudiomanager.h"
|
||||||
#include "mxdsaction.h"
|
#include "mxdsaction.h"
|
||||||
|
#include "mxdsfile.h"
|
||||||
|
#include "mxdsobject.h"
|
||||||
#include "mxomnicreateparam.h"
|
#include "mxomnicreateparam.h"
|
||||||
#include "mxresult.h"
|
#include "mxresult.h"
|
||||||
#include "mxstreamer.h"
|
#include "mxstreamer.h"
|
||||||
|
@ -11,6 +13,7 @@
|
||||||
#include "mxtransitionmanager.h"
|
#include "mxtransitionmanager.h"
|
||||||
#include "legoanimationmanager.h"
|
#include "legoanimationmanager.h"
|
||||||
#include "legobuildingmanager.h"
|
#include "legobuildingmanager.h"
|
||||||
|
#include "legoentity.h"
|
||||||
#include "legogamestate.h"
|
#include "legogamestate.h"
|
||||||
#include "legoinputmanager.h"
|
#include "legoinputmanager.h"
|
||||||
#include "legomodelpresenter.h"
|
#include "legomodelpresenter.h"
|
||||||
|
@ -19,14 +22,18 @@
|
||||||
#include "legoworldpresenter.h"
|
#include "legoworldpresenter.h"
|
||||||
#include "legovideomanager.h"
|
#include "legovideomanager.h"
|
||||||
|
|
||||||
class MxBackgroundAudioManager;
|
class LegoSoundManager;
|
||||||
|
class MxEventManager;
|
||||||
|
class MxMusicManager;
|
||||||
|
class MxNotificationManager;
|
||||||
|
class MxSoundManager;
|
||||||
|
|
||||||
class LegoOmni
|
class LegoOmni
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
__declspec(dllexport) void CreateBackgroundAudio();
|
__declspec(dllexport) void CreateBackgroundAudio();
|
||||||
__declspec(dllexport) void RemoveWorld(const MxAtomId &p1, long p2);
|
__declspec(dllexport) void RemoveWorld(const MxAtomId &p1, long p2);
|
||||||
|
__declspec(dllexport) static int GetCurrPathInfo(class LegoPathBoundary * *,int &);
|
||||||
__declspec(dllexport) static void CreateInstance();
|
__declspec(dllexport) static void CreateInstance();
|
||||||
__declspec(dllexport) static LegoOmni *GetInstance();
|
__declspec(dllexport) static LegoOmni *GetInstance();
|
||||||
|
|
||||||
|
@ -85,16 +92,28 @@ class LegoOmni
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
__declspec(dllexport) LegoOmni *Lego();
|
__declspec(dllexport) MxBackgroundAudioManager * BackgroundAudioManager();
|
||||||
__declspec(dllexport) MxBackgroundAudioManager *BackgroundAudioManager();
|
__declspec(dllexport) MxDSObject * CreateStreamObject(MxDSFile *,short);
|
||||||
__declspec(dllexport) MxTickleManager *TickleManager();
|
__declspec(dllexport) MxEventManager * EventManager();
|
||||||
__declspec(dllexport) LegoVideoManager *VideoManager();
|
__declspec(dllexport) LegoGameState * GameState();
|
||||||
__declspec(dllexport) MxVariableTable *VariableTable();
|
__declspec(dllexport) const char * GetNoCD_SourceName();
|
||||||
__declspec(dllexport) LegoGameState *GameState();
|
__declspec(dllexport) LegoInputManager * InputManager();
|
||||||
__declspec(dllexport) MxTimer *Timer();
|
__declspec(dllexport) LegoOmni * Lego();
|
||||||
__declspec(dllexport) MxStreamer *Streamer();
|
__declspec(dllexport) MxSoundManager * MSoundManager();
|
||||||
__declspec(dllexport) LegoInputManager *InputManager();
|
__declspec(dllexport) void MakeSourceName(char *, const char *);
|
||||||
__declspec(dllexport) MxTransitionManager *TransitionManager();
|
__declspec(dllexport) MxMusicManager * MusicManager();
|
||||||
|
__declspec(dllexport) MxNotificationManager * NotificationManager();
|
||||||
|
__declspec(dllexport) LegoEntity * PickEntity(long,long);
|
||||||
|
__declspec(dllexport) LegoROI * PickROI(long,long);
|
||||||
|
__declspec(dllexport) void SetOmniUserMessage(void (*)(const char *,int));
|
||||||
|
__declspec(dllexport) LegoSoundManager * SoundManager();
|
||||||
|
__declspec(dllexport) long Start(MxDSAction *);
|
||||||
|
__declspec(dllexport) MxStreamer * Streamer();
|
||||||
|
__declspec(dllexport) MxTickleManager * TickleManager();
|
||||||
|
__declspec(dllexport) MxTimer * Timer();
|
||||||
|
__declspec(dllexport) MxTransitionManager * TransitionManager();
|
||||||
|
__declspec(dllexport) MxVariableTable * VariableTable();
|
||||||
|
__declspec(dllexport) LegoVideoManager * VideoManager();
|
||||||
|
|
||||||
__declspec(dllexport) long Start(MxDSAction *a);
|
__declspec(dllexport) long Start(MxDSAction *a);
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
class LegoROI
|
class LegoROI
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
__declspec(dllexport) void SetDisplayBB(int);
|
||||||
__declspec(dllexport) static void configureLegoROI(int param_1);
|
__declspec(dllexport) static void configureLegoROI(int param_1);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
11
LEGO1/legoworld.h
Executable file
11
LEGO1/legoworld.h
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#ifndef LEGOWORLD_H
|
||||||
|
#define LEGOWORLD_H
|
||||||
|
|
||||||
|
class LegoWorld
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) LegoWorld();
|
||||||
|
__declspec(dllexport) virtual ~LegoWorld();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // LEGOWORLD_H
|
|
@ -1,9 +1,12 @@
|
||||||
#ifndef MXATOMID_H
|
#ifndef MXATOMID_H
|
||||||
#define MXATOMID_H
|
#define MXATOMID_H
|
||||||
|
|
||||||
|
enum LookupMode;
|
||||||
|
|
||||||
class MxAtomId
|
class MxAtomId
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
__declspec(dllexport) MxAtomId(const char *, LookupMode);
|
||||||
__declspec(dllexport) MxAtomId &operator=(const MxAtomId &id);
|
__declspec(dllexport) MxAtomId &operator=(const MxAtomId &id);
|
||||||
__declspec(dllexport) ~MxAtomId();
|
__declspec(dllexport) ~MxAtomId();
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
class MxBitmap
|
class MxBitmap
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
__declspec(dllexport) MxPalette *CreatePalette();
|
__declspec(dllexport) MxBitmap();
|
||||||
|
__declspec(dllexport) virtual ~MxBitmap();
|
||||||
|
__declspec(dllexport) virtual MxPalette *CreatePalette();
|
||||||
|
__declspec(dllexport) virtual long Read(const char *);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXBITMAP_H
|
#endif // MXBITMAP_H
|
||||||
|
|
12
LEGO1/mxcriticalsection.h
Executable file
12
LEGO1/mxcriticalsection.h
Executable file
|
@ -0,0 +1,12 @@
|
||||||
|
#ifndef MXCRITICALSECTION_H
|
||||||
|
#define MXCRITICALSECTION_H
|
||||||
|
|
||||||
|
class MxCriticalSection
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) MxCriticalSection();
|
||||||
|
__declspec(dllexport) ~MxCriticalSection();
|
||||||
|
__declspec(dllexport) static void SetDoMutex();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MXCRITICALSECTION_H
|
|
@ -4,7 +4,9 @@
|
||||||
class MxDirectDraw
|
class MxDirectDraw
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
__declspec(dllexport) int FlipToGDISurface();
|
||||||
__declspec(dllexport) static int GetPrimaryBitDepth();
|
__declspec(dllexport) static int GetPrimaryBitDepth();
|
||||||
|
__declspec(dllexport) int Pause(int);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXDIRECTDRAW_H
|
#endif // MXDIRECTDRAW_H
|
||||||
|
|
|
@ -7,8 +7,8 @@ class MxDSAction
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
__declspec(dllexport) MxDSAction();
|
__declspec(dllexport) MxDSAction();
|
||||||
|
__declspec(dllexport) virtual ~MxDSAction();
|
||||||
|
|
||||||
int m_unk00;
|
|
||||||
int m_unk04;
|
int m_unk04;
|
||||||
int m_unk08;
|
int m_unk08;
|
||||||
int m_unk0c;
|
int m_unk0c;
|
||||||
|
|
9
LEGO1/mxdsfile.h
Normal file → Executable file
9
LEGO1/mxdsfile.h
Normal file → Executable file
|
@ -4,7 +4,14 @@
|
||||||
class MxDSFile
|
class MxDSFile
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
__declspec(dllexport) long Close();
|
__declspec(dllexport) MxDSFile(const char *,unsigned long);
|
||||||
|
__declspec(dllexport) virtual ~MxDSFile();
|
||||||
|
__declspec(dllexport) virtual long Close();
|
||||||
|
__declspec(dllexport) virtual unsigned long GetBufferSize();
|
||||||
|
__declspec(dllexport) virtual unsigned long GetStreamBuffersNum();
|
||||||
|
__declspec(dllexport) virtual long Open(unsigned long);
|
||||||
|
__declspec(dllexport) virtual long Read(unsigned char *,unsigned long);
|
||||||
|
__declspec(dllexport) virtual long Seek(long,int);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXDSFILE_H
|
#endif // MXDSFILE_H
|
||||||
|
|
10
LEGO1/mxdsobject.h
Executable file
10
LEGO1/mxdsobject.h
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#ifndef MXDSOBJECT_H
|
||||||
|
#define MXDSOBJECT_H
|
||||||
|
|
||||||
|
class MxDSObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) void SetObjectName(const char *);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MXDSOBJECT_H
|
10
LEGO1/mxioinfo.h
Executable file
10
LEGO1/mxioinfo.h
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#ifndef MXIOINFO_H
|
||||||
|
#define MXIOINFO_H
|
||||||
|
|
||||||
|
class MXIOINFO
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) ~MXIOINFO();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MXIOINFO_H
|
12
LEGO1/mxomni.h
Normal file → Executable file
12
LEGO1/mxomni.h
Normal file → Executable file
|
@ -4,12 +4,14 @@
|
||||||
class MxOmni
|
class MxOmni
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
__declspec(dllexport) static const char *GetHD();
|
|
||||||
__declspec(dllexport) static const char *GetCD();
|
|
||||||
__declspec(dllexport) static void SetHD(const char *s);
|
|
||||||
__declspec(dllexport) static void SetCD(const char *s);
|
|
||||||
__declspec(dllexport) static void SetSound3D(unsigned char param_1);
|
|
||||||
__declspec(dllexport) static void DestroyInstance();
|
__declspec(dllexport) static void DestroyInstance();
|
||||||
|
__declspec(dllexport) static const char * GetCD();
|
||||||
|
__declspec(dllexport) static const char * GetHD();
|
||||||
|
__declspec(dllexport) static MxOmni * GetInstance();
|
||||||
|
__declspec(dllexport) static unsigned char IsSound3D();
|
||||||
|
__declspec(dllexport) static void SetCD(const char *s);
|
||||||
|
__declspec(dllexport) static void SetHD(const char *s);
|
||||||
|
__declspec(dllexport) static void SetSound3D(unsigned char);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXOMNI_H
|
#endif // MXOMNI_H
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
class MxPalette
|
class MxPalette
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
__declspec(dllexport) unsigned char operator==(MxPalette &);
|
||||||
|
__declspec(dllexport) void Detach();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXPALETTE_H
|
#endif // MXPALETTE_H
|
||||||
|
|
18
LEGO1/mxpresenter.h
Executable file
18
LEGO1/mxpresenter.h
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
#ifndef MXPRESENTER_H
|
||||||
|
#define MXPRESENTER_H
|
||||||
|
|
||||||
|
class MxPresenter
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
__declspec(dllexport) virtual void DoneTickle();
|
||||||
|
__declspec(dllexport) void Init();
|
||||||
|
__declspec(dllexport) virtual void ParseExtra();
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) virtual ~MxPresenter();
|
||||||
|
__declspec(dllexport) virtual void Enable(unsigned char);
|
||||||
|
__declspec(dllexport) virtual void EndAction();
|
||||||
|
__declspec(dllexport) virtual long StartAction(MxStreamController *, MxDSAction *);
|
||||||
|
__declspec(dllexport) virtual long Tickle();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MXPRESENTER_H
|
11
LEGO1/mxscheduler.h
Executable file
11
LEGO1/mxscheduler.h
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#ifndef MXSCHEDULER_H
|
||||||
|
#define MXSCHEDULER_H
|
||||||
|
|
||||||
|
class MxScheduler
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) static MxScheduler *GetInstance();
|
||||||
|
__declspec(dllexport) void StartMultiTasking(unsigned long);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MXSCHEDULER_H
|
|
@ -6,7 +6,9 @@
|
||||||
class MxString : public MxCore
|
class MxString : public MxCore
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
__declspec(dllexport) MxString(const MxString &);
|
||||||
__declspec(dllexport) virtual ~MxString();
|
__declspec(dllexport) virtual ~MxString();
|
||||||
|
__declspec(dllexport) const MxString &operator=(const char *);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
char *m_data;
|
char *m_data;
|
||||||
|
|
|
@ -6,7 +6,7 @@ class MxVideoPresenter;
|
||||||
class MxTransitionManager
|
class MxTransitionManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void SetWaitIndicator(MxVideoPresenter *videoPresenter);
|
__declspec(dllexport) void SetWaitIndicator(MxVideoPresenter *videoPresenter);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXTRANSITIONMANAGER_H
|
#endif // MXTRANSITIONMANAGER_H
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
#ifndef MXVARIABLETABLE_H
|
#ifndef MXVARIABLETABLE_H
|
||||||
#define MXVARIABLETABLE_H
|
#define MXVARIABLETABLE_H
|
||||||
|
|
||||||
|
class MxVariable;
|
||||||
|
|
||||||
class MxVariableTable
|
class MxVariableTable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
__declspec(dllexport) const char * GetVariable(const char *key);
|
||||||
|
__declspec(dllexport) void SetVariable(MxVariable *var);
|
||||||
__declspec(dllexport) void SetVariable(const char *key, const char *value);
|
__declspec(dllexport) void SetVariable(const char *key, const char *value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
11
LEGO1/mxvideomanager.h
Executable file
11
LEGO1/mxvideomanager.h
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#ifndef MXVIDEOMANAGER_H
|
||||||
|
#define MXVIDEOMANAGER_H
|
||||||
|
|
||||||
|
class MxVideoManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) void InvalidateRect(MxRect32 &);
|
||||||
|
__declspec(dllexport) virtual long RealizePalette(MxPalette *);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MXVIDEOMANAGER_H
|
|
@ -10,7 +10,9 @@ class MxVideoParam
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
__declspec(dllexport) MxVideoParam();
|
__declspec(dllexport) MxVideoParam();
|
||||||
|
__declspec(dllexport) MxVideoParam(MxVideoParam &);
|
||||||
__declspec(dllexport) MxVideoParam(MxRect32 &rect, MxPalette *pal, unsigned long p3, MxVideoParamFlags &flags);
|
__declspec(dllexport) MxVideoParam(MxRect32 &rect, MxPalette *pal, unsigned long p3, MxVideoParamFlags &flags);
|
||||||
|
__declspec(dllexport) MxVideoParam &operator=(const MxVideoParam &);
|
||||||
__declspec(dllexport) ~MxVideoParam();
|
__declspec(dllexport) ~MxVideoParam();
|
||||||
|
|
||||||
__declspec(dllexport) void SetDeviceName(char *id);
|
__declspec(dllexport) void SetDeviceName(char *id);
|
||||||
|
|
13
LEGO1/realtimeview.h
Executable file
13
LEGO1/realtimeview.h
Executable file
|
@ -0,0 +1,13 @@
|
||||||
|
#ifndef REALTIMEVIEW_H
|
||||||
|
#define REALTIMEVIEW_H
|
||||||
|
|
||||||
|
class RealtimeView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) static float GetPartsThreshold();
|
||||||
|
__declspec(dllexport) static float GetUserMaxLOD();
|
||||||
|
__declspec(dllexport) static void SetPartsThreshold(float);
|
||||||
|
__declspec(dllexport) static void SetUserMaxLOD(float);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // REALTIMEVIEW_H
|
10
LEGO1/viewmanager.h
Executable file
10
LEGO1/viewmanager.h
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#ifndef VIEWMANAGER_H
|
||||||
|
#define VIEWMANAGER_H
|
||||||
|
|
||||||
|
class ViewManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
__declspec(dllexport) void RemoveAll(ViewROI *);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // VIEWMANAGER_H
|
Loading…
Reference in a new issue