Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
04dcde9939 | ||
|
|
2b051aa038 | ||
|
|
51ee0d8e57 | ||
|
|
9ef66ed71b | ||
|
|
b6e2886476 | ||
|
|
69541f1abf | ||
|
|
09cedad533 | ||
|
|
59b9fec5c2 | ||
|
|
6625df6c3e | ||
|
|
e0ed220c69 | ||
|
|
cba1f9ea3b | ||
|
|
79bfa4eb56 | ||
|
|
12f7125335 |
@@ -0,0 +1,106 @@
|
||||
name: Build & Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: 'Version tag for release (e.g. v1.0.0).'
|
||||
required: true
|
||||
default: ''
|
||||
notes:
|
||||
description: 'URL to notes for release.'
|
||||
required: false
|
||||
default: ''
|
||||
|
||||
jobs:
|
||||
validate:
|
||||
runs-on: windows-2022
|
||||
steps:
|
||||
- name: Validate version format
|
||||
run: |
|
||||
if (-not ("${{ inputs.version }}" -match '^v\d+\.\d+\.\d+[a-zA-Z0-9.-]*$')) {
|
||||
Write-Error "Version '${{ inputs.version }}' doesn't match expected format (e.g. v1.0.0)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
build:
|
||||
runs-on: windows-2022
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
configuration: [Release]
|
||||
platform: [PS3, Windows64] #[PS3, PSVita, Xbox 360, ORBIS, Windows64]
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: https://github.com/actions/checkout@v4
|
||||
|
||||
- name: Build Cafeberry
|
||||
run: |
|
||||
& "C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" MinecraftConsoles.sln `
|
||||
/p:Configuration=${{ matrix.configuration }} `
|
||||
/p:Platform=${{ matrix.platform }} `
|
||||
/m
|
||||
|
||||
- name: Zip Build (Consoles)
|
||||
if: matrix.platform != 'Windows64'
|
||||
run: 7z a -r LCE${{ matrix.platform }}.zip ./${{ matrix.platform }}_${{ matrix.configuration }}/* "-x!*.ipdb" "-x!*.iobj"
|
||||
|
||||
- name: Zip Build (Windows64)
|
||||
if: matrix.platform == 'Windows64'
|
||||
run: 7z a -r LCE${{ matrix.platform }}.zip ./x64/${{ matrix.configuration }}/* "-x!*.ipdb" "-x!*.iobj"
|
||||
|
||||
- name: Stage artifacts
|
||||
run: |
|
||||
New-Item -ItemType Directory -Force -Path staging
|
||||
Copy-Item LCE${{ matrix.platform }}.zip staging/
|
||||
|
||||
- name: Stage exe
|
||||
if: matrix.platform == 'Windows64'
|
||||
run: |
|
||||
Copy-Item ./x64/${{ matrix.configuration }}/Minecraft.Client.exe staging/
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: https://github.com/actions/upload-artifact@v3
|
||||
with:
|
||||
name: build-${{ matrix.platform }}
|
||||
path: staging/*
|
||||
|
||||
release:
|
||||
needs: build
|
||||
runs-on: windows-2022
|
||||
steps:
|
||||
- name: Download all build artifacts
|
||||
uses: https://github.com/actions/download-artifact@v3
|
||||
with:
|
||||
path: downloaded
|
||||
|
||||
- name: Fetch release notes
|
||||
id: notes
|
||||
run: |
|
||||
$notesSource = "${{ inputs.notes }}"
|
||||
$fallback = "## Cafeberry`n`n### Whoever made this release forgot to put notes, sorry!"
|
||||
|
||||
if ($notesSource -match '^https?://') {
|
||||
try {
|
||||
$body = (Invoke-WebRequest -Uri $notesSource -UseBasicParsing).Content
|
||||
if ([string]::IsNullOrWhiteSpace($body)) { $body = $fallback }
|
||||
} catch {
|
||||
$body = $fallback
|
||||
}
|
||||
}
|
||||
|
||||
"description<<EOF`n$body`nEOF" | Out-File -Append -Encoding utf8 -NoNewline:$false $env:GITHUB_OUTPUT
|
||||
|
||||
- name: Publish Release
|
||||
uses: akkuman/gitea-release-action@v1
|
||||
with:
|
||||
name: ${{ inputs.version }}
|
||||
server_url: ${{ gitea.server_url }}
|
||||
repository: ${{ gitea.repository }}
|
||||
token: ${{ gitea.token }}
|
||||
tag_name: ${{ inputs.version }}
|
||||
prerelease: false
|
||||
verbose: true
|
||||
files: downloaded/**/*
|
||||
body: ${{ steps.notes.outputs.description }}
|
||||
@@ -1,24 +0,0 @@
|
||||
#include "stdafx.h"
|
||||
#include "..\Common\Consoles_App.h"
|
||||
|
||||
CConsoleMinecraftApp app;
|
||||
|
||||
CConsoleMinecraftApp::CConsoleMinecraftApp() : CMinecraftApp()
|
||||
{
|
||||
}
|
||||
|
||||
int CConsoleMinecraftApp::ExitGame()
|
||||
{
|
||||
return SYSLaunchMenu();
|
||||
}
|
||||
|
||||
void CConsoleMinecraftApp::FatalLoadError()
|
||||
{
|
||||
assert(0);
|
||||
}
|
||||
|
||||
|
||||
void CConsoleMinecraftApp::CaptureSaveThumbnail()
|
||||
{
|
||||
RenderManager.CaptureThumbnail(&m_ThumbnailBuffer,&m_SaveImageBuffer);
|
||||
}
|
||||
@@ -1,750 +0,0 @@
|
||||
#include "stdafx.h"
|
||||
#include "..\..\Minecraft.Client\Tesselator.h"
|
||||
#include "..\..\Minecraft.World\compression.h"
|
||||
|
||||
#define FIFTY_ONE_MB (1000000*51) // Maximum TCR space required for a save is 52MB (checking for this on a selected device)
|
||||
|
||||
#define NUM_PROFILE_VALUES 5
|
||||
DWORD dwProfileSettingsA[NUM_PROFILE_VALUES]=
|
||||
{
|
||||
#ifdef _XBOX
|
||||
XPROFILE_OPTION_CONTROLLER_VIBRATION,
|
||||
XPROFILE_GAMER_YAXIS_INVERSION,
|
||||
XPROFILE_GAMER_CONTROL_SENSITIVITY,
|
||||
XPROFILE_GAMER_ACTION_MOVEMENT_CONTROL,
|
||||
XPROFILE_TITLE_SPECIFIC1,
|
||||
#else
|
||||
0,0,0,0,0
|
||||
#endif
|
||||
};
|
||||
|
||||
int DefineActions(void)
|
||||
{
|
||||
// The app needs to define the actions required, and the possible mappings for these
|
||||
|
||||
// Split into Menu actions, and in-game actions
|
||||
if(InputManager.IsCircleCrossSwapped())
|
||||
{
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_A, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_OK, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_B, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_CANCEL, _WIIU_JOY_BUTTON_A);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_FLY_TOGGLE, _WIIU_JOY_BUTTON_A);
|
||||
}
|
||||
else
|
||||
{
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_A, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_OK, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_B, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_CANCEL, _WIIU_JOY_BUTTON_A);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_FLY_TOGGLE, _WIIU_JOY_BUTTON_B);
|
||||
}
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_X, _WIIU_JOY_BUTTON_Y);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_Y, _WIIU_JOY_BUTTON_X);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_UP, _WIIU_JOY_BUTTON_DPAD_UP | _WIIU_JOY_BUTTON_LSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_DOWN, _WIIU_JOY_BUTTON_DPAD_DOWN | _WIIU_JOY_BUTTON_LSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_LEFT, _WIIU_JOY_BUTTON_DPAD_LEFT | _WIIU_JOY_BUTTON_LSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_RIGHT, _WIIU_JOY_BUTTON_DPAD_RIGHT | _WIIU_JOY_BUTTON_LSTICK_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_PAGEUP, _WIIU_JOY_BUTTON_LT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_PAGEDOWN, _WIIU_JOY_BUTTON_RT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_RIGHT_SCROLL, _WIIU_JOY_BUTTON_RB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_LEFT_SCROLL, _WIIU_JOY_BUTTON_LB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_PAUSEMENU, _WIIU_JOY_BUTTON_START);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_STICK_PRESS, _WIIU_JOY_BUTTON_LTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_OTHER_STICK_PRESS, _WIIU_JOY_BUTTON_RTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_OTHER_STICK_UP, _WIIU_JOY_BUTTON_RSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_OTHER_STICK_DOWN, _WIIU_JOY_BUTTON_RSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_OTHER_STICK_LEFT, _WIIU_JOY_BUTTON_RSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,ACTION_MENU_OTHER_STICK_RIGHT, _WIIU_JOY_BUTTON_RSTICK_RIGHT);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_JUMP, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_FORWARD, _WIIU_JOY_BUTTON_LSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_BACKWARD, _WIIU_JOY_BUTTON_LSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_LEFT, _WIIU_JOY_BUTTON_LSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_RIGHT, _WIIU_JOY_BUTTON_LSTICK_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_LOOK_LEFT, _WIIU_JOY_BUTTON_RSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_LOOK_RIGHT, _WIIU_JOY_BUTTON_RSTICK_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_LOOK_UP, _WIIU_JOY_BUTTON_RSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_LOOK_DOWN, _WIIU_JOY_BUTTON_RSTICK_DOWN);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_USE, _WIIU_JOY_BUTTON_LT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_ACTION, _WIIU_JOY_BUTTON_RT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_RIGHT_SCROLL, _WIIU_JOY_BUTTON_RB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_LEFT_SCROLL, _WIIU_JOY_BUTTON_LB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_INVENTORY, _WIIU_JOY_BUTTON_Y);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_PAUSEMENU, _WIIU_JOY_BUTTON_START);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DROP, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_SNEAK_TOGGLE, _WIIU_JOY_BUTTON_RTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_CRAFTING, _WIIU_JOY_BUTTON_X);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _WIIU_JOY_BUTTON_LTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_GAME_INFO, _WIIU_JOY_BUTTON_BACK);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DPAD_LEFT, _WIIU_JOY_BUTTON_DPAD_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DPAD_RIGHT, _WIIU_JOY_BUTTON_DPAD_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DPAD_UP, _WIIU_JOY_BUTTON_DPAD_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_DPAD_DOWN, _WIIU_JOY_BUTTON_DPAD_DOWN);
|
||||
|
||||
if(InputManager.IsCircleCrossSwapped())
|
||||
{
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_A, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_OK, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_B, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_CANCEL, _WIIU_JOY_BUTTON_A);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_FLY_TOGGLE, _WIIU_JOY_BUTTON_A);
|
||||
}
|
||||
else
|
||||
{
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_A, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_OK, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_B, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_CANCEL, _WIIU_JOY_BUTTON_B);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_FLY_TOGGLE, _WIIU_JOY_BUTTON_B);
|
||||
}
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_X, _WIIU_JOY_BUTTON_Y);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_Y, _WIIU_JOY_BUTTON_X);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_UP, _WIIU_JOY_BUTTON_DPAD_UP | _WIIU_JOY_BUTTON_LSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_DOWN, _WIIU_JOY_BUTTON_DPAD_DOWN | _WIIU_JOY_BUTTON_LSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_LEFT, _WIIU_JOY_BUTTON_DPAD_LEFT | _WIIU_JOY_BUTTON_LSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_RIGHT, _WIIU_JOY_BUTTON_DPAD_RIGHT | _WIIU_JOY_BUTTON_LSTICK_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_PAGEUP, _WIIU_JOY_BUTTON_LB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_PAGEDOWN, _WIIU_JOY_BUTTON_RT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_RIGHT_SCROLL, _WIIU_JOY_BUTTON_RB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_LEFT_SCROLL, _WIIU_JOY_BUTTON_LB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_PAUSEMENU, _WIIU_JOY_BUTTON_START);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_STICK_PRESS, _WIIU_JOY_BUTTON_LTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_OTHER_STICK_PRESS, _WIIU_JOY_BUTTON_RTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_OTHER_STICK_UP, _WIIU_JOY_BUTTON_RSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_OTHER_STICK_DOWN, _WIIU_JOY_BUTTON_RSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_OTHER_STICK_LEFT, _WIIU_JOY_BUTTON_RSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,ACTION_MENU_OTHER_STICK_RIGHT, _WIIU_JOY_BUTTON_RSTICK_RIGHT);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_JUMP, _WIIU_JOY_BUTTON_RT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_FORWARD, _WIIU_JOY_BUTTON_LSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_BACKWARD, _WIIU_JOY_BUTTON_LSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_LEFT, _WIIU_JOY_BUTTON_LSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_RIGHT, _WIIU_JOY_BUTTON_LSTICK_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_LOOK_LEFT, _WIIU_JOY_BUTTON_RSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_LOOK_RIGHT, _WIIU_JOY_BUTTON_RSTICK_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_LOOK_UP, _WIIU_JOY_BUTTON_RSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_LOOK_DOWN, _WIIU_JOY_BUTTON_RSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_USE, _WIIU_JOY_BUTTON_RB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_ACTION, _WIIU_JOY_BUTTON_LB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_RIGHT_SCROLL, _WIIU_JOY_BUTTON_DPAD_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_LEFT_SCROLL, _WIIU_JOY_BUTTON_DPAD_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_INVENTORY, _WIIU_JOY_BUTTON_Y);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_PAUSEMENU, _WIIU_JOY_BUTTON_START);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DROP, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_SNEAK_TOGGLE, _WIIU_JOY_BUTTON_LTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_CRAFTING, _WIIU_JOY_BUTTON_X);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _WIIU_JOY_BUTTON_RTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_GAME_INFO, _WIIU_JOY_BUTTON_BACK);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DPAD_LEFT, _WIIU_JOY_BUTTON_DPAD_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DPAD_RIGHT, _WIIU_JOY_BUTTON_DPAD_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DPAD_UP, _WIIU_JOY_BUTTON_DPAD_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_1,MINECRAFT_ACTION_DPAD_DOWN, _WIIU_JOY_BUTTON_DPAD_DOWN);
|
||||
|
||||
if(InputManager.IsCircleCrossSwapped())
|
||||
{
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_A, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OK, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_B, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_CANCEL, _WIIU_JOY_BUTTON_A);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_FLY_TOGGLE, _WIIU_JOY_BUTTON_A);
|
||||
}
|
||||
else
|
||||
{
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_A, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OK, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_B, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_CANCEL, _WIIU_JOY_BUTTON_B);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_0,MINECRAFT_ACTION_FLY_TOGGLE, _WIIU_JOY_BUTTON_B);
|
||||
}
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_X, _WIIU_JOY_BUTTON_Y);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_Y, _WIIU_JOY_BUTTON_X);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_UP, _WIIU_JOY_BUTTON_DPAD_UP | _WIIU_JOY_BUTTON_LSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_DOWN, _WIIU_JOY_BUTTON_DPAD_DOWN | _WIIU_JOY_BUTTON_LSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_LEFT, _WIIU_JOY_BUTTON_DPAD_LEFT | _WIIU_JOY_BUTTON_LSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_RIGHT, _WIIU_JOY_BUTTON_DPAD_RIGHT | _WIIU_JOY_BUTTON_LSTICK_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_PAGEUP, _WIIU_JOY_BUTTON_DPAD_UP | _WIIU_JOY_BUTTON_LB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_PAGEDOWN, _WIIU_JOY_BUTTON_RT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_RIGHT_SCROLL, _WIIU_JOY_BUTTON_RB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_LEFT_SCROLL, _WIIU_JOY_BUTTON_LB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_PAUSEMENU, _WIIU_JOY_BUTTON_START);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_STICK_PRESS, _WIIU_JOY_BUTTON_LTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OTHER_STICK_PRESS, _WIIU_JOY_BUTTON_RTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OTHER_STICK_UP, _WIIU_JOY_BUTTON_RSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OTHER_STICK_DOWN, _WIIU_JOY_BUTTON_RSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OTHER_STICK_LEFT, _WIIU_JOY_BUTTON_RSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,ACTION_MENU_OTHER_STICK_RIGHT, _WIIU_JOY_BUTTON_RSTICK_RIGHT);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_JUMP, _WIIU_JOY_BUTTON_LB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_FORWARD, _WIIU_JOY_BUTTON_LSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_BACKWARD, _WIIU_JOY_BUTTON_LSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_LEFT, _WIIU_JOY_BUTTON_LSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_RIGHT, _WIIU_JOY_BUTTON_LSTICK_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_LOOK_LEFT, _WIIU_JOY_BUTTON_RSTICK_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_LOOK_RIGHT, _WIIU_JOY_BUTTON_RSTICK_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_LOOK_UP, _WIIU_JOY_BUTTON_RSTICK_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_LOOK_DOWN, _WIIU_JOY_BUTTON_RSTICK_DOWN);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_USE, _WIIU_JOY_BUTTON_RB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_ACTION, _WIIU_JOY_BUTTON_A);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_RIGHT_SCROLL, _WIIU_JOY_BUTTON_DPAD_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_LEFT_SCROLL, _WIIU_JOY_BUTTON_DPAD_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_INVENTORY, _WIIU_JOY_BUTTON_Y);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_PAUSEMENU, _WIIU_JOY_BUTTON_START);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DROP, _WIIU_JOY_BUTTON_B);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_SNEAK_TOGGLE, _WIIU_JOY_BUTTON_LT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_CRAFTING, _WIIU_JOY_BUTTON_X);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_RENDER_THIRD_PERSON, _WIIU_JOY_BUTTON_LTHUMB);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_GAME_INFO, _WIIU_JOY_BUTTON_BACK);
|
||||
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DPAD_LEFT, _WIIU_JOY_BUTTON_DPAD_LEFT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DPAD_RIGHT, _WIIU_JOY_BUTTON_DPAD_RIGHT);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DPAD_UP, _WIIU_JOY_BUTTON_DPAD_UP);
|
||||
InputManager.SetGameJoypadMaps(MAP_STYLE_2,MINECRAFT_ACTION_DPAD_DOWN, _WIIU_JOY_BUTTON_DPAD_DOWN);
|
||||
};
|
||||
|
||||
int v47;
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef 0
|
||||
if ( !SYSGetArguments(&v54, v62) && v55 == 1 )
|
||||
{
|
||||
byte_1046C163 = 1;
|
||||
dword_104DD144 = v56;
|
||||
byte_1046C162 = 1;
|
||||
}
|
||||
OSInitMessageQueue(&unk_10709BB0, &unk_10709B88, 1);
|
||||
InitializeCriticalSection(&unk_10709BEC);
|
||||
OSCreateThread4J__FP8OSThreadPFiPv_iiPvT4UiT3Us(&unk_107094E8, altMainThread, 0, 0, &unk_107094E8, 0x20000, 17, 0);
|
||||
v5 = OSResumeThread(&unk_107094E8);
|
||||
v6 = SetMainThreadID__9C4JThreadSFv(v5);
|
||||
#endif // WII U DECOMP
|
||||
|
||||
// 4J-JEV: Moved this here in case some archived files are compressed.
|
||||
Compression::CreateNewThreadStorage();
|
||||
|
||||
RenderManager.Initialise();
|
||||
|
||||
// Set the number of possible joypad layouts that the user can switch between, and the number of actions
|
||||
// Need to init Input before UI so we know what the Circle/Cross state is
|
||||
InputManager.Initialise(1,3,MINECRAFT_ACTION_MAX, ACTION_MAX_MENU);
|
||||
|
||||
// Set the default joypad action mappings for Minecraft
|
||||
DefineActions();
|
||||
InputManager.SetJoypadMapVal(0,0);
|
||||
InputManager.SetKeyRepeatRate(0.3f,0.2f);
|
||||
#ifdef 0
|
||||
InputManager.SetDeadzoneAndMovementRange(0, 20000, 32767);
|
||||
#endif // WII U DECOMP
|
||||
|
||||
app.loadMediaArchive();
|
||||
|
||||
app.DebugPrintf("+++Main - after app.loadMediaArchive\n");
|
||||
|
||||
// Read the file containing the product codes
|
||||
if(app.ReadProductCodes()==FALSE)
|
||||
{
|
||||
// can't continue
|
||||
app.FatalLoadError();
|
||||
}
|
||||
|
||||
#ifdef 0
|
||||
int ProductSKU = app.GetProductSKU();
|
||||
|
||||
if (ProductSKU <= 2) {
|
||||
C_4JProfile::SetMinimumAge(&unk_1078D372, *(unsigned __int8 *)(ProductSKU + 270239279));
|
||||
}
|
||||
#endif // WII U DECOMP
|
||||
// ESRB EVERYONE 10+, temporary for now
|
||||
ProfileManager.SetMinimumAge(10,1);
|
||||
|
||||
app.loadStringTable();
|
||||
|
||||
// 4J-Stu Wii U is weird, it already has it swapped, 1 will suffice.
|
||||
// (just imagine this is a real 4J comment)
|
||||
InputManager.SetCircleCrossSwapped(1);
|
||||
|
||||
if(RenderManager.IsWidescreen())
|
||||
ui.init(1280,720);
|
||||
else
|
||||
ui.init(1280,480);
|
||||
|
||||
static bool bTrialTimerDisplayed=true;
|
||||
|
||||
|
||||
////////////////
|
||||
// Initialise //
|
||||
////////////////
|
||||
|
||||
#if 0
|
||||
// 4J Stu - XACT was creating these automatically, but we need them for QNet. The setup params
|
||||
// are just copied from a sample app and may need changed for our purposes
|
||||
// Start XAudio2
|
||||
hr = XAudio2Create( &g_pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR );
|
||||
if( FAILED( hr ) )
|
||||
{
|
||||
app.DebugPrintf( "Initializing XAudio2 failed (err = 0x%08x)!\n", hr );
|
||||
app.FatalLoadError();
|
||||
}
|
||||
|
||||
// Create an XAudio2 mastering voice (utilized by XHV2 when voice data is mixed to main speakers)
|
||||
hr = g_pXAudio2->CreateMasteringVoice(&g_pXAudio2MasteringVoice, XAUDIO2_DEFAULT_CHANNELS, XAUDIO2_DEFAULT_SAMPLERATE, 0, 0, NULL);
|
||||
if ( FAILED( hr ) )
|
||||
{
|
||||
app.DebugPrintf( "Creating XAudio2 mastering voice failed (err = 0x%08x)!\n", hr );
|
||||
app.FatalLoadError();
|
||||
}
|
||||
#endif
|
||||
|
||||
app.InitTime();
|
||||
|
||||
// more Wii U sdk specific stuff, yayyyy
|
||||
#ifdef 0
|
||||
// Initialise the profile manager with the game Title ID, Offer ID, a profile version number, and the number of profile values and settings
|
||||
ProfileManager.Initialise(&unk_101B862C,
|
||||
&unk_101B862C,
|
||||
18,
|
||||
5,
|
||||
4,
|
||||
&unk_1047B9B0,
|
||||
3888,
|
||||
&dword_106E8DB8);
|
||||
|
||||
ProfileManager.SetSignInChoicesCallback(RequestSignInUIChoices__20CConsoleMinecraftAppSFi);
|
||||
#endif // WII U DECOMP
|
||||
|
||||
app.DebugPrintf("+++Main - after ProfileManager.Initialise\n");
|
||||
|
||||
// register the awards
|
||||
RegisterAwardsWithProfileManager();
|
||||
|
||||
// PIEBOT: its not confirmed what the 4th argument is, its FIFTY_ONE_MB temporarily until its sorted out
|
||||
// initialise the storage manager with a callback for displaying the saving message
|
||||
StorageManager.Init(0,app.GetString(IDS_DEFAULT_SAVENAME),"savegame.dat",FIFTY_ONE_MB,&CConsoleMinecraftApp::DisplaySavingMessage,(LPVOID)&app,"",v47);
|
||||
|
||||
app.SetNoSpaceForSaveQuota(v47[0]);
|
||||
app.DebugPrintf(">>> StorageManager.Init, noSpaceForQuota is %d\n", v47[0]);
|
||||
|
||||
ProfileManager.LoadAllMiiData();
|
||||
#if 0
|
||||
|
||||
// Set up the global title storage path
|
||||
StorageManager.StoreTMSPathName();
|
||||
#endif
|
||||
|
||||
// MGH - I've had to rearrange some of the ordering here, as I was getting conflicts with the sysutils for trophies and the upgrade key
|
||||
|
||||
//app.FatalLoadError();
|
||||
|
||||
|
||||
// set a function to be called when there's a sign in change, so we can exit a level if the primary player signs out
|
||||
ProfileManager.SetSignInChangeCallback(&CConsoleMinecraftApp::SignInChangeCallback,(LPVOID)&app);
|
||||
|
||||
#if 0
|
||||
// set a function to be called when the ethernet is disconnected, so we can back out if required
|
||||
ProfileManager.SetNotificationsCallback(&CConsoleMinecraftApp::NotificationsCallback,(LPVOID)&app);
|
||||
|
||||
// Set a callback for when there is a read error on profile data
|
||||
ProfileManager.SetProfileReadErrorCallback(&CConsoleMinecraftApp::ProfileReadErrorCallback,(LPVOID)&app);
|
||||
|
||||
// QNet needs to be setup after profile manager, as we do not want its Notify listener to handle
|
||||
// XN_SYS_SIGNINCHANGED notifications. This does mean that we need to have a callback in the
|
||||
// ProfileManager for XN_LIVE_INVITE_ACCEPTED for QNet.
|
||||
#endif // 0
|
||||
|
||||
// Set a callback for when there is a read error on profile data
|
||||
ProfileManager.SetProfileReadErrorCallback(&CConsoleMinecraftApp::ProfileReadErrorCallback,(LPVOID)&app);
|
||||
|
||||
// Before using any save/load on Wii U, we need a secure id set
|
||||
StorageManager.InitialiseProfileData(PROFILE_VERSION_18,
|
||||
NUM_PROFILE_VALUES,
|
||||
NUM_PROFILE_SETTINGS,
|
||||
dwProfileSettingsA,
|
||||
app.GAME_DEFINED_PROFILE_DATA_BYTES*XUSER_MAX_COUNT,
|
||||
&app.uiGameDefinedDataChangedBitmask);
|
||||
|
||||
app.DebugPrintf("+++Main - after InitialiseProfileData\n");
|
||||
|
||||
// Set a callback for the default player options to be set - when there is no profile data for the player
|
||||
|
||||
StorageManager.SetDefaultOptionsCallback(&CConsoleMinecraftApp::DefaultOptionsCallback,(LPVOID)&app);
|
||||
StorageManager.SetOptionsDataCallback(&CConsoleMinecraftApp::OptionsDataCallback,(LPVOID)&app);
|
||||
|
||||
// Set a callback to deal with old profile versions needing updated to new versions
|
||||
ProfileManager.SetOldProfileVersionCallback(&CConsoleMinecraftApp::OldProfileVersionCallback,(LPVOID)&app);
|
||||
|
||||
StorageManager.SetGameSaveFolderPrefix("");
|
||||
StorageManager.SetMaxSaves(99);
|
||||
byteArray baSaveThumbnail = app.getArchiveFile(L"DefaultSaveThumbnail64x64.png");
|
||||
|
||||
if(baSaveThumbnail.data!=NULL)
|
||||
{
|
||||
delete [] baSaveThumbnail.data;
|
||||
}
|
||||
StorageManager.SetDefaultImages();
|
||||
|
||||
StorageManager.SetIncompleteSaveCallback(&CConsoleMinecraftApp::Callback_SaveGameIncomplete, (LPVOID)&app);
|
||||
|
||||
// defaults
|
||||
StorageManager.SetSaveTitle(L"Default Save");
|
||||
|
||||
// debug switch to trial version
|
||||
// ProfileManager.SetDebugFullOverride(true);
|
||||
|
||||
//ProfileManager.AddDLC(2);
|
||||
StorageManager.SetDLCPackageRoot("DLCDrive");
|
||||
|
||||
// Initialise TLS for tesselator, for this main thread
|
||||
Tesselator::CreateNewThreadStorage(1024*1024);
|
||||
// Initialise TLS for AABB and Vec3 pools, for this main thread
|
||||
AABB::CreateNewThreadStorage();
|
||||
Vec3::CreateNewThreadStorage();
|
||||
IntCache::CreateNewThreadStorage();
|
||||
OldChunkStorage::CreateNewThreadStorage();
|
||||
Level::enableLightingCache();
|
||||
Tile::CreateNewThreadStorage();
|
||||
#ifdef 0
|
||||
FireworksRecipe::CreateNewThreadStorage();
|
||||
#endif // FROM WII U DECOMP
|
||||
|
||||
Minecraft::main();
|
||||
Minecraft *pMinecraft=Minecraft::GetInstance();
|
||||
|
||||
app.InitGameSettings(); // - allocates the memory for the game settings
|
||||
// read the options here for controller 0 - this won't actually be actioned until a storagemanager tick later
|
||||
StorageManager.ReadFromProfile(0);
|
||||
|
||||
// set the default profile values
|
||||
// 4J-PB - InitGameSettings already does this
|
||||
/*for(int i=0;i<XUSER_MAX_COUNT;i++)
|
||||
{
|
||||
#ifdef __PS3__
|
||||
app.SetDefaultOptions(StorageManager.GetDashboardProfileSettings(i),i);
|
||||
#else
|
||||
app.SetDefaultOptions(ProfileManager.GetDashboardProfileSettings(i),i);
|
||||
#endif
|
||||
}*/
|
||||
|
||||
ProfileManager.SetUpsellCallback(&app.UpsellReturnedCallback,&app);
|
||||
|
||||
app.InitialiseTips();
|
||||
|
||||
#ifdef 0
|
||||
(*(void (**)(void))(*(_DWORD *)(dword_106E8A18 + 44) + 36))();
|
||||
#endif // WII U DECOMP
|
||||
|
||||
|
||||
#ifndef _FINAL_BUILD
|
||||
#ifndef _DEBUG
|
||||
#pragma message(__LOC__"Need to define the _FINAL_BUILD before submission")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
|
||||
DWORD initData=0;
|
||||
// Set the default sound levels
|
||||
pMinecraft->options->set(Options::Option::MUSIC,1.0f);
|
||||
pMinecraft->options->set(Options::Option::SOUND,1.0f);
|
||||
|
||||
app.NavigateToScene(XUSER_INDEX_ANY,eUIScene_Intro,&initData);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//LeaderboardManager::Instance()->OpenSession();
|
||||
//LeaderboardManager::Instance()->ReadStats_TopRank(DebugReadListener::m_instance, 0, LeaderboardManager::eStatsType_Travelling, 1, 1);
|
||||
|
||||
g_NetworkManager.Initialise();
|
||||
g_NetworkManager.SetLocalGame(true);
|
||||
|
||||
while( true )
|
||||
{
|
||||
// nintendo sdk bullshit
|
||||
#ifdef 0
|
||||
EnterCriticalSection(&unk_10709BEC);
|
||||
LeaveCriticalSection(&unk_10709BEC);
|
||||
if ( byte_1047B9AC )
|
||||
break;
|
||||
v26 = ProcUIProcessMessages(1);
|
||||
if ( v26 == 3 )
|
||||
{
|
||||
CMinecraftApp::DebugPrintf(&app, ">>! PROCUI_STATUS_EXIT\n");
|
||||
v27 = C4JRender::WiiUWaitDrawDone(&unk_1072C506);
|
||||
ProcUIShutdown(v27);
|
||||
result = 0;
|
||||
goto LABEL_66;
|
||||
}
|
||||
if ( v26 == 2 )
|
||||
{
|
||||
v29 = CMinecraftApp::DebugPrintf(&app, ">>! PROCUI_STATUS_RELEASING\n");
|
||||
v30 = ReleaseCallback__22NintendoVoiceChat_WiiUSFv(v29);
|
||||
ProcUIDrawDoneRelease(v30);
|
||||
}
|
||||
#endif // WII U DECOMP
|
||||
RenderManager.StartFrame();
|
||||
app.UpdateTime();
|
||||
PIXBeginNamedEvent(0,"Input manager tick");
|
||||
InputManager.Tick();
|
||||
PIXEndNamedEvent();
|
||||
// I think the lines under me is related to the gamepad, which is
|
||||
// so important that it was one of the Wii U's selling point.
|
||||
// We should look into it when we do 4JLibs Wii U.
|
||||
#ifdef 0
|
||||
IsPadDRCController = InputManager.IsPadDRCController(4);
|
||||
if ( IsPadDRCController != (unsigned __int8)byte_1047B988 )
|
||||
{
|
||||
if ( IsPadDRCController )
|
||||
{
|
||||
if ( byte_106E9491 )
|
||||
byte_106E9492 = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
byte_106E9492 = 0;
|
||||
}
|
||||
byte_1047B988 = IsPadDRCController;
|
||||
}
|
||||
#endif // WII U DECOMP
|
||||
PIXBeginNamedEvent(0,"Profile manager tick");
|
||||
ProfileManager.Tick();
|
||||
PIXEndNamedEvent();
|
||||
PIXBeginNamedEvent(0,"Storage manager tick");
|
||||
StorageManager.Tick();
|
||||
PIXEndNamedEvent();
|
||||
PIXBeginNamedEvent(0,"Render manager tick");
|
||||
RenderManager.Tick();
|
||||
PIXEndNamedEvent();
|
||||
|
||||
|
||||
// Tick the social networking manager.
|
||||
PIXBeginNamedEvent(0,"Social network manager tick");
|
||||
// CSocialManager::Instance()->Tick();
|
||||
PIXEndNamedEvent();
|
||||
|
||||
// Tick sentient.
|
||||
PIXBeginNamedEvent(0,"Sentient tick");
|
||||
MemSect(37);
|
||||
// SentientManager.Tick();
|
||||
MemSect(0);
|
||||
PIXEndNamedEvent();
|
||||
|
||||
PIXBeginNamedEvent(0,"Network manager do work #1");
|
||||
g_NetworkManager.DoWork();
|
||||
PIXEndNamedEvent();
|
||||
#ifdef 0
|
||||
if ( byte_106E9492
|
||||
|| byte_106E9491
|
||||
|| !CGameNetworkManager::IsInGameplay(&unk_104C0E34)
|
||||
|| !byte_106E9493
|
||||
|| CMinecraftApp::GetLocalPlayerCount(&app) != 1 )
|
||||
{
|
||||
v32 = 119;
|
||||
dword_1047B98C = 119;
|
||||
goto LABEL_37;
|
||||
}
|
||||
if ( dword_1047B98C )
|
||||
{
|
||||
v32 = --dword_1047B98C;
|
||||
LABEL_37:
|
||||
if ( v32 )
|
||||
goto LABEL_39;
|
||||
}
|
||||
byte_106E9491 = 1;
|
||||
LABEL_39:
|
||||
(*(void (**)(void))(*(_DWORD *)(dword_106E8A18 + 44) + 28))();
|
||||
#endif // WII U DECOMP
|
||||
// 4J-PB - these get set every tick causing the write profile flag to be true all the time -
|
||||
// app.SetGameSettingsDebugMask(0,eDebugSetting_LoadSavesFromDisk);
|
||||
// app.SetGameSettingsDebugMask(0,eDebugSetting_WriteSavesToDisk);
|
||||
// app.SetLoadSavesFromFolderEnabled(true);
|
||||
// app.SetWriteSavesToFolderEnabled(true);
|
||||
|
||||
//LeaderboardManager::Instance()->Tick();
|
||||
// Render game graphics.
|
||||
if(app.GetGameStarted())
|
||||
{
|
||||
|
||||
// if(InputManager.ButtonPressed(0, MINECRAFT_ACTION_SNEAK_TOGGLE))
|
||||
// {
|
||||
// app.DebugPrintf("saving game...\n");
|
||||
// debugSaveGameDirect();
|
||||
//
|
||||
// }
|
||||
pMinecraft->run_middle();
|
||||
app.SetAppPaused( g_NetworkManager.IsLocalGame() && g_NetworkManager.GetPlayerCount() == 1 && ui.IsPauseMenuDisplayed(ProfileManager.GetPrimaryPad()) );
|
||||
}
|
||||
else
|
||||
{
|
||||
MemSect(28);
|
||||
pMinecraft->soundEngine->tick(NULL, 0.0f);
|
||||
MemSect(0);
|
||||
pMinecraft->textures->tick(true,false);
|
||||
IntCache::Reset();
|
||||
if( app.GetReallyChangingSessionType() )
|
||||
{
|
||||
pMinecraft->tickAllConnections(); // Added to stop timing out when we are waiting after converting to an offline game
|
||||
}
|
||||
}
|
||||
|
||||
pMinecraft->soundEngine->playMusicTick();
|
||||
|
||||
#ifdef MEMORY_TRACKING
|
||||
static bool bResetMemTrack = false;
|
||||
static bool bDumpMemTrack = false;
|
||||
|
||||
MemPixStuff();
|
||||
|
||||
if( bResetMemTrack )
|
||||
{
|
||||
ResetMem();
|
||||
MEMORYSTATUS memStat;
|
||||
GlobalMemoryStatus(&memStat);
|
||||
printf("RESETMEM: Avail. phys %d\n",memStat.dwAvailPhys/(1024*1024));
|
||||
bResetMemTrack = false;
|
||||
}
|
||||
|
||||
if( bDumpMemTrack )
|
||||
{
|
||||
DumpMem();
|
||||
bDumpMemTrack = false;
|
||||
MEMORYSTATUS memStat;
|
||||
GlobalMemoryStatus(&memStat);
|
||||
printf("DUMPMEM: Avail. phys %d\n",memStat.dwAvailPhys/(1024*1024));
|
||||
printf("Renderer used: %d\n",RenderManager.CBuffSize(-1));
|
||||
}
|
||||
#endif
|
||||
#if 0
|
||||
static bool bDumpTextureUsage = false;
|
||||
if( bDumpTextureUsage )
|
||||
{
|
||||
RenderManager.TextureGetStats();
|
||||
bDumpTextureUsage = false;
|
||||
}
|
||||
#endif
|
||||
ui.tick();
|
||||
ui.render();
|
||||
|
||||
// Present the frame.
|
||||
PIXBeginNamedEvent(0,"Frame present");
|
||||
RenderManager.Present();
|
||||
PIXEndNamedEvent();
|
||||
|
||||
RenderManager.Set_matrixDirty();
|
||||
|
||||
ui.CheckMenuDisplayed();
|
||||
PIXBeginNamedEvent(0,"Profile load check");
|
||||
// has the game defined profile data been changed (by a profile load)
|
||||
if(app.uiGameDefinedDataChangedBitmask!=0)
|
||||
{
|
||||
void *pData;
|
||||
for(int i=0;i<XUSER_MAX_COUNT;i++)
|
||||
{
|
||||
if(app.uiGameDefinedDataChangedBitmask&(1<<i))
|
||||
{
|
||||
// It has - game needs to update its values with the data from the profile
|
||||
pData=StorageManager.GetGameDefinedProfileData(i);
|
||||
// reset the changed flag
|
||||
app.ClearGameSettingsChangedFlag(i);
|
||||
app.DebugPrintf("*** - APPLYING GAME SETTINGS CHANGE for pad %d\n",i);
|
||||
app.ApplyGameSettingsChanged(i);
|
||||
|
||||
#ifdef _DEBUG_MENUS_ENABLED
|
||||
if(app.DebugSettingsOn())
|
||||
{
|
||||
app.ActionDebugMask(i);
|
||||
}
|
||||
else
|
||||
{
|
||||
// force debug mask off
|
||||
app.ActionDebugMask(i,true);
|
||||
}
|
||||
#endif
|
||||
// clear the stats first - there could have beena signout and sign back in in the menus
|
||||
// need to clear the player stats - can't assume it'll be done in setlevel - we may not be in the game
|
||||
pMinecraft->stats[ i ]->clear();
|
||||
pMinecraft->stats[i]->parse(pData);
|
||||
}
|
||||
}
|
||||
|
||||
// Check to see if we can post to social networks.
|
||||
|
||||
// clear the flag
|
||||
app.uiGameDefinedDataChangedBitmask=0;
|
||||
|
||||
// Check if any profile write are needed
|
||||
//app.CheckGameSettingsChanged();
|
||||
}
|
||||
PIXEndNamedEvent();
|
||||
|
||||
#if 0
|
||||
app.TickDLCOffersRetrieved();
|
||||
app.TickTMSPPFilesRetrieved();
|
||||
#endif
|
||||
|
||||
PIXBeginNamedEvent(0,"Network manager do work #2");
|
||||
g_NetworkManager.DoWork();
|
||||
PIXEndNamedEvent();
|
||||
|
||||
#if 0
|
||||
PIXBeginNamedEvent(0,"Misc extra xui");
|
||||
// Update XUI Timers
|
||||
hr = XuiTimersRun();
|
||||
#endif
|
||||
// Any threading type things to deal with from the xui side?
|
||||
app.HandleXuiActions();
|
||||
|
||||
#if 0
|
||||
PIXEndNamedEvent();
|
||||
#endif
|
||||
|
||||
// 4J-PB - Update the trial timer display if we are in the trial version
|
||||
if(!ProfileManager.IsFullVersion())
|
||||
{
|
||||
// display the trial timer
|
||||
if(app.GetGameStarted())
|
||||
{
|
||||
// 4J-PB - if the game is paused, add the elapsed time to the trial timer count so it doesn't tick down
|
||||
if(app.IsAppPaused())
|
||||
{
|
||||
app.UpdateTrialPausedTimer();
|
||||
}
|
||||
ui.UpdateTrialTimer(ProfileManager.GetPrimaryPad());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// need to turn off the trial timer if it was on , and we've unlocked the full version
|
||||
if(bTrialTimerDisplayed)
|
||||
{
|
||||
ui.ShowTrialTimer(false);
|
||||
bTrialTimerDisplayed=false;
|
||||
}
|
||||
}
|
||||
|
||||
// PS3 DLC
|
||||
app.CommerceTick();
|
||||
|
||||
// Fix for #7318 - Title crashes after short soak in the leaderboards menu
|
||||
// A memory leak was caused because the icon renderer kept creating new Vec3's because the pool wasn't reset
|
||||
Vec3::resetPool();
|
||||
}
|
||||
|
||||
// Free resources, unregister custom classes, and exit.
|
||||
// app.Uninit();
|
||||
// g_pd3dDevice->Release();
|
||||
}
|
||||
@@ -15,7 +15,6 @@
|
||||
#define _SEKRIT
|
||||
#include "..\..\Durango\Miles\include\mss.h"
|
||||
#elif defined _WINDOWS64
|
||||
#include "..\..\windows64\Miles\include\mss.h"
|
||||
#else // PS4
|
||||
// 4J Stu - Temp define to get Miles to link, can likely be removed when we get a new version of Miles
|
||||
#define _SEKRIT2
|
||||
|
||||
@@ -16,7 +16,17 @@
|
||||
|
||||
#ifdef _WINDOWS64
|
||||
#include "..\..\Minecraft.Client\Windows64\Windows64_App.h"
|
||||
#include "..\..\Minecraft.Client\Windows64\Miles\include\imssapi.h"
|
||||
std::vector<MiniAudioSound*> m_activeSounds;
|
||||
#include "stb_vorbis.h"
|
||||
|
||||
#define MA_NO_DSOUND
|
||||
#define MA_NO_WINMM
|
||||
#define MINIAUDIO_IMPLEMENTATION
|
||||
#include "miniaudio.h"
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include "..\Filesystem\Filesystem.h"
|
||||
#endif
|
||||
|
||||
#ifdef __ORBIS__
|
||||
@@ -93,11 +103,13 @@ char SoundEngine::m_szSoundPath[]={"Sound/"};
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef _WINDOWS64
|
||||
F32 AILCALLBACK custom_falloff_function (HSAMPLE S,
|
||||
F32 distance,
|
||||
F32 rolloff_factor,
|
||||
F32 min_dist,
|
||||
F32 max_dist);
|
||||
#endif
|
||||
|
||||
char *SoundEngine::m_szStreamFileA[eStream_Max]=
|
||||
{
|
||||
@@ -155,6 +167,7 @@ char *SoundEngine::m_szStreamFileA[eStream_Max]=
|
||||
// ErrorCallback
|
||||
//
|
||||
/////////////////////////////////////////////
|
||||
#ifndef _WINDOWS64
|
||||
void AILCALL ErrorCallback(S64 i_Id, char const* i_Details)
|
||||
{
|
||||
char *pchLastError=AIL_last_error();
|
||||
@@ -169,6 +182,7 @@ void AILCALL ErrorCallback(S64 i_Id, char const* i_Details)
|
||||
app.DebugPrintf("ErrorCallback - Details: %s\n", i_Details);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __PSVITA__
|
||||
// AP - this is the callback when the driver is about to mix. At this point the mutex is locked by Miles so we can now call all Miles functions without
|
||||
@@ -201,6 +215,7 @@ void AILCALL MilesMixerCB(HDIGDRIVER dig)
|
||||
/////////////////////////////////////////////
|
||||
void SoundEngine::init(Options *pOptions)
|
||||
{
|
||||
#ifndef _WINDOWS64
|
||||
app.DebugPrintf("---SoundEngine::init\n");
|
||||
#ifdef __DISABLE_MILES__
|
||||
return;
|
||||
@@ -370,6 +385,31 @@ void SoundEngine::init(Options *pOptions)
|
||||
// wait for 1 mix...
|
||||
AIL_release_sample_handle(Sample);
|
||||
#endif
|
||||
#else
|
||||
app.DebugPrintf("---SoundEngine::init\n");
|
||||
|
||||
m_engineConfig = ma_engine_config_init();
|
||||
m_engineConfig.listenerCount = MAX_LOCAL_PLAYERS;
|
||||
|
||||
if (ma_engine_init(&m_engineConfig, &m_engine) != MA_SUCCESS)
|
||||
{
|
||||
app.DebugPrintf("Failed to initialize miniaudio engine\n");
|
||||
return;
|
||||
}
|
||||
|
||||
ma_engine_set_volume(&m_engine, 1.0f);
|
||||
|
||||
m_MasterMusicVolume = 1.0f;
|
||||
m_MasterEffectsVolume = 1.0f;
|
||||
|
||||
m_validListenerCount = 1;
|
||||
|
||||
m_bSystemMusicPlaying = false;
|
||||
|
||||
app.DebugPrintf("---miniaudio initialized\n");
|
||||
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef __ORBIS__
|
||||
@@ -399,6 +439,7 @@ void SoundEngine::SetStreamingSounds(int iOverworldMin, int iOverWorldMax, int i
|
||||
}
|
||||
|
||||
// AP - moved to a separate function so it can be called from the mixer callback on Vita
|
||||
#ifndef _WINDOWS64
|
||||
void SoundEngine::updateMiles()
|
||||
{
|
||||
#ifdef __PSVITA__
|
||||
@@ -611,6 +652,110 @@ void SoundEngine::updateMiles()
|
||||
}
|
||||
AIL_complete_event_queue_processing();
|
||||
}
|
||||
#else
|
||||
void SoundEngine::updateMiniAudio()
|
||||
{
|
||||
if (m_validListenerCount == 1)
|
||||
{
|
||||
for (size_t i = 0; i < MAX_LOCAL_PLAYERS; i++)
|
||||
{
|
||||
if (m_ListenerA[i].bValid)
|
||||
{
|
||||
ma_engine_listener_set_position(
|
||||
&m_engine,
|
||||
0,
|
||||
m_ListenerA[i].vPosition.x,
|
||||
m_ListenerA[i].vPosition.y,
|
||||
m_ListenerA[i].vPosition.z);
|
||||
|
||||
ma_engine_listener_set_direction(
|
||||
&m_engine,
|
||||
0,
|
||||
m_ListenerA[i].vOrientFront.x,
|
||||
m_ListenerA[i].vOrientFront.y,
|
||||
m_ListenerA[i].vOrientFront.z);
|
||||
|
||||
ma_engine_listener_set_world_up(
|
||||
&m_engine,
|
||||
0,
|
||||
0.0f, 1.0f, 0.0f);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ma_engine_listener_set_position(&m_engine, 0, 0.0f, 0.0f, 0.0f);
|
||||
ma_engine_listener_set_direction(&m_engine, 0, 0.0f, 0.0f, 1.0f);
|
||||
ma_engine_listener_set_world_up(&m_engine, 0, 0.0f, 1.0f, 0.0f);
|
||||
}
|
||||
|
||||
for (auto it = m_activeSounds.begin(); it != m_activeSounds.end(); )
|
||||
{
|
||||
MiniAudioSound* s = *it;
|
||||
|
||||
if (!ma_sound_is_playing(&s->sound))
|
||||
{
|
||||
ma_sound_uninit(&s->sound);
|
||||
delete s;
|
||||
it = m_activeSounds.erase(it);
|
||||
continue;
|
||||
}
|
||||
|
||||
float finalVolume = s->info.volume * m_MasterEffectsVolume * SFX_VOLUME_MULTIPLIER;
|
||||
if (finalVolume > SFX_MAX_GAIN)
|
||||
finalVolume = SFX_MAX_GAIN;
|
||||
|
||||
ma_sound_set_volume(&s->sound, finalVolume);
|
||||
ma_sound_set_pitch(&s->sound, s->info.pitch);
|
||||
|
||||
if (s->info.bIs3D)
|
||||
{
|
||||
if (m_validListenerCount > 1)
|
||||
{
|
||||
float fClosest=10000.0f;
|
||||
int iClosestListener=0;
|
||||
float fClosestX=0.0f,fClosestY=0.0f,fClosestZ=0.0f,fDist;
|
||||
for( size_t i = 0; i < MAX_LOCAL_PLAYERS; i++ )
|
||||
{
|
||||
if( m_ListenerA[i].bValid )
|
||||
{
|
||||
float x,y,z;
|
||||
|
||||
x=fabs(m_ListenerA[i].vPosition.x-s->info.x);
|
||||
y=fabs(m_ListenerA[i].vPosition.y-s->info.y);
|
||||
z=fabs(m_ListenerA[i].vPosition.z-s->info.z);
|
||||
fDist=x+y+z;
|
||||
|
||||
if(fDist<fClosest)
|
||||
{
|
||||
fClosest=fDist;
|
||||
fClosestX=x;
|
||||
fClosestY=y;
|
||||
fClosestZ=z;
|
||||
iClosestListener=i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
float realDist = sqrtf((fClosestX*fClosestX)+(fClosestY*fClosestY)+(fClosestZ*fClosestZ));
|
||||
ma_sound_set_position(&s->sound, 0, 0, realDist);
|
||||
}
|
||||
else
|
||||
{
|
||||
ma_sound_set_position(
|
||||
&s->sound,
|
||||
s->info.x,
|
||||
s->info.y,
|
||||
s->info.z);
|
||||
}
|
||||
}
|
||||
|
||||
++it;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
//#define DISTORTION_TEST
|
||||
#ifdef DISTORTION_TEST
|
||||
@@ -697,7 +842,11 @@ void SoundEngine::tick(shared_ptr<Mob> *players, float a)
|
||||
|
||||
LeaveCriticalSection(&SoundEngine_MixerMutex);
|
||||
#else
|
||||
#ifndef _WINDOWS64
|
||||
updateMiles();
|
||||
#else
|
||||
updateMiniAudio();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -709,7 +858,13 @@ void SoundEngine::tick(shared_ptr<Mob> *players, float a)
|
||||
SoundEngine::SoundEngine()
|
||||
{
|
||||
random = new Random();
|
||||
#ifndef _WINDOWS64
|
||||
m_hStream=0;
|
||||
#else
|
||||
memset(&m_engine, 0, sizeof(ma_engine));
|
||||
memset(&m_engineConfig, 0, sizeof(ma_engine_config));
|
||||
m_musicStreamActive = false;
|
||||
#endif
|
||||
m_StreamState=eMusicStreamState_Idle;
|
||||
m_iMusicDelay=0;
|
||||
m_validListenerCount=0;
|
||||
@@ -791,7 +946,7 @@ void SoundEngine::play(int iSound, float x, float y, float z, float volume, floa
|
||||
strcat((char *)szSoundName,SoundName);
|
||||
|
||||
// app.DebugPrintf(6,"PlaySound - %d - %s - %s (%f %f %f, vol %f, pitch %f)\n",iSound, SoundName, szSoundName,x,y,z,volume,pitch);
|
||||
|
||||
#ifndef _WINDOWS64
|
||||
AUDIO_INFO AudioInfo;
|
||||
AudioInfo.x=x;
|
||||
AudioInfo.y=y;
|
||||
@@ -808,6 +963,124 @@ void SoundEngine::play(int iSound, float x, float y, float z, float volume, floa
|
||||
S32 token = AIL_enqueue_event_start();
|
||||
AIL_enqueue_event_buffer(&token, &AudioInfo, sizeof(AUDIO_INFO), 0);
|
||||
AIL_enqueue_event_end_named(token, (char *)szSoundName);
|
||||
#else
|
||||
app.DebugPrintf(6,
|
||||
"PlaySound - %d - %s - %s (%f %f %f, vol %f, pitch %f)\n",
|
||||
iSound, SoundName, szSoundName, x, y, z, volume, pitch);
|
||||
|
||||
char basePath[256];
|
||||
sprintf_s(basePath, "Windows64Media/Sound/%s", (char*)szSoundName);
|
||||
|
||||
char finalPath[256];
|
||||
|
||||
// Check path cache first to avoid expensive filesystem probing
|
||||
auto cacheIt = m_soundPathCache.find(iSound);
|
||||
if (cacheIt != m_soundPathCache.end())
|
||||
{
|
||||
const auto& paths = cacheIt->second;
|
||||
if (paths.empty())
|
||||
return; // previously probed, no files found
|
||||
const std::string& chosen = paths[rand() % paths.size()];
|
||||
sprintf_s(finalPath, "%s", chosen.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
// Cache miss — probe filesystem and store results
|
||||
std::vector<std::string> validPaths;
|
||||
const char* extensions[] = { ".ogg", ".wav", ".mp3" };
|
||||
size_t extCount = sizeof(extensions) / sizeof(extensions[0]);
|
||||
bool found = false;
|
||||
|
||||
// Check base name with each extension (non-numbered)
|
||||
for (size_t extIdx = 0; extIdx < extCount; extIdx++)
|
||||
{
|
||||
char basePlusExt[256];
|
||||
sprintf_s(basePlusExt, "%s%s", basePath, extensions[extIdx]);
|
||||
|
||||
DWORD attr = GetFileAttributesA(basePlusExt);
|
||||
if (attr != INVALID_FILE_ATTRIBUTES && !(attr & FILE_ATTRIBUTE_DIRECTORY))
|
||||
{
|
||||
validPaths.push_back(basePlusExt);
|
||||
found = true;
|
||||
break; // non-numbered: only one base file needed
|
||||
}
|
||||
}
|
||||
|
||||
if (!found)
|
||||
{
|
||||
// Check numbered variants (e.g. sound1.ogg, sound2.ogg, ...)
|
||||
for (size_t extIdx = 0; extIdx < extCount; extIdx++)
|
||||
{
|
||||
for (int i = 1; i < 32; i++)
|
||||
{
|
||||
char numberedPath[256];
|
||||
sprintf_s(numberedPath, "%s%d%s", basePath, i, extensions[extIdx]);
|
||||
|
||||
DWORD attr = GetFileAttributesA(numberedPath);
|
||||
if (attr != INVALID_FILE_ATTRIBUTES && !(attr & FILE_ATTRIBUTE_DIRECTORY))
|
||||
{
|
||||
validPaths.push_back(numberedPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_soundPathCache[iSound] = validPaths;
|
||||
|
||||
if (validPaths.empty())
|
||||
{
|
||||
sprintf_s(finalPath, "%s.wav", basePath); // fallback for debug print
|
||||
}
|
||||
else
|
||||
{
|
||||
const std::string& chosen = validPaths[rand() % validPaths.size()];
|
||||
sprintf_s(finalPath, "%s", chosen.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
MiniAudioSound* s = new MiniAudioSound();
|
||||
memset(&s->info, 0, sizeof(AUDIO_INFO));
|
||||
|
||||
s->info.x = x;
|
||||
s->info.y = y;
|
||||
s->info.z = z;
|
||||
|
||||
s->info.volume = volume;
|
||||
s->info.pitch = pitch;
|
||||
s->info.bIs3D = true;
|
||||
s->info.bUseSoundsPitchVal = false;
|
||||
s->info.iSound = iSound + eSFX_MAX;
|
||||
|
||||
if (ma_sound_init_from_file(
|
||||
&m_engine,
|
||||
finalPath,
|
||||
MA_SOUND_FLAG_DECODE | MA_SOUND_FLAG_ASYNC,
|
||||
NULL,
|
||||
NULL,
|
||||
&s->sound) != MA_SUCCESS)
|
||||
{
|
||||
app.DebugPrintf("Failed to initialize sound from file: %s\n", finalPath);
|
||||
delete s;
|
||||
return;
|
||||
}
|
||||
|
||||
ma_sound_set_spatialization_enabled(&s->sound, MA_TRUE);
|
||||
ma_sound_set_min_distance(&s->sound, SFX_3D_MIN_DISTANCE);
|
||||
ma_sound_set_max_distance(&s->sound, SFX_3D_MAX_DISTANCE);
|
||||
ma_sound_set_rolloff(&s->sound, SFX_3D_ROLLOFF);
|
||||
|
||||
float finalVolume = volume * m_MasterEffectsVolume * SFX_VOLUME_MULTIPLIER;
|
||||
if (finalVolume > SFX_MAX_GAIN)
|
||||
finalVolume = SFX_MAX_GAIN;
|
||||
|
||||
ma_sound_set_volume(&s->sound, finalVolume);
|
||||
ma_sound_set_pitch(&s->sound, pitch);
|
||||
ma_sound_set_position(&s->sound, x, y, z);
|
||||
|
||||
ma_sound_start(&s->sound);
|
||||
|
||||
m_activeSounds.push_back(s);
|
||||
#endif
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////
|
||||
@@ -819,6 +1092,9 @@ void SoundEngine::playUI(int iSound, float volume, float pitch)
|
||||
{
|
||||
U8 szSoundName[256];
|
||||
wstring name;
|
||||
#ifdef _WINDOWS64
|
||||
const char* soundDir;
|
||||
#endif
|
||||
// we have some game sounds played as UI sounds...
|
||||
// Not the best way to do this, but it seems to only be the portal sounds
|
||||
|
||||
@@ -831,6 +1107,9 @@ void SoundEngine::playUI(int iSound, float volume, float pitch)
|
||||
// build the name
|
||||
strcpy((char *)szSoundName,"Minecraft/");
|
||||
name = wchSoundNames[iSound];
|
||||
#ifdef _WINDOWS64
|
||||
soundDir = "Minecraft";
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -841,6 +1120,9 @@ void SoundEngine::playUI(int iSound, float volume, float pitch)
|
||||
// build the name
|
||||
strcpy((char *)szSoundName,"Minecraft/UI/");
|
||||
name = wchUISoundNames[iSound];
|
||||
#ifdef _WINDOWS64
|
||||
soundDir = "Minecraft/UI";
|
||||
#endif
|
||||
}
|
||||
|
||||
char *SoundName = (char *)ConvertSoundPathToName(name);
|
||||
@@ -848,6 +1130,7 @@ void SoundEngine::playUI(int iSound, float volume, float pitch)
|
||||
// app.DebugPrintf("UI: Playing %s, volume %f, pitch %f\n",SoundName,volume,pitch);
|
||||
|
||||
//app.DebugPrintf("PlaySound - %d - %s\n",iSound, SoundName);
|
||||
#ifndef _WINDOWS64
|
||||
|
||||
AUDIO_INFO AudioInfo;
|
||||
memset(&AudioInfo,0,sizeof(AUDIO_INFO));
|
||||
@@ -870,6 +1153,82 @@ void SoundEngine::playUI(int iSound, float volume, float pitch)
|
||||
S32 token = AIL_enqueue_event_start();
|
||||
AIL_enqueue_event_buffer(&token, &AudioInfo, sizeof(AUDIO_INFO), 0);
|
||||
AIL_enqueue_event_end_named(token, (char *)szSoundName);
|
||||
#else
|
||||
char basePath[256];
|
||||
sprintf_s(basePath, "Windows64Media/Sound/%s/%s", soundDir, ConvertSoundPathToName(name));
|
||||
|
||||
char finalPath[256];
|
||||
|
||||
// Check UI sound path cache first
|
||||
auto cacheIt = m_uiSoundPathCache.find(iSound);
|
||||
if (cacheIt != m_uiSoundPathCache.end())
|
||||
{
|
||||
if (cacheIt->second.empty())
|
||||
{
|
||||
app.DebugPrintf("No sound file found for UI sound (cached): %s\n", basePath);
|
||||
return;
|
||||
}
|
||||
sprintf_s(finalPath, "%s", cacheIt->second.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
// Cache miss — probe filesystem and store result
|
||||
const char* extensions[] = { ".ogg", ".wav", ".mp3" };
|
||||
size_t count = sizeof(extensions) / sizeof(extensions[0]);
|
||||
bool found = false;
|
||||
for (size_t i = 0; i < count; i++)
|
||||
{
|
||||
sprintf_s(finalPath, "%s%s", basePath, extensions[i]);
|
||||
if (FileExists(finalPath))
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
{
|
||||
m_uiSoundPathCache[iSound] = ""; // cache negative result
|
||||
app.DebugPrintf("No sound file found for UI sound: %s\n", basePath);
|
||||
return;
|
||||
}
|
||||
m_uiSoundPathCache[iSound] = finalPath;
|
||||
}
|
||||
|
||||
MiniAudioSound* s = new MiniAudioSound();
|
||||
memset(&s->info, 0, sizeof(AUDIO_INFO));
|
||||
|
||||
s->info.volume = volume;
|
||||
s->info.pitch = pitch;
|
||||
s->info.bIs3D = false;
|
||||
s->info.bUseSoundsPitchVal = true;
|
||||
|
||||
if (ma_sound_init_from_file(
|
||||
&m_engine,
|
||||
finalPath,
|
||||
MA_SOUND_FLAG_DECODE | MA_SOUND_FLAG_ASYNC,
|
||||
NULL,
|
||||
NULL,
|
||||
&s->sound) != MA_SUCCESS)
|
||||
{
|
||||
delete s;
|
||||
app.DebugPrintf("ma_sound_init_from_file failed: %s\n", finalPath);
|
||||
return;
|
||||
}
|
||||
|
||||
ma_sound_set_spatialization_enabled(&s->sound, MA_FALSE);
|
||||
|
||||
float finalVolume = volume * m_MasterEffectsVolume;
|
||||
if (finalVolume > 1.0f)
|
||||
finalVolume = 1.0f;
|
||||
printf("UI Sound volume set to %f\nEffects volume: %f\n", finalVolume, m_MasterEffectsVolume);
|
||||
|
||||
ma_sound_set_volume(&s->sound, finalVolume);
|
||||
ma_sound_set_pitch(&s->sound, pitch);
|
||||
|
||||
ma_sound_start(&s->sound);
|
||||
|
||||
m_activeSounds.push_back(s);
|
||||
#endif
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////
|
||||
@@ -1133,12 +1492,42 @@ int SoundEngine::OpenStreamThreadProc( void* lpParameter )
|
||||
return 0;
|
||||
#endif
|
||||
SoundEngine *soundEngine = (SoundEngine *)lpParameter;
|
||||
#ifndef _WINDOWS64
|
||||
soundEngine->m_hStream = AIL_open_stream(soundEngine->m_hDriver,soundEngine->m_szStreamName,0);
|
||||
|
||||
if(soundEngine->m_hStream==0)
|
||||
{
|
||||
app.DebugPrintf("SoundEngine::OpenStreamThreadProc - Could not open - %s\n",soundEngine->m_szStreamName);
|
||||
}
|
||||
#else
|
||||
const char* ext = strrchr(soundEngine->m_szStreamName, '.');
|
||||
|
||||
if (soundEngine->m_musicStreamActive)
|
||||
{
|
||||
ma_sound_stop(&soundEngine->m_musicStream);
|
||||
ma_sound_uninit(&soundEngine->m_musicStream);
|
||||
soundEngine->m_musicStreamActive = false;
|
||||
}
|
||||
|
||||
ma_result result = ma_sound_init_from_file(
|
||||
&soundEngine->m_engine,
|
||||
soundEngine->m_szStreamName,
|
||||
MA_SOUND_FLAG_STREAM,
|
||||
NULL,
|
||||
NULL,
|
||||
&soundEngine->m_musicStream);
|
||||
|
||||
if (result != MA_SUCCESS)
|
||||
{
|
||||
app.DebugPrintf("SoundEngine::OpenStreamThreadProc - Failed to open stream: %s\n", soundEngine->m_szStreamName);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ma_sound_set_spatialization_enabled(&soundEngine->m_musicStream, MA_FALSE);
|
||||
ma_sound_set_looping(&soundEngine->m_musicStream, MA_FALSE);
|
||||
|
||||
soundEngine->m_musicStreamActive = true;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1158,6 +1547,7 @@ void SoundEngine::playMusicTick()
|
||||
// AP - moved to a separate function so it can be called from the mixer callback on Vita
|
||||
void SoundEngine::playMusicUpdate()
|
||||
{
|
||||
#ifndef _WINDOWS64
|
||||
//return;
|
||||
static bool firstCall = true;
|
||||
static float fMusicVol = 0.0f;
|
||||
@@ -1340,10 +1730,150 @@ void SoundEngine::playMusicUpdate()
|
||||
m_openStreamThread->Run();
|
||||
m_StreamState = eMusicStreamState_Opening;
|
||||
}
|
||||
#else
|
||||
static float fMusicVol = 0.0f;
|
||||
fMusicVol = getMasterMusicVolume();
|
||||
|
||||
switch(m_StreamState)
|
||||
{
|
||||
case eMusicStreamState_Idle:
|
||||
|
||||
// start a stream playing
|
||||
if (m_iMusicDelay > 0)
|
||||
{
|
||||
m_iMusicDelay--;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_musicStreamActive)
|
||||
{
|
||||
app.DebugPrintf("WARNING: m_musicStreamActive already true in Idle state, resetting to Playing\n");
|
||||
m_StreamState = eMusicStreamState_Playing;
|
||||
return;
|
||||
}
|
||||
|
||||
if(m_musicID!=-1)
|
||||
{
|
||||
// start playing it
|
||||
strcpy((char *)m_szStreamName,m_szMusicPath);
|
||||
|
||||
// are we using a mash-up pack?
|
||||
//if(pMinecraft && !pMinecraft->skins->isUsingDefaultSkin() && pMinecraft->skins->getSelected()->hasAudio())
|
||||
if(Minecraft::GetInstance()->skins->getSelected()->hasAudio())
|
||||
{
|
||||
// It's a mash-up - need to use the DLC path for the music
|
||||
TexturePack *pTexPack=Minecraft::GetInstance()->skins->getSelected();
|
||||
DLCTexturePack *pDLCTexPack=(DLCTexturePack *)pTexPack;
|
||||
DLCPack *pack = pDLCTexPack->getDLCInfoParentPack();
|
||||
DLCAudioFile *dlcAudioFile = (DLCAudioFile *) pack->getFile(DLCManager::e_DLCType_Audio, 0);
|
||||
|
||||
app.DebugPrintf("Mashup pack \n");
|
||||
|
||||
// build the name
|
||||
|
||||
// if the music ID is beyond the end of the texture pack music files, then it's a CD
|
||||
if(m_musicID<m_iStream_CD_1)
|
||||
{
|
||||
SetIsPlayingStreamingGameMusic(true);
|
||||
SetIsPlayingStreamingCDMusic(false);
|
||||
m_MusicType=eMusicType_Game;
|
||||
m_StreamingAudioInfo.bIs3D=false;
|
||||
|
||||
wstring &wstrSoundName=dlcAudioFile->GetSoundName(m_musicID);
|
||||
char szName[255];
|
||||
wcstombs(szName,wstrSoundName.c_str(),255);
|
||||
|
||||
string strFile="TPACK:\\Data\\" + string(szName) + ".wav";
|
||||
std::string mountedPath = StorageManager.GetMountedPath(strFile);
|
||||
strcpy(m_szStreamName,mountedPath.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIsPlayingStreamingGameMusic(false);
|
||||
SetIsPlayingStreamingCDMusic(true);
|
||||
m_MusicType=eMusicType_CD;
|
||||
m_StreamingAudioInfo.bIs3D=true;
|
||||
|
||||
// Need to adjust to index into the cds in the game's m_szStreamFileA
|
||||
strcat((char *)m_szStreamName,"cds/");
|
||||
strcat((char *)m_szStreamName,m_szStreamFileA[m_musicID-m_iStream_CD_1+eStream_CD_1]);
|
||||
strcat((char *)m_szStreamName,".wav");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_musicID<m_iStream_CD_1)
|
||||
{
|
||||
SetIsPlayingStreamingGameMusic(true);
|
||||
SetIsPlayingStreamingCDMusic(false);
|
||||
m_MusicType=eMusicType_Game;
|
||||
m_StreamingAudioInfo.bIs3D=false;
|
||||
// build the name
|
||||
strcat((char *)m_szStreamName,"music/");
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIsPlayingStreamingGameMusic(false);
|
||||
SetIsPlayingStreamingCDMusic(true);
|
||||
m_MusicType=eMusicType_CD;
|
||||
m_StreamingAudioInfo.bIs3D=true;
|
||||
// build the name
|
||||
strcat((char *)m_szStreamName,"cds/");
|
||||
}
|
||||
strcat((char *)m_szStreamName,m_szStreamFileA[m_musicID]);
|
||||
strcat((char *)m_szStreamName,".wav");
|
||||
}
|
||||
|
||||
FILE* pFile = NULL;
|
||||
|
||||
if (fopen_s(&pFile, reinterpret_cast<char*>(m_szStreamName), "rb") == 0 && pFile)
|
||||
{
|
||||
fclose(pFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
const char* extensions[] = { ".ogg", ".mp3", ".wav" };
|
||||
size_t extCount = sizeof(extensions) / sizeof(extensions[0]);
|
||||
bool found = false;
|
||||
|
||||
char* dotPos = strrchr(reinterpret_cast<char*>(m_szStreamName), '.');
|
||||
if (dotPos != NULL && (dotPos - reinterpret_cast<char*>(m_szStreamName)) < 250)
|
||||
{
|
||||
for (size_t i = 0; i < extCount; i++)
|
||||
{
|
||||
strcpy_s(dotPos, 5, extensions[i]);
|
||||
|
||||
if (fopen_s(&pFile, reinterpret_cast<char*>(m_szStreamName), "rb") == 0 && pFile)
|
||||
{
|
||||
fclose(pFile);
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!found)
|
||||
{
|
||||
if (dotPos != NULL)
|
||||
{
|
||||
strcpy_s(dotPos, 5, ".wav");
|
||||
}
|
||||
app.DebugPrintf("WARNING: No audio file found for music ID %d (tried .ogg, .mp3, .wav)\n", m_musicID);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
app.DebugPrintf("Starting streaming - %s\n",m_szStreamName);
|
||||
m_openStreamThread = new C4JThread(OpenStreamThreadProc, this, "OpenStreamThreadProc");
|
||||
m_openStreamThread->Run();
|
||||
m_StreamState = eMusicStreamState_Opening;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
case eMusicStreamState_Opening:
|
||||
// If the open stream thread is complete, then we are ready to proceed to actually playing
|
||||
#ifndef _WINDOWS64
|
||||
if( !m_openStreamThread->isRunning() )
|
||||
{
|
||||
delete m_openStreamThread;
|
||||
@@ -1409,6 +1939,63 @@ void SoundEngine::playMusicUpdate()
|
||||
|
||||
m_StreamState=eMusicStreamState_Playing;
|
||||
}
|
||||
#else
|
||||
if( !m_openStreamThread->isRunning() )
|
||||
{
|
||||
delete m_openStreamThread;
|
||||
m_openStreamThread = NULL;
|
||||
|
||||
app.DebugPrintf("OpenStreamThreadProc finished. m_musicStreamActive=%d\n", m_musicStreamActive);
|
||||
|
||||
if (!m_musicStreamActive)
|
||||
{
|
||||
const char* currentExt = strrchr(reinterpret_cast<char*>(m_szStreamName), '.');
|
||||
if (currentExt && _stricmp(currentExt, ".wav") == 0)
|
||||
{
|
||||
const bool isCD = (m_musicID >= m_iStream_CD_1);
|
||||
const char* folder = isCD ? "cds/" : "music/";
|
||||
|
||||
int n = sprintf_s(reinterpret_cast<char*>(m_szStreamName), 512, "%s%s%s.wav", m_szMusicPath, folder, m_szStreamFileA[m_musicID]);
|
||||
|
||||
if (n > 0)
|
||||
{
|
||||
FILE* pFile = NULL;
|
||||
if (fopen_s(&pFile, reinterpret_cast<char*>(m_szStreamName), "rb") == 0 && pFile)
|
||||
{
|
||||
fclose(pFile);
|
||||
|
||||
m_openStreamThread = new C4JThread(OpenStreamThreadProc, this, "OpenStreamThreadProc");
|
||||
m_openStreamThread->Run();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_StreamState = eMusicStreamState_Idle;
|
||||
break;
|
||||
}
|
||||
|
||||
if (m_StreamingAudioInfo.bIs3D)
|
||||
{
|
||||
ma_sound_set_spatialization_enabled(&m_musicStream, MA_TRUE);
|
||||
ma_sound_set_position(&m_musicStream, m_StreamingAudioInfo.x, m_StreamingAudioInfo.y, m_StreamingAudioInfo.z);
|
||||
}
|
||||
else
|
||||
{
|
||||
ma_sound_set_spatialization_enabled(&m_musicStream, MA_FALSE);
|
||||
}
|
||||
|
||||
ma_sound_set_pitch(&m_musicStream, m_StreamingAudioInfo.pitch);
|
||||
|
||||
float finalVolume = m_StreamingAudioInfo.volume * getMasterMusicVolume();
|
||||
|
||||
ma_sound_set_volume(&m_musicStream, finalVolume);
|
||||
ma_result startResult = ma_sound_start(&m_musicStream);
|
||||
app.DebugPrintf("ma_sound_start result: %d\n", startResult);
|
||||
|
||||
m_StreamState=eMusicStreamState_Playing;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case eMusicStreamState_OpeningCancel:
|
||||
if( !m_openStreamThread->isRunning() )
|
||||
@@ -1420,18 +2007,46 @@ void SoundEngine::playMusicUpdate()
|
||||
break;
|
||||
case eMusicStreamState_Stop:
|
||||
// should gradually take the volume down in steps
|
||||
#ifndef _WINDOWS64
|
||||
AIL_pause_stream(m_hStream,1);
|
||||
AIL_close_stream(m_hStream);
|
||||
m_hStream=0;
|
||||
SetIsPlayingStreamingCDMusic(false);
|
||||
SetIsPlayingStreamingGameMusic(false);
|
||||
m_StreamState=eMusicStreamState_Idle;
|
||||
#else
|
||||
if (m_musicStreamActive)
|
||||
{
|
||||
ma_sound_stop(&m_musicStream);
|
||||
ma_sound_uninit(&m_musicStream);
|
||||
m_musicStreamActive = false;
|
||||
}
|
||||
|
||||
SetIsPlayingStreamingCDMusic(false);
|
||||
SetIsPlayingStreamingGameMusic(false);
|
||||
|
||||
m_StreamState = eMusicStreamState_Idle;
|
||||
#endif
|
||||
break;
|
||||
case eMusicStreamState_Stopping:
|
||||
break;
|
||||
case eMusicStreamState_Play:
|
||||
break;
|
||||
case eMusicStreamState_Playing:
|
||||
#ifdef _WINDOWS64
|
||||
{
|
||||
static int frameCount = 0;
|
||||
if (frameCount++ % 60 == 0)
|
||||
{
|
||||
if (m_musicStreamActive)
|
||||
{
|
||||
bool isPlaying = ma_sound_is_playing(&m_musicStream);
|
||||
float vol = ma_sound_get_volume(&m_musicStream);
|
||||
bool isAtEnd = ma_sound_at_end(&m_musicStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if(GetIsPlayingStreamingGameMusic())
|
||||
{
|
||||
//if(m_MusicInfo.pCue!=NULL)
|
||||
@@ -1513,6 +2128,7 @@ void SoundEngine::playMusicUpdate()
|
||||
}
|
||||
|
||||
// volume change required?
|
||||
#ifndef _WINDOWS64
|
||||
if(fMusicVol!=getMasterMusicVolume())
|
||||
{
|
||||
fMusicVol=getMasterMusicVolume();
|
||||
@@ -1520,6 +2136,14 @@ void SoundEngine::playMusicUpdate()
|
||||
//AIL_set_sample_3D_position( hSample, m_StreamingAudioInfo.x, m_StreamingAudioInfo.y, m_StreamingAudioInfo.z );
|
||||
AIL_set_sample_volume_levels( hSample, fMusicVol, fMusicVol);
|
||||
}
|
||||
#else
|
||||
if (m_musicStreamActive)
|
||||
{
|
||||
float finalVolume = m_StreamingAudioInfo.volume * fMusicVol;
|
||||
|
||||
ma_sound_set_volume(&m_musicStream, finalVolume);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1527,6 +2151,7 @@ void SoundEngine::playMusicUpdate()
|
||||
// Music disc playing - if it's a 3D stream, then set the position - we don't have any streaming audio in the world that moves, so this isn't
|
||||
// required unless we have more than one listener, and are setting the listening position to the origin and setting a fake position
|
||||
// for the sound down the z axis
|
||||
#ifndef _WINDOWS64
|
||||
if(m_StreamingAudioInfo.bIs3D)
|
||||
{
|
||||
if(m_validListenerCount>1)
|
||||
@@ -1565,6 +2190,40 @@ void SoundEngine::playMusicUpdate()
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (m_StreamingAudioInfo.bIs3D && m_validListenerCount > 1)
|
||||
{
|
||||
int iClosestListener = 0;
|
||||
float fClosestDist = 1e6f;
|
||||
|
||||
for (size_t i = 0; i < MAX_LOCAL_PLAYERS; i++)
|
||||
{
|
||||
if (m_ListenerA[i].bValid)
|
||||
{
|
||||
float dx = m_StreamingAudioInfo.x - m_ListenerA[i].vPosition.x;
|
||||
float dy = m_StreamingAudioInfo.y - m_ListenerA[i].vPosition.y;
|
||||
float dz = m_StreamingAudioInfo.z - m_ListenerA[i].vPosition.z;
|
||||
float dist = sqrtf(dx*dx + dy*dy + dz*dz);
|
||||
|
||||
if (dist < fClosestDist)
|
||||
{
|
||||
fClosestDist = dist;
|
||||
iClosestListener = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
float relX = m_StreamingAudioInfo.x - m_ListenerA[iClosestListener].vPosition.x;
|
||||
float relY = m_StreamingAudioInfo.y - m_ListenerA[iClosestListener].vPosition.y;
|
||||
float relZ = m_StreamingAudioInfo.z - m_ListenerA[iClosestListener].vPosition.z;
|
||||
|
||||
if (m_musicStreamActive)
|
||||
{
|
||||
ma_sound_set_position(&m_musicStream, relX, relY, relZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
break;
|
||||
|
||||
@@ -1616,7 +2275,7 @@ void SoundEngine::playMusicUpdate()
|
||||
}
|
||||
|
||||
// check the status of the stream - this is for when a track completes rather than is stopped by the user action
|
||||
|
||||
#ifndef _WINDOWS64
|
||||
if(m_hStream!=0)
|
||||
{
|
||||
if(AIL_stream_status(m_hStream)==SMP_DONE ) // SMP_DONE
|
||||
@@ -1629,6 +2288,7 @@ void SoundEngine::playMusicUpdate()
|
||||
m_StreamState=eMusicStreamState_Completed;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -1657,7 +2317,7 @@ char *SoundEngine::ConvertSoundPathToName(const wstring& name, bool bConvertSpac
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef _WINDOWS64
|
||||
F32 AILCALLBACK custom_falloff_function (HSAMPLE S,
|
||||
F32 distance,
|
||||
F32 rolloff_factor,
|
||||
@@ -1680,3 +2340,4 @@ F32 AILCALLBACK custom_falloff_function (HSAMPLE S,
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
@@ -3,6 +3,17 @@ class Mob;
|
||||
class Options;
|
||||
using namespace std;
|
||||
#include "..\..\Minecraft.World\SoundTypes.h"
|
||||
#ifdef _WINDOWS64
|
||||
#include "miniaudio.h"
|
||||
#include <unordered_map>
|
||||
#include <string>
|
||||
|
||||
const float SFX_3D_MIN_DISTANCE = 1.0f;
|
||||
const float SFX_3D_MAX_DISTANCE = 16.0f;
|
||||
const float SFX_3D_ROLLOFF = 0.5f;
|
||||
const float SFX_VOLUME_MULTIPLIER = 1.5f;
|
||||
const float SFX_MAX_GAIN = 1.5f;
|
||||
#endif
|
||||
|
||||
enum eMUSICFILES
|
||||
{
|
||||
@@ -76,7 +87,11 @@ enum MUSIC_STREAMSTATE
|
||||
|
||||
typedef struct
|
||||
{
|
||||
F32 x,y,z,volume,pitch;
|
||||
#ifndef _WINDOWS64
|
||||
F32 x, y, z, volume, pitch;
|
||||
#else
|
||||
float x, y, z, volume, pitch;
|
||||
#endif
|
||||
int iSound;
|
||||
bool bIs3D;
|
||||
bool bUseSoundsPitchVal;
|
||||
@@ -86,6 +101,17 @@ typedef struct
|
||||
}
|
||||
AUDIO_INFO;
|
||||
|
||||
#ifdef _WINDOWS64
|
||||
struct MiniAudioSound
|
||||
{
|
||||
ma_sound sound;
|
||||
AUDIO_INFO info;
|
||||
bool active;
|
||||
};
|
||||
|
||||
extern std::vector<MiniAudioSound*> m_activeSounds;
|
||||
#endif
|
||||
|
||||
class SoundEngine : public ConsoleSoundEngine
|
||||
{
|
||||
static const int MAX_SAME_SOUNDS_PLAYING = 8; // 4J added
|
||||
@@ -112,7 +138,11 @@ public:
|
||||
int getMusicID(int iDomain);
|
||||
int getMusicID(const wstring& name);
|
||||
void SetStreamingSounds(int iOverworldMin, int iOverWorldMax, int iNetherMin, int iNetherMax, int iEndMin, int iEndMax, int iCD1);
|
||||
void updateMiles(); // AP added so Vita can update all the Miles functions during the mixer callback
|
||||
#ifdef _WINDOWS64
|
||||
void updateMiniAudio();
|
||||
#else
|
||||
void updateMiles(); // AP added so Vita can update all the Miles functions during the mixer callback
|
||||
#endif
|
||||
void playMusicUpdate();
|
||||
|
||||
private:
|
||||
@@ -126,9 +156,18 @@ private:
|
||||
|
||||
int GetRandomishTrack(int iStart,int iEnd);
|
||||
|
||||
#ifdef _WINDOWS64
|
||||
ma_engine m_engine;
|
||||
ma_engine_config m_engineConfig;
|
||||
ma_sound m_musicStream;
|
||||
bool m_musicStreamActive;
|
||||
std::unordered_map<int, std::vector<std::string>> m_soundPathCache;
|
||||
std::unordered_map<int, std::string> m_uiSoundPathCache;
|
||||
#else
|
||||
HMSOUNDBANK m_hBank;
|
||||
HDIGDRIVER m_hDriver;
|
||||
HSTREAM m_hStream;
|
||||
#endif
|
||||
|
||||
static char m_szSoundPath[];
|
||||
static char m_szMusicPath[];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,62 @@
|
||||
#include "stdafx.h"
|
||||
#include "Filesystem.h"
|
||||
|
||||
#ifdef _WINDOWS64
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
bool FileOrDirectoryExists(const char* path)
|
||||
{
|
||||
#ifdef _WINDOWS64
|
||||
DWORD attribs = GetFileAttributesA(path);
|
||||
return (attribs != INVALID_FILE_ATTRIBUTES);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool FileExists(const char* path)
|
||||
{
|
||||
#ifdef _WINDOWS64
|
||||
DWORD attribs = GetFileAttributesA(path);
|
||||
return (attribs != INVALID_FILE_ATTRIBUTES && !(attribs & FILE_ATTRIBUTE_DIRECTORY));
|
||||
#endif
|
||||
}
|
||||
|
||||
bool DirectoryExists(const char* path)
|
||||
{
|
||||
#ifdef _WINDOWS64
|
||||
DWORD attribs = GetFileAttributesA(path);
|
||||
return (attribs != INVALID_FILE_ATTRIBUTES && (attribs & FILE_ATTRIBUTE_DIRECTORY));
|
||||
#endif
|
||||
}
|
||||
|
||||
bool GetFirstFileInDirectory(const char* directory, char* outFilePath, size_t outFilePathSize)
|
||||
{
|
||||
#ifdef _WINDOWS64
|
||||
char searchPath[MAX_PATH];
|
||||
printf(searchPath, MAX_PATH, "%s\\*", directory);
|
||||
|
||||
WIN32_FIND_DATAA findData;
|
||||
HANDLE hFind = FindFirstFileA(searchPath, &findData);
|
||||
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
if (!(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
{
|
||||
// Found a file, copy its path to the output buffer
|
||||
printf(outFilePath, outFilePathSize, "%s\\%s", directory, findData.cFileName);
|
||||
FindClose(hFind);
|
||||
return true;
|
||||
}
|
||||
} while (FindNextFileA(hFind, &findData) != 0);
|
||||
|
||||
FindClose(hFind);
|
||||
return false; // No files found in the directory
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
bool FileOrDirectoryExists(const char* path);
|
||||
bool FileExists(const char* path);
|
||||
bool DirectoryExists(const char* path);
|
||||
bool GetFirstFileInDirectory(const char* directory, char* outFilePath, size_t outFilePathSize);
|
||||
#pragma once
|
||||
@@ -9,7 +9,7 @@ const wstring LeaderboardManager::filterNames[eNumFilterModes] =
|
||||
L"Friends", L"MyScore", L"TopRank"
|
||||
};
|
||||
|
||||
#if !defined(_WINDOWS64) && !defined(_DURANGO) && !defined(__ORBIS__) && !defined(__PS3__) && !defined(__PSVITA__) && !defined(_XBOX)
|
||||
#if !defined(_DURANGO) && !defined(_WINDOWS64) && !defined(_XBOX) && !defined(__ORBIS__) // str1k3r - some platforms complain about this, also this wasnt in the leak?
|
||||
LeaderboardManager *LeaderboardManager::m_instance = NULL;
|
||||
#endif
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -20,7 +20,7 @@ foreach ($dir in $directories) {
|
||||
}
|
||||
|
||||
$folderCopies = @(
|
||||
@{ Source = "music"; Dest = "PS4_GAME\music" },
|
||||
@{ Source = "music\Miles"; Dest = "PS4_GAME\music" },
|
||||
@{ Source = "Common\Media"; Dest = "PS4_GAME\Common\Media" },
|
||||
@{ Source = "Common\res"; Dest = "PS4_GAME\Common\res" },
|
||||
@{ Source = "PSVita\Tutorial"; Dest = "PS4_GAME\Common\Tutorial" },
|
||||
|
||||
@@ -19,7 +19,7 @@ foreach ($dir in $directories) {
|
||||
}
|
||||
|
||||
$folderCopies = @(
|
||||
@{ Source = "music"; Dest = "PS3_GAME\USRDIR\music" },
|
||||
@{ Source = "music\Miles"; Dest = "PS3_GAME\USRDIR\music" },
|
||||
@{ Source = "Common\Media"; Dest = "PS3_GAME\USRDIR\Common\Media" },
|
||||
@{ Source = "Common\res"; Dest = "PS3_GAME\USRDIR\Common\res" },
|
||||
@{ Source = "PS3Media\DLC"; Dest = "PS3_GAME\USRDIR\DLC" },
|
||||
|
||||
@@ -19,7 +19,7 @@ foreach ($dir in $directories) {
|
||||
}
|
||||
|
||||
$folderCopies = @(
|
||||
@{ Source = "music"; Dest = "PSVITA_GAME\music" },
|
||||
@{ Source = "music\Miles"; Dest = "PSVITA_GAME\music" },
|
||||
@{ Source = "Common\Media"; Dest = "PSVITA_GAME\Common\Media" },
|
||||
@{ Source = "Common\res"; Dest = "PSVITA_GAME\Common\res" },
|
||||
@{ Source = "PSVita\Sound"; Dest = "PSVITA_GAME\Sound" },
|
||||
|
||||
@@ -21,12 +21,10 @@ foreach ($dir in $directories) {
|
||||
$folderCopies = @(
|
||||
@{ Source = "Common\Media"; Dest = "Common\Media" },
|
||||
@{ Source = "Common\res"; Dest = "Common\res" },
|
||||
@{ Source = "DurangoMedia"; Dest = "Windows64Media" },
|
||||
@{ Source = "Windows64Media"; Dest = "Windows64Media" },
|
||||
@{ Source = "PSVita\Tutorial"; Dest = "Windows64Media\Tutorial" },
|
||||
@{ Source = "Windows64Media\music"; Dest = "Windows64Media\music" },
|
||||
@{ Source = "music\Miniaudio"; Dest = "music" },
|
||||
@{ Source = "Windows64Media\DLC"; Dest = "Windows64Media\DLC" },
|
||||
@{ Source = "Windows64Media\Sound"; Dest = "Windows64Media\Sound" },
|
||||
@{ Source = "Common\Postbuilds\Contents\Windows64\redist64"; Dest = "redist64" }
|
||||
@{ Source = "PSVita\Tutorial"; Dest = "Windows64Media\Tutorial" }
|
||||
)
|
||||
|
||||
foreach ($copy in $folderCopies) {
|
||||
@@ -39,9 +37,7 @@ foreach ($copy in $folderCopies) {
|
||||
}
|
||||
|
||||
$fileCopies = @(
|
||||
@{ Source = "Common\Postbuilds\Contents\Windows64\Effects.msscmp"; Dest = "Effects.msscmp" },
|
||||
@{ Source = "Common\Postbuilds\Contents\Windows64\iggy_w64.dll"; Dest = "iggy_w64.dll" },
|
||||
@{ Source = "Common\Postbuilds\Contents\Windows64\mss64.dll"; Dest = "mss64.dll" }
|
||||
@{ Source = "Common\Postbuilds\Contents\Windows64\iggy_w64.dll"; Dest = "iggy_w64.dll" }
|
||||
)
|
||||
|
||||
foreach ($copy in $fileCopies) {
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 154 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 57 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 27 KiB |
@@ -1447,7 +1447,7 @@ if not exist "$(TargetDir)\savedata" mkdir "$(TargetDir)\savedata"</Command>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
|
||||
<AdditionalDependencies>d3d11.lib;..\Minecraft.World\x64_Debug\Minecraft.World.lib;%(AdditionalDependencies);XInput9_1_0.lib;..\Minecraft.Client\Windows64\Miles\Lib\mss64.lib;wsock32.lib</AdditionalDependencies>
|
||||
<AdditionalDependencies>d3d11.lib;..\Minecraft.World\x64_Debug\Minecraft.World.lib;%(AdditionalDependencies);XInput9_1_0.lib;wsock32.lib</AdditionalDependencies>
|
||||
<ShowProgress>NotSet</ShowProgress>
|
||||
<SuppressStartupBanner>false</SuppressStartupBanner>
|
||||
</Link>
|
||||
@@ -4971,8 +4971,6 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman
|
||||
<ClInclude Include="BubbleParticle.h" />
|
||||
<ClInclude Include="BufferedImage.h" />
|
||||
<ClInclude Include="Button.h" />
|
||||
<ClInclude Include="Cafe\WiiU_App.h" />
|
||||
<ClInclude Include="Cafe\WiiU_Minecraft.h" />
|
||||
<ClInclude Include="Camera.h" />
|
||||
<ClInclude Include="CaveSpiderRenderer.h" />
|
||||
<ClInclude Include="ChatScreen.h" />
|
||||
@@ -4998,7 +4996,67 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman
|
||||
<ClInclude Include="Common\App_enums.h" />
|
||||
<ClInclude Include="Common\App_structs.h" />
|
||||
<ClInclude Include="Common\Audio\Consoles_SoundEngine.h" />
|
||||
<ClInclude Include="Common\Audio\miniaudio.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|Xbox 360'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\Audio\SoundEngine.h" />
|
||||
<ClInclude Include="Common\Audio\stb_vorbis.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|Xbox 360'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\BuildVer.h" />
|
||||
<ClInclude Include="Common\Colours\ColourTable.h" />
|
||||
<ClInclude Include="Common\Consoles_App.h" />
|
||||
@@ -5015,6 +5073,36 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman
|
||||
<ClInclude Include="Common\DLC\DLCSkinFile.h" />
|
||||
<ClInclude Include="Common\DLC\DLCTextureFile.h" />
|
||||
<ClInclude Include="Common\DLC\DLCUIDataFile.h" />
|
||||
<ClInclude Include="Common\Filesystem\Filesystem.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|Xbox 360'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\GameRules\AddEnchantmentRuleDefinition.h" />
|
||||
<ClInclude Include="Common\GameRules\AddItemRuleDefinition.h" />
|
||||
<ClInclude Include="Common\GameRules\ApplySchematicRuleDefinition.h" />
|
||||
@@ -19021,40 +19109,6 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|ORBIS'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Windows64\Miles\include\mss.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Windows64\Miles\include\rrcore.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Windows64\Minecraft_Macros.h">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|Durango'">true</ExcludedFromBuild>
|
||||
@@ -25117,8 +25171,6 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman
|
||||
<ClCompile Include="BubbleParticle.cpp" />
|
||||
<ClCompile Include="BufferedImage.cpp" />
|
||||
<ClCompile Include="Button.cpp" />
|
||||
<ClCompile Include="Cafe\WiiU_App.cpp" />
|
||||
<ClCompile Include="Cafe\WiiU_Minecraft.cpp" />
|
||||
<ClCompile Include="Camera.cpp" />
|
||||
<ClCompile Include="CaveSpiderRenderer.cpp" />
|
||||
<ClCompile Include="ChatScreen.cpp" />
|
||||
@@ -25181,6 +25233,36 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman
|
||||
<ClCompile Include="Common\DLC\DLCSkinFile.cpp" />
|
||||
<ClCompile Include="Common\DLC\DLCTextureFile.cpp" />
|
||||
<ClCompile Include="Common\DLC\DLCUIDataFile.cpp" />
|
||||
<ClCompile Include="Common\Filesystem\Filesystem.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|Xbox 360'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\GameRules\AddEnchantmentRuleDefinition.cpp" />
|
||||
<ClCompile Include="Common\GameRules\AddItemRuleDefinition.cpp" />
|
||||
<ClCompile Include="Common\GameRules\ApplySchematicRuleDefinition.cpp" />
|
||||
@@ -40493,12 +40575,42 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman
|
||||
</Library>
|
||||
<Library Include="PSVita\4JLibs\libs\libSceNpToolkitUtils_rtti.a">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|x64'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="PSVita\4JLibs\libs\libSceNpToolkitUtils_rtti_dbg.a">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|x64'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="PSVita\4JLibs\libs\libSceNpToolkitUtils_rtti_dbg.a" />
|
||||
<Library Include="PSVita\4JLibs\libs\libSceNpToolkit_rtti.a">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|x64'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="PSVita\4JLibs\libs\libSceNpToolkit_rtti_dbg.a">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|x64'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="PSVita\4JLibs\libs\libSceNpToolkit_rtti_dbg.a" />
|
||||
<Library Include="PSVita\Iggy\lib\libiggyperfmon_psp2.a">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|Durango'">true</ExcludedFromBuild>
|
||||
@@ -40587,10 +40699,42 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|Xbox 360'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="PSVita\Miles\lib\binkapsp2.a" />
|
||||
<Library Include="PSVita\Miles\lib\fltpsp2.a" />
|
||||
<Library Include="PSVita\Miles\lib\msspsp2.a" />
|
||||
<Library Include="PSVita\Miles\lib\msspsp2midi.a" />
|
||||
<Library Include="PSVita\Miles\lib\binkapsp2.a">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|x64'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="PSVita\Miles\lib\fltpsp2.a">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|x64'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="PSVita\Miles\lib\msspsp2.a">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|x64'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="PSVita\Miles\lib\msspsp2midi.a">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_NO_TU|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseForArt|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|x64'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="Windows64\4JLibs\libs\4J_Input.lib">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='CONTENTPACKAGE_SYMBOLS|Durango'">true</ExcludedFromBuild>
|
||||
@@ -40951,23 +41095,6 @@ xcopy /q /y /i /s /e $(ProjectDir)Durango\CU $(LayoutDir)Image\Loose\CU</Comman
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Xbox 360'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="Windows64\Miles\lib\mss64.lib">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Durango'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PS3'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|PSVita'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage_Vita|Xbox 360'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">true</ExcludedFromBuild>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Input.lib">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ContentPackage|Win32'">true</ExcludedFromBuild>
|
||||
|
||||
@@ -726,9 +726,6 @@
|
||||
<Filter Include="net\minecraft\client\resources">
|
||||
<UniqueIdentifier>{889a84db-3009-4a7c-8234-4bf93d412690}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Cafe">
|
||||
<UniqueIdentifier>{0956a505-3070-4d85-b25b-8731cee48587}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
@@ -2449,12 +2446,6 @@
|
||||
<ClInclude Include="VillagerGolemRenderer.h">
|
||||
<Filter>net\minecraft\client\renderer\entity</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Windows64\Miles\include\mss.h">
|
||||
<Filter>Windows64\Miles Sound System\Include</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Windows64\Miles\include\rrcore.h">
|
||||
<Filter>Windows64\Miles Sound System\Include</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Orbis\Miles\include\mss.h">
|
||||
<Filter>Orbis\Miles Sound System\include</Filter>
|
||||
</ClInclude>
|
||||
@@ -3778,11 +3769,14 @@
|
||||
<ClInclude Include="PSVita\OldSdk.h">
|
||||
<Filter>PSVita</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Cafe\WiiU_App.h">
|
||||
<Filter>Cafe</Filter>
|
||||
<ClInclude Include="Common\Filesystem\Filesystem.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Cafe\WiiU_Minecraft.h">
|
||||
<Filter>Cafe</Filter>
|
||||
<ClInclude Include="Common\Audio\miniaudio.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\Audio\stb_vorbis.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -5928,11 +5922,8 @@
|
||||
<ClCompile Include="PSVita\OldSdk.cpp">
|
||||
<Filter>PSVita</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Cafe\WiiU_App.cpp">
|
||||
<Filter>Cafe</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Cafe\WiiU_Minecraft.cpp">
|
||||
<Filter>Cafe</Filter>
|
||||
<ClCompile Include="Common\Filesystem\Filesystem.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -5993,9 +5984,6 @@
|
||||
<Library Include="Windows64\4JLibs\libs\4J_Input_d.lib">
|
||||
<Filter>Windows64\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Windows64\Miles\lib\mss64.lib">
|
||||
<Filter>Windows64\Miles Sound System\lib</Filter>
|
||||
</Library>
|
||||
<Library Include="Windows64\Iggy\lib\iggy_w64.lib">
|
||||
<Filter>Windows64\Iggy\lib</Filter>
|
||||
</Library>
|
||||
|
||||
@@ -116,7 +116,11 @@ void Options::init()
|
||||
bobView = true;
|
||||
anaglyph3d = false;
|
||||
advancedOpengl = false;
|
||||
#ifdef _WINDOWS64
|
||||
framerateLimit = 0;
|
||||
#else
|
||||
framerateLimit = 2;
|
||||
#endif
|
||||
fancyGraphics = true;
|
||||
ambientOcclusion = true;
|
||||
renderClouds = true;
|
||||
|
||||
@@ -832,7 +832,7 @@ void Tesselator::vertex(float x, float y, float z)
|
||||
pShortData[5] = (((int)(v * 8192.0f))&0xffff);
|
||||
int16_t u2 = ((int16_t*)&_tex2)[0];
|
||||
int16_t v2 = ((int16_t*)&_tex2)[1];
|
||||
#if defined _XBOX_ONE || defined __ORBIS__ || defined _WINDOWS64
|
||||
#if defined _XBOX_ONE || defined __ORBIS__
|
||||
// Optimisation - pack the second UVs into a single short (they could actually go in a byte), which frees up a short to store the x offset for this chunk in the vertex itself.
|
||||
// This means that when rendering chunks, we don't need to update the vertex constants that specify the location for a chunk, when only the x offset has changed.
|
||||
pShortData[6] = ( u2 << 8 ) | v2;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,36 +0,0 @@
|
||||
// This is the null header file used to remove Telemetry calls.
|
||||
|
||||
#define TMERR_DISABLED 1
|
||||
|
||||
#define tmTick(...)
|
||||
#define tmPause(...)
|
||||
#define tmEnter(...)
|
||||
#define tmLeave(...)
|
||||
#define tmThreadName(...) TMERR_DISABLED
|
||||
#define tmMutexName(...) TMERR_DISABLED
|
||||
#define tmTryLock(...) TMERR_DISABLED
|
||||
#define tmEndTryLock(...)
|
||||
#define tmSetMutexState(...)
|
||||
#define tmAlloc(...)
|
||||
#define tmRealloc(...)
|
||||
#define tmFree(...)
|
||||
#define tmPlot(...)
|
||||
#define tmBlob(...) TMERR_DISABLED
|
||||
#define tmBlobEx(...) TMERR_DISABLED
|
||||
#define tmMessage(...)
|
||||
#define tmEmitAccumulationZones(...) TMERR_DISABLED
|
||||
#define tmEnterAccumulationZone(...) TMERR_DISABLED
|
||||
#define tmLeaveAccumulationZone(...) TMERR_DISABLED
|
||||
#define tmZone(...)
|
||||
#define tmSetLockState(...)
|
||||
#define tmLockName(...)
|
||||
#define tmSendCallStack(...)
|
||||
#define tmAllocEx(...)
|
||||
|
||||
#define NTELEMETRY 1
|
||||
|
||||
#define TM_CONTEXT_LITE(val) ((char*)(val))
|
||||
#define TM_CONTEXT_FULL(val) ((char*)(val))
|
||||
|
||||
typedef char *HTELEMETRY;
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user