the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2class Mob;
3class Options;
4using namespace std;
5#include "..\..\Minecraft.World\SoundTypes.h"
6
7enum eMUSICFILES
8{
9 eStream_Overworld_Calm1 = 0,
10 eStream_Overworld_Calm2,
11 eStream_Overworld_Calm3,
12 eStream_Overworld_hal1,
13 eStream_Overworld_hal2,
14 eStream_Overworld_hal3,
15 eStream_Overworld_hal4,
16 eStream_Overworld_nuance1,
17 eStream_Overworld_nuance2,
18#ifndef _XBOX
19 // Add the new music tracks
20 eStream_Overworld_Creative1,
21 eStream_Overworld_Creative2,
22 eStream_Overworld_Creative3,
23 eStream_Overworld_Creative4,
24 eStream_Overworld_Creative5,
25 eStream_Overworld_Creative6,
26 eStream_Overworld_Menu1,
27 eStream_Overworld_Menu2,
28 eStream_Overworld_Menu3,
29 eStream_Overworld_Menu4,
30#endif
31 eStream_Overworld_piano1,
32 eStream_Overworld_piano2,
33 eStream_Overworld_piano3, // <-- make piano3 the last overworld one
34 // Nether
35 eStream_Nether1,
36 eStream_Nether2,
37 eStream_Nether3,
38 eStream_Nether4,
39 // The End
40 eStream_end_dragon,
41 eStream_end_end,
42 eStream_CD_1,
43 eStream_CD_2,
44 eStream_CD_3,
45 eStream_CD_4,
46 eStream_CD_5,
47 eStream_CD_6,
48 eStream_CD_7,
49 eStream_CD_8,
50 eStream_CD_9,
51 eStream_CD_10,
52 eStream_CD_11,
53 eStream_CD_12,
54 eStream_Max,
55};
56
57enum eMUSICTYPE
58{
59 eMusicType_None,
60 eMusicType_Game,
61 eMusicType_CD,
62};
63
64
65enum MUSIC_STREAMSTATE
66{
67 eMusicStreamState_Idle=0,
68 eMusicStreamState_Stop,
69 eMusicStreamState_Stopping,
70 eMusicStreamState_Opening,
71 eMusicStreamState_OpeningCancel,
72 eMusicStreamState_Play,
73 eMusicStreamState_Playing,
74 eMusicStreamState_Completed
75};
76
77typedef struct
78{
79 F32 x,y,z,volume,pitch;
80 int iSound;
81 bool bIs3D;
82 bool bUseSoundsPitchVal;
83#ifdef _DEBUG
84 char chName[64];
85#endif
86}
87AUDIO_INFO;
88
89class SoundEngine : public ConsoleSoundEngine
90{
91 static const int MAX_SAME_SOUNDS_PLAYING = 8; // 4J added
92public:
93 SoundEngine();
94 virtual void destroy();
95#ifdef _DEBUG
96 void GetSoundName(char *szSoundName,int iSound);
97#endif
98 virtual void play(int iSound, float x, float y, float z, float volume, float pitch);
99 virtual void playStreaming(const wstring& name, float x, float y , float z, float volume, float pitch, bool bMusicDelay=true);
100 virtual void playUI(int iSound, float volume, float pitch);
101 virtual void playMusicTick();
102 virtual void updateMusicVolume(float fVal);
103 virtual void updateSystemMusicPlaying(bool isPlaying);
104 virtual void updateSoundEffectVolume(float fVal);
105 virtual void init(Options *);
106 virtual void tick(shared_ptr<Mob> *players, float a); // 4J - updated to take array of local players rather than single one
107 virtual void add(const wstring& name, File *file);
108 virtual void addMusic(const wstring& name, File *file);
109 virtual void addStreaming(const wstring& name, File *file);
110 virtual char *ConvertSoundPathToName(const wstring& name, bool bConvertSpaces=false);
111 bool isStreamingWavebankReady(); // 4J Added
112 int getMusicID(int iDomain);
113 int getMusicID(const wstring& name);
114 void SetStreamingSounds(int iOverworldMin, int iOverWorldMax, int iNetherMin, int iNetherMax, int iEndMin, int iEndMax, int iCD1);
115 void updateMiles(); // AP added so Vita can update all the Miles functions during the mixer callback
116 void playMusicUpdate();
117
118private:
119 float getMasterMusicVolume();
120 // platform specific functions
121#ifdef __PS3__
122 int initAudioHardware(int iMinSpeakers);
123#else
124 int initAudioHardware(int iMinSpeakers) { return iMinSpeakers;}
125#endif
126
127 int GetRandomishTrack(int iStart,int iEnd);
128
129 HMSOUNDBANK m_hBank;
130 HDIGDRIVER m_hDriver;
131 HSTREAM m_hStream;
132
133 static char m_szSoundPath[];
134 static char m_szMusicPath[];
135 static char m_szRedistName[];
136 static char *m_szStreamFileA[eStream_Max];
137
138 AUDIO_LISTENER m_ListenerA[MAX_LOCAL_PLAYERS];
139 int m_validListenerCount;
140
141
142 Random *random;
143 int m_musicID;
144 int m_iMusicDelay;
145 int m_StreamState;
146 int m_MusicType;
147 AUDIO_INFO m_StreamingAudioInfo;
148 wstring m_CDMusic;
149 BOOL m_bSystemMusicPlaying;
150 float m_MasterMusicVolume;
151 float m_MasterEffectsVolume;
152
153 C4JThread *m_openStreamThread;
154 static int OpenStreamThreadProc( void* lpParameter );
155 char m_szStreamName[255];
156 int CurrentSoundsPlaying[eSoundType_MAX+eSFX_MAX];
157
158 // streaming music files - will be different for mash-up packs
159 int m_iStream_Overworld_Min,m_iStream_Overworld_Max;
160 int m_iStream_Nether_Min,m_iStream_Nether_Max;
161 int m_iStream_End_Min,m_iStream_End_Max;
162 int m_iStream_CD_1;
163 bool *m_bHeardTrackA;
164
165#ifdef __ORBIS__
166 int32_t m_hBGMAudio;
167#endif
168};