ALL: Synced with ScummVM
This commit is contained in:
parent
d4b7b14c09
commit
2fadf2e466
77 changed files with 2030 additions and 1020 deletions
|
@ -46,6 +46,16 @@ namespace Audio {
|
|||
*/
|
||||
#define INTERMEDIATE_BUFFER_SIZE 512
|
||||
|
||||
/**
|
||||
* The default fractional type in frac.h (with 16 fractional bits) limits
|
||||
* the rate conversion code to 65536Hz audio: we need to able to handle
|
||||
* 96kHz audio, so we use fewer fractional bits in this code.
|
||||
*/
|
||||
enum {
|
||||
FRAC_BITS_LOW = 15,
|
||||
FRAC_ONE_LOW = (1L << FRAC_BITS_LOW),
|
||||
FRAC_HALF_LOW = (1L << (FRAC_BITS_LOW-1))
|
||||
};
|
||||
|
||||
/**
|
||||
* Audio rate converter based on simple resampling. Used when no
|
||||
|
@ -187,18 +197,18 @@ public:
|
|||
*/
|
||||
template<bool stereo, bool reverseStereo>
|
||||
LinearRateConverter<stereo, reverseStereo>::LinearRateConverter(st_rate_t inrate, st_rate_t outrate) {
|
||||
if (inrate >= 65536 || outrate >= 65536) {
|
||||
error("rate effect can only handle rates < 65536");
|
||||
if (inrate >= 131072 || outrate >= 131072) {
|
||||
error("rate effect can only handle rates < 131072");
|
||||
}
|
||||
|
||||
opos = FRAC_ONE;
|
||||
opos = FRAC_ONE_LOW;
|
||||
|
||||
// Compute the linear interpolation increment.
|
||||
// This will overflow if inrate >= 2^16, and underflow if outrate >= 2^16.
|
||||
// This will overflow if inrate >= 2^17, and underflow if outrate >= 2^17.
|
||||
// Also, if the quotient of the two rate becomes too small / too big, that
|
||||
// would cause problems, but since we rarely scale from 1 to 65536 Hz or vice
|
||||
// versa, I think we can live with that limitation ;-).
|
||||
opos_inc = (inrate << FRAC_BITS) / outrate;
|
||||
opos_inc = (inrate << FRAC_BITS_LOW) / outrate;
|
||||
|
||||
ilast0 = ilast1 = 0;
|
||||
icur0 = icur1 = 0;
|
||||
|
@ -220,7 +230,7 @@ int LinearRateConverter<stereo, reverseStereo>::flow(AudioStream &input, st_samp
|
|||
while (obuf < oend) {
|
||||
|
||||
// read enough input samples so that opos < 0
|
||||
while ((frac_t)FRAC_ONE <= opos) {
|
||||
while ((frac_t)FRAC_ONE_LOW <= opos) {
|
||||
// Check if we have to refill the buffer
|
||||
if (inLen == 0) {
|
||||
inPtr = inBuf;
|
||||
|
@ -235,17 +245,17 @@ int LinearRateConverter<stereo, reverseStereo>::flow(AudioStream &input, st_samp
|
|||
ilast1 = icur1;
|
||||
icur1 = *inPtr++;
|
||||
}
|
||||
opos -= FRAC_ONE;
|
||||
opos -= FRAC_ONE_LOW;
|
||||
}
|
||||
|
||||
// Loop as long as the outpos trails behind, and as long as there is
|
||||
// still space in the output buffer.
|
||||
while (opos < (frac_t)FRAC_ONE && obuf < oend) {
|
||||
while (opos < (frac_t)FRAC_ONE_LOW && obuf < oend) {
|
||||
// interpolate
|
||||
st_sample_t out0, out1;
|
||||
out0 = (st_sample_t)(ilast0 + (((icur0 - ilast0) * opos + FRAC_HALF) >> FRAC_BITS));
|
||||
out0 = (st_sample_t)(ilast0 + (((icur0 - ilast0) * opos + FRAC_HALF_LOW) >> FRAC_BITS_LOW));
|
||||
out1 = (stereo ?
|
||||
(st_sample_t)(ilast1 + (((icur1 - ilast1) * opos + FRAC_HALF) >> FRAC_BITS)) :
|
||||
(st_sample_t)(ilast1 + (((icur1 - ilast1) * opos + FRAC_HALF_LOW) >> FRAC_BITS_LOW)) :
|
||||
out0);
|
||||
|
||||
// output left channel
|
||||
|
@ -333,7 +343,7 @@ public:
|
|||
template<bool stereo, bool reverseStereo>
|
||||
RateConverter *makeRateConverter(st_rate_t inrate, st_rate_t outrate) {
|
||||
if (inrate != outrate) {
|
||||
if ((inrate % outrate) == 0) {
|
||||
if ((inrate % outrate) == 0 && (inrate < 65536)) {
|
||||
return new SimpleRateConverter<stereo, reverseStereo>(inrate, outrate);
|
||||
} else {
|
||||
return new LinearRateConverter<stereo, reverseStereo>(inrate, outrate);
|
||||
|
|
|
@ -68,6 +68,16 @@ namespace Audio {
|
|||
*/
|
||||
#define INTERMEDIATE_BUFFER_SIZE 512
|
||||
|
||||
/**
|
||||
* The default fractional type in frac.h (with 16 fractional bits) limits
|
||||
* the rate conversion code to 65536Hz audio: we need to able to handle
|
||||
* 96kHz audio, so we use fewer fractional bits in this code.
|
||||
*/
|
||||
enum {
|
||||
FRAC_BITS_LOW = 15,
|
||||
FRAC_ONE_LOW = (1L << FRAC_BITS_LOW),
|
||||
FRAC_HALF_LOW = (1L << (FRAC_BITS_LOW-1))
|
||||
};
|
||||
|
||||
/**
|
||||
* Audio rate converter based on simple resampling. Used when no
|
||||
|
@ -287,17 +297,18 @@ LinearRateConverter<stereo, reverseStereo>::LinearRateConverter(st_rate_t inrate
|
|||
error("Input and Output rates must be different to use rate effect");
|
||||
}
|
||||
|
||||
if (inrate >= 65536 || outrate >= 65536) {
|
||||
error("rate effect can only handle rates < 65536");
|
||||
if (inrate >= 131072 || outrate >= 131072) {
|
||||
error("rate effect can only handle rates < 131072");
|
||||
}
|
||||
|
||||
lr.opos = FRAC_ONE;
|
||||
lr.opos = FRAC_ONE_LOW;
|
||||
|
||||
/* increment */
|
||||
incr = (inrate << FRAC_BITS) / outrate;
|
||||
incr = (inrate << FRAC_BITS_LOW) / outrate;
|
||||
|
||||
lr.opos_inc = incr;
|
||||
|
||||
// FIXME: Does 32768 here need changing to 65536 or 0? Compare to rate.cpp code...
|
||||
lr.ilast[0] = lr.ilast[1] = 32768;
|
||||
lr.icur[0] = lr.icur[1] = 0;
|
||||
|
||||
|
@ -438,7 +449,7 @@ public:
|
|||
*/
|
||||
RateConverter *makeRateConverter(st_rate_t inrate, st_rate_t outrate, bool stereo, bool reverseStereo) {
|
||||
if (inrate != outrate) {
|
||||
if ((inrate % outrate) == 0) {
|
||||
if ((inrate % outrate) == 0 && (inrate < 65536)) {
|
||||
if (stereo) {
|
||||
if (reverseStereo)
|
||||
return new SimpleRateConverter<true, true>(inrate, outrate);
|
||||
|
|
|
@ -441,17 +441,17 @@ LinearRate_M_part2:
|
|||
|
||||
LDRSH r4, [r3] @ r4 = obuf[0]
|
||||
LDRSH r5, [r3,#2] @ r5 = obuf[1]
|
||||
MOV r6, r6, ASR #16 @ r6 = tmp0 = tmp1 >>= 16
|
||||
MOV r6, r6, ASR #15 @ r6 = tmp0 = tmp1 >>= 15
|
||||
MUL r7, r12,r6 @ r7 = tmp0*vol_l
|
||||
MUL r6, r14,r6 @ r6 = tmp1*vol_r
|
||||
|
||||
ADDS r7, r7, r4, LSL #16 @ r7 = obuf[0]<<16 + tmp0*vol_l
|
||||
ADDS r7, r7, r4, LSL #15 @ r7 = obuf[0]<<15 + tmp0*vol_l
|
||||
RSCVS r7, r10, #0x80000000 @ Clamp r7
|
||||
ADDS r6, r6, r5, LSL #16 @ r6 = obuf[1]<<16 + tmp1*vol_r
|
||||
ADDS r6, r6, r5, LSL #15 @ r6 = obuf[1]<<15 + tmp1*vol_r
|
||||
RSCVS r6, r10, #0x80000000 @ Clamp r6
|
||||
|
||||
MOV r7, r7, LSR #16 @ Shift back to halfword
|
||||
MOV r6, r6, LSR #16 @ Shift back to halfword
|
||||
MOV r7, r7, LSR #15 @ Shift back to halfword
|
||||
MOV r6, r6, LSR #15 @ Shift back to halfword
|
||||
|
||||
LDR r5, [r2,#12] @ r5 = opos_inc
|
||||
STRH r7, [r3],#2 @ Store output value
|
||||
|
@ -538,23 +538,23 @@ LinearRate_S_part2:
|
|||
LDR r7, [r2,#24] @ r7 = ilast[1]<<16 + 32768
|
||||
LDRSH r5, [r2,#18] @ r5 = icur[1]
|
||||
LDRSH r10,[r3] @ r10= obuf[0]
|
||||
MOV r6, r6, ASR #16 @ r6 = tmp1 >>= 16
|
||||
MOV r6, r6, ASR #15 @ r6 = tmp1 >>= 15
|
||||
SUB r5, r5, r7, ASR #16 @ r5 = icur[1] - ilast[1]
|
||||
MLA r7, r4, r5, r7 @ r7 = (icur[1]-ilast[1])*opos_frac+ilast[1]
|
||||
|
||||
LDRSH r5, [r3,#2] @ r5 = obuf[1]
|
||||
MOV r7, r7, ASR #16 @ r7 = tmp0 >>= 16
|
||||
MOV r7, r7, ASR #15 @ r7 = tmp0 >>= 15
|
||||
MUL r7, r12,r7 @ r7 = tmp0*vol_l
|
||||
MUL r6, r14,r6 @ r6 = tmp1*vol_r
|
||||
|
||||
ADDS r7, r7, r10, LSL #16 @ r7 = obuf[0]<<16 + tmp0*vol_l
|
||||
ADDS r7, r7, r10, LSL #15 @ r7 = obuf[0]<<15 + tmp0*vol_l
|
||||
MOV r4, #0
|
||||
RSCVS r7, r4, #0x80000000 @ Clamp r7
|
||||
ADDS r6, r6, r5, LSL #16 @ r6 = obuf[1]<<16 + tmp1*vol_r
|
||||
ADDS r6, r6, r5, LSL #15 @ r6 = obuf[1]<<15 + tmp1*vol_r
|
||||
RSCVS r6, r4, #0x80000000 @ Clamp r6
|
||||
|
||||
MOV r7, r7, LSR #16 @ Shift back to halfword
|
||||
MOV r6, r6, LSR #16 @ Shift back to halfword
|
||||
MOV r7, r7, LSR #15 @ Shift back to halfword
|
||||
MOV r6, r6, LSR #15 @ Shift back to halfword
|
||||
|
||||
LDR r5, [r2,#12] @ r5 = opos_inc
|
||||
STRH r7, [r3],#2 @ Store output value
|
||||
|
@ -641,23 +641,23 @@ LinearRate_R_part2:
|
|||
LDR r7, [r2,#24] @ r7 = ilast[1]<<16 + 32768
|
||||
LDRSH r5, [r2,#18] @ r5 = icur[1]
|
||||
LDRSH r10,[r3,#2] @ r10= obuf[1]
|
||||
MOV r6, r6, ASR #16 @ r6 = tmp1 >>= 16
|
||||
MOV r6, r6, ASR #15 @ r6 = tmp1 >>= 15
|
||||
SUB r5, r5, r7, ASR #16 @ r5 = icur[1] - ilast[1]
|
||||
MLA r7, r4, r5, r7 @ r7 = (icur[1]-ilast[1])*opos_frac+ilast[1]
|
||||
|
||||
LDRSH r5, [r3] @ r5 = obuf[0]
|
||||
MOV r7, r7, ASR #16 @ r7 = tmp0 >>= 16
|
||||
MOV r7, r7, ASR #15 @ r7 = tmp0 >>= 15
|
||||
MUL r7, r12,r7 @ r7 = tmp0*vol_l
|
||||
MUL r6, r14,r6 @ r6 = tmp1*vol_r
|
||||
|
||||
ADDS r7, r7, r10, LSL #16 @ r7 = obuf[1]<<16 + tmp0*vol_l
|
||||
ADDS r7, r7, r10, LSL #15 @ r7 = obuf[1]<<15 + tmp0*vol_l
|
||||
MOV r4, #0
|
||||
RSCVS r7, r4, #0x80000000 @ Clamp r7
|
||||
ADDS r6, r6, r5, LSL #16 @ r6 = obuf[0]<<16 + tmp1*vol_r
|
||||
ADDS r6, r6, r5, LSL #15 @ r6 = obuf[0]<<15 + tmp1*vol_r
|
||||
RSCVS r6, r4, #0x80000000 @ Clamp r6
|
||||
|
||||
MOV r7, r7, LSR #16 @ Shift back to halfword
|
||||
MOV r6, r6, LSR #16 @ Shift back to halfword
|
||||
MOV r7, r7, LSR #15 @ Shift back to halfword
|
||||
MOV r6, r6, LSR #15 @ Shift back to halfword
|
||||
|
||||
LDR r5, [r2,#12] @ r5 = opos_inc
|
||||
STRH r6, [r3],#2 @ Store output value
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include "backends/audiocd/sdl/sdl-audiocd.h"
|
||||
|
||||
#if !SDL_VERSION_ATLEAST(1, 3, 0)
|
||||
#if !SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
|
||||
#include "common/textconsole.h"
|
||||
|
||||
|
@ -136,6 +136,6 @@ void SdlAudioCDManager::updateCD() {
|
|||
}
|
||||
}
|
||||
|
||||
#endif // !SDL_VERSION_ATLEAST(1, 3, 0)
|
||||
#endif // !SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#include "backends/platform/sdl/sdl-sys.h"
|
||||
|
||||
#if !SDL_VERSION_ATLEAST(1, 3, 0)
|
||||
#if !SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
|
||||
/**
|
||||
* The SDL audio cd manager. Implements real audio cd playback.
|
||||
|
@ -49,6 +49,6 @@ protected:
|
|||
uint32 _cdEndTime, _cdStopTime;
|
||||
};
|
||||
|
||||
#endif // !SDL_VERSION_ATLEAST(1, 3, 0)
|
||||
#endif // !SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -126,8 +126,8 @@ bool PS3SdlEventSource::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
|
|||
* This pauses execution and keeps redrawing the screen until the XMB is closed.
|
||||
*/
|
||||
void PS3SdlEventSource::preprocessEvents(SDL_Event *event) {
|
||||
if (event->type == SDL_ACTIVEEVENT) {
|
||||
if (event->active.state == SDL_APPMOUSEFOCUS && !event->active.gain) {
|
||||
if (event->type == SDL_WINDOWEVENT) {
|
||||
if (event->window.event == SDL_WINDOWEVENT_LEAVE) {
|
||||
// XMB opened
|
||||
if (g_engine)
|
||||
g_engine->pauseEngine(true);
|
||||
|
@ -145,9 +145,9 @@ void PS3SdlEventSource::preprocessEvents(SDL_Event *event) {
|
|||
}
|
||||
if (event->type == SDL_QUIT)
|
||||
return;
|
||||
if (event->type != SDL_ACTIVEEVENT)
|
||||
if (event->type != SDL_WINDOWEVENT)
|
||||
continue;
|
||||
if (event->active.state == SDL_APPMOUSEFOCUS && event->active.gain) {
|
||||
if (event->window.event == SDL_WINDOWEVENT_ENTER) {
|
||||
// XMB closed
|
||||
if (g_engine)
|
||||
g_engine->pauseEngine(false);
|
||||
|
|
|
@ -328,7 +328,7 @@ Common::KeyCode SdlEventSource::SDLToOSystemKeycode(const SDLKey key) {
|
|||
case SDLK_y: return Common::KEYCODE_y;
|
||||
case SDLK_z: return Common::KEYCODE_z;
|
||||
case SDLK_DELETE: return Common::KEYCODE_DELETE;
|
||||
#if SDL_VERSION_ATLEAST(1, 3, 0)
|
||||
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
case SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_GRAVE): return Common::KEYCODE_TILDE;
|
||||
#else
|
||||
case SDLK_WORLD_16: return Common::KEYCODE_TILDE;
|
||||
|
@ -751,16 +751,16 @@ bool SdlEventSource::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
|
|||
|
||||
bool SdlEventSource::handleJoyAxisMotion(SDL_Event &ev, Common::Event &event) {
|
||||
int axis = ev.jaxis.value;
|
||||
if ( axis > JOY_DEADZONE) {
|
||||
if (axis > JOY_DEADZONE) {
|
||||
axis -= JOY_DEADZONE;
|
||||
event.type = Common::EVENT_MOUSEMOVE;
|
||||
} else if ( axis < -JOY_DEADZONE ) {
|
||||
} else if (axis < -JOY_DEADZONE) {
|
||||
axis += JOY_DEADZONE;
|
||||
event.type = Common::EVENT_MOUSEMOVE;
|
||||
} else
|
||||
axis = 0;
|
||||
|
||||
if ( ev.jaxis.axis == JOY_XAXIS) {
|
||||
if (ev.jaxis.axis == JOY_XAXIS) {
|
||||
#ifdef JOY_ANALOG
|
||||
_km.x_vel = axis / 2000;
|
||||
_km.x_down_count = 0;
|
||||
|
@ -773,7 +773,6 @@ bool SdlEventSource::handleJoyAxisMotion(SDL_Event &ev, Common::Event &event) {
|
|||
_km.x_down_count = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
} else if (ev.jaxis.axis == JOY_YAXIS) {
|
||||
#ifndef JOY_INVERT_Y
|
||||
axis = -axis;
|
||||
|
|
|
@ -316,6 +316,7 @@ int MidiDriver_TIMIDITY::connect_to_server(const char* hostname, unsigned short
|
|||
|
||||
if (connect(fd, (struct sockaddr *)&in, sizeof(in)) < 0) {
|
||||
warning("TiMidity: connect(): %s", strerror(errno));
|
||||
::close(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,8 +30,10 @@
|
|||
#include "common/config-manager.h"
|
||||
#include "common/textconsole.h"
|
||||
|
||||
#ifdef GP2X
|
||||
#if defined(GP2X)
|
||||
#define SAMPLES_PER_SEC 11025
|
||||
#elif defined(PLAYSTATION3)
|
||||
#define SAMPLES_PER_SEC 48000
|
||||
#else
|
||||
#define SAMPLES_PER_SEC 44100
|
||||
#endif
|
||||
|
@ -78,34 +80,49 @@ void SdlMixerManager::init() {
|
|||
if (SDL_OpenAudio(&fmt, &_obtained) != 0) {
|
||||
warning("Could not open audio device: %s", SDL_GetError());
|
||||
|
||||
// The mixer is not marked as ready
|
||||
_mixer = new Audio::MixerImpl(g_system, desired.freq);
|
||||
assert(_mixer);
|
||||
_mixer->setReady(false);
|
||||
} else {
|
||||
debug(1, "Output sample rate: %d Hz", _obtained.freq);
|
||||
if (_obtained.freq != desired.freq)
|
||||
warning("SDL mixer output sample rate: %d differs from desired: %d", _obtained.freq, desired.freq);
|
||||
return;
|
||||
}
|
||||
|
||||
debug(1, "Output buffer size: %d samples", _obtained.samples);
|
||||
if (_obtained.samples != desired.samples)
|
||||
warning("SDL mixer output buffer size: %d differs from desired: %d", _obtained.samples, desired.samples);
|
||||
// The obtained sample format is not supported by the mixer, call
|
||||
// SDL_OpenAudio again with NULL as the second argument to force
|
||||
// SDL to do resampling to the desired audio spec.
|
||||
if (_obtained.format != desired.format) {
|
||||
debug(1, "SDL mixer sound format: %d differs from desired: %d", _obtained.format, desired.format);
|
||||
SDL_CloseAudio();
|
||||
|
||||
if (_obtained.format != desired.format)
|
||||
warning("SDL mixer sound format: %d differs from desired: %d", _obtained.format, desired.format);
|
||||
if (SDL_OpenAudio(&fmt, NULL) != 0) {
|
||||
warning("Could not open audio device: %s", SDL_GetError());
|
||||
|
||||
// The mixer is not marked as ready
|
||||
_mixer = new Audio::MixerImpl(g_system, desired.freq);
|
||||
return;
|
||||
}
|
||||
|
||||
_obtained = desired;
|
||||
}
|
||||
|
||||
debug(1, "Output sample rate: %d Hz", _obtained.freq);
|
||||
if (_obtained.freq != desired.freq)
|
||||
warning("SDL mixer output sample rate: %d differs from desired: %d", _obtained.freq, desired.freq);
|
||||
|
||||
debug(1, "Output buffer size: %d samples", _obtained.samples);
|
||||
if (_obtained.samples != desired.samples)
|
||||
warning("SDL mixer output buffer size: %d differs from desired: %d", _obtained.samples, desired.samples);
|
||||
|
||||
#ifndef __SYMBIAN32__
|
||||
// The SymbianSdlMixerManager does stereo->mono downmixing,
|
||||
// but otherwise we require stereo output.
|
||||
if (_obtained.channels != 2)
|
||||
error("SDL mixer output requires stereo output device");
|
||||
// The SymbianSdlMixerManager does stereo->mono downmixing,
|
||||
// but otherwise we require stereo output.
|
||||
if (_obtained.channels != 2)
|
||||
error("SDL mixer output requires stereo output device");
|
||||
#endif
|
||||
|
||||
_mixer = new Audio::MixerImpl(g_system, _obtained.freq);
|
||||
assert(_mixer);
|
||||
_mixer->setReady(true);
|
||||
_mixer = new Audio::MixerImpl(g_system, _obtained.freq);
|
||||
assert(_mixer);
|
||||
_mixer->setReady(true);
|
||||
|
||||
startAudio();
|
||||
}
|
||||
startAudio();
|
||||
}
|
||||
|
||||
SDL_AudioSpec SdlMixerManager::getAudioSpec(uint32 outputRate) {
|
||||
|
|
|
@ -1,108 +0,0 @@
|
|||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common/scummsys.h"
|
||||
|
||||
#if defined(SDL_BACKEND)
|
||||
|
||||
#include "backends/mixer/sdl13/sdl13-mixer.h"
|
||||
#include "common/debug.h"
|
||||
#include "common/system.h"
|
||||
#include "common/config-manager.h"
|
||||
#include "common/textconsole.h"
|
||||
|
||||
#ifdef GP2X
|
||||
#define SAMPLES_PER_SEC 11025
|
||||
#else
|
||||
#define SAMPLES_PER_SEC 44100
|
||||
#endif
|
||||
|
||||
Sdl13MixerManager::Sdl13MixerManager()
|
||||
:
|
||||
SdlMixerManager(),
|
||||
_device(0) {
|
||||
|
||||
}
|
||||
|
||||
Sdl13MixerManager::~Sdl13MixerManager() {
|
||||
_mixer->setReady(false);
|
||||
|
||||
SDL_CloseAudioDevice(_device);
|
||||
|
||||
delete _mixer;
|
||||
}
|
||||
|
||||
void Sdl13MixerManager::init() {
|
||||
// Start SDL Audio subsystem
|
||||
if (SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) {
|
||||
error("Could not initialize SDL: %s", SDL_GetError());
|
||||
}
|
||||
|
||||
// Get the desired audio specs
|
||||
SDL_AudioSpec desired = getAudioSpec(SAMPLES_PER_SEC);
|
||||
|
||||
// Start SDL audio with the desired specs
|
||||
_device = SDL_OpenAudioDevice(NULL, 0, &desired, &_obtained,
|
||||
SDL_AUDIO_ALLOW_FREQUENCY_CHANGE);
|
||||
|
||||
if (_device <= 0) {
|
||||
warning("Could not open audio device: %s", SDL_GetError());
|
||||
|
||||
_mixer = new Audio::MixerImpl(g_system, desired.freq);
|
||||
assert(_mixer);
|
||||
_mixer->setReady(false);
|
||||
} else {
|
||||
debug(1, "Output sample rate: %d Hz", _obtained.freq);
|
||||
|
||||
_mixer = new Audio::MixerImpl(g_system, _obtained.freq);
|
||||
assert(_mixer);
|
||||
_mixer->setReady(true);
|
||||
|
||||
startAudio();
|
||||
}
|
||||
}
|
||||
|
||||
void Sdl13MixerManager::startAudio() {
|
||||
// Start the sound system
|
||||
SDL_PauseAudioDevice(_device, 0);
|
||||
}
|
||||
|
||||
void Sdl13MixerManager::suspendAudio() {
|
||||
SDL_CloseAudioDevice(_device);
|
||||
_audioSuspended = true;
|
||||
}
|
||||
|
||||
int Sdl13MixerManager::resumeAudio() {
|
||||
if (!_audioSuspended)
|
||||
return -2;
|
||||
|
||||
_device = SDL_OpenAudioDevice(NULL, 0, &_obtained, NULL, 0);
|
||||
if (_device <= 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
SDL_PauseAudioDevice(_device, 0);
|
||||
_audioSuspended = false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -64,14 +64,12 @@ MODULE_OBJS += \
|
|||
plugins/sdl/sdl-provider.o \
|
||||
timer/sdl/sdl-timer.o
|
||||
|
||||
# SDL 1.3 removed audio CD support
|
||||
ifndef USE_SDL13
|
||||
# SDL 2 removed audio CD support
|
||||
ifndef USE_SDL2
|
||||
MODULE_OBJS += \
|
||||
audiocd/sdl/sdl-audiocd.o
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef POSIX
|
||||
MODULE_OBJS += \
|
||||
|
@ -112,8 +110,7 @@ MODULE_OBJS += \
|
|||
fs/posix/posix-fs.o \
|
||||
fs/posix/posix-fs-factory.o \
|
||||
fs/ps3/ps3-fs-factory.o \
|
||||
events/ps3sdl/ps3sdl-events.o \
|
||||
mixer/sdl13/sdl13-mixer.o
|
||||
events/ps3sdl/ps3sdl-events.o
|
||||
endif
|
||||
|
||||
ifeq ($(BACKEND),tizen)
|
||||
|
|
|
@ -28,12 +28,22 @@
|
|||
|
||||
#include <Cocoa/Cocoa.h>
|
||||
|
||||
// Apple removed setAppleMenu from the header files in 10.4,
|
||||
// but as the method still exists we declare it ourselves here.
|
||||
// Apple added setAppleMenu in 10.5 and removed it in 10.6.
|
||||
// But as the method still exists we declare it ourselves here.
|
||||
// Yes, this works :)
|
||||
@interface NSApplication(MissingFunction)
|
||||
- (void)setAppleMenu:(NSMenu *)menu;
|
||||
@end
|
||||
// However maybe we should conditionally use it depending on the system on which we run ScummVM (and not
|
||||
// the one on which we compile) to only do it on OS X 10.5.
|
||||
// Here is the relevant bit from the release notes for 10.6:
|
||||
// In Leopard and earlier, apps that tried to construct a menu bar without a nib would get an undesirable
|
||||
// stubby application menu that could not be removed. To work around this problem on Leopard, you can call
|
||||
// the undocumented setAppleMenu: method and pass it the application menu, like so:
|
||||
// [NSApp setAppleMenu:[[[NSApp mainMenu] itemAtIndex:0] submenu]];
|
||||
// In SnowLeopard, this workaround is unnecessary and should not be used. Under SnowLeopard, the first menu
|
||||
// is always identified as the application menu.
|
||||
|
||||
|
||||
NSString *constructNSStringFromCString(const char *rawCString, CFStringEncoding stringEncoding) {
|
||||
return (NSString *)CFStringCreateWithCString(NULL, rawCString, stringEncoding);
|
||||
|
@ -46,13 +56,14 @@ void replaceApplicationMenuItems() {
|
|||
NSMenu *windowMenu;
|
||||
NSMenuItem *menuItem;
|
||||
|
||||
// For some reason [[NSApp mainMenu] removeAllItems] doesn't work and crashes, so we need
|
||||
// to remove the SDL generated menus one by one
|
||||
[[NSApp mainMenu] removeItemAtIndex:0]; // Remove application menu
|
||||
[[NSApp mainMenu] removeItemAtIndex:0]; // Remove "Windows" menu
|
||||
// We cannot use [[NSApp mainMenu] removeAllItems] as removeAllItems was added in OS X 10.6
|
||||
// So remove the SDL generated menus one by one instead.
|
||||
while ([[NSApp mainMenu] numberOfItems] > 0) {
|
||||
[[NSApp mainMenu] removeItemAtIndex:0];
|
||||
}
|
||||
|
||||
// Create new application menu
|
||||
appleMenu = [[NSMenu alloc] initWithTitle:@""];
|
||||
appleMenu = [[NSMenu alloc] initWithTitle:@"ResidualVM"];
|
||||
|
||||
NSString *nsString = NULL;
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
#include "backends/saves/default/default-saves.h"
|
||||
#include "backends/fs/ps3/ps3-fs-factory.h"
|
||||
#include "backends/events/ps3sdl/ps3sdl-events.h"
|
||||
#include "backends/mixer/sdl13/sdl13-mixer.h"
|
||||
|
||||
#include <dirent.h>
|
||||
#include <sys/stat.h>
|
||||
|
@ -68,14 +67,6 @@ void OSystem_PS3::initBackend() {
|
|||
if (_savefileManager == 0)
|
||||
_savefileManager = new DefaultSaveFileManager(PREFIX "/saves");
|
||||
|
||||
// Create the mixer manager
|
||||
if (_mixer == 0) {
|
||||
_mixerManager = new Sdl13MixerManager();
|
||||
|
||||
// Setup and start mixer
|
||||
_mixerManager->init();
|
||||
}
|
||||
|
||||
// Event source
|
||||
if (_eventSource == 0)
|
||||
_eventSource = new PS3SdlEventSource();
|
||||
|
|
|
@ -36,8 +36,8 @@
|
|||
|
||||
#include "backends/saves/default/default-saves.h"
|
||||
|
||||
// Audio CD support was removed with SDL 1.3
|
||||
#if SDL_VERSION_ATLEAST(1, 3, 0)
|
||||
// Audio CD support was removed with SDL 2.0
|
||||
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
#include "backends/audiocd/default/default-audiocd.h"
|
||||
#else
|
||||
#include "backends/audiocd/sdl/sdl-audiocd.h"
|
||||
|
@ -194,8 +194,8 @@ void OSystem_SDL::initBackend() {
|
|||
#endif
|
||||
|
||||
if (_audiocdManager == 0) {
|
||||
// Audio CD support was removed with SDL 1.3
|
||||
#if SDL_VERSION_ATLEAST(1, 3, 0)
|
||||
// Audio CD support was removed with SDL 2.0
|
||||
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
_audiocdManager = new DefaultAudioCDManager();
|
||||
#else
|
||||
_audiocdManager = new SdlAudioCDManager();
|
||||
|
|
|
@ -43,7 +43,12 @@ int __stdcall WinMain(HINSTANCE /*hInst*/, HINSTANCE /*hPrevInst*/, LPSTR /*lpC
|
|||
#if !SDL_VERSION_ATLEAST(2, 0, 0)
|
||||
SDL_SetModuleHandle(GetModuleHandle(NULL));
|
||||
#endif
|
||||
// HACK: __argc, __argv are broken and return zero when using mingwrt 4.0+ on MinGW
|
||||
#if defined(__GNUC__) && defined(__MINGW32__) && !defined(__MINGW64__)
|
||||
return main(_argc, _argv);
|
||||
#else
|
||||
return main(__argc, __argv);
|
||||
#endif
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
|
|
@ -32,6 +32,21 @@
|
|||
#if defined(__GNUC__) && defined(__MINGW32__) && !defined(__MINGW64__)
|
||||
#include "backends/taskbar/win32/mingw-compat.h"
|
||||
#else
|
||||
// We use functionality introduced with Win7 in this file.
|
||||
// To assure that including the respective system headers gives us all
|
||||
// required definitions we set Win7 as minimum version we target.
|
||||
// See: https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745%28v=vs.85%29.aspx#macros_for_conditional_declarations
|
||||
#undef _WIN32_WINNT
|
||||
#define _WIN32_WINNT _WIN32_WINNT_WIN7
|
||||
|
||||
// TODO: We might not need to include this file, the MSDN docs are
|
||||
// not really helpful to decide whether we require it or not.
|
||||
//
|
||||
// Casing of the name is a bit of a mess. MinGW64 seems to use all
|
||||
// lowercase, while MSDN docs suggest "SdkDdkVer.h". We are stuck with
|
||||
// what MinGW64 uses...
|
||||
#include <sdkddkver.h>
|
||||
|
||||
// We need certain functions that are excluded by default
|
||||
#undef NONLS
|
||||
#undef NOICONS
|
||||
|
@ -39,11 +54,6 @@
|
|||
#if defined(ARRAYSIZE)
|
||||
#undef ARRAYSIZE
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
// Default MSVC headers for ITaskbarList3 and IShellLink
|
||||
#include <SDKDDKVer.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <shlobj.h>
|
||||
|
|
|
@ -177,7 +177,8 @@ T sortChoosePivot(T first, T last) {
|
|||
template<typename T, class StrictWeakOrdering>
|
||||
T sortPartition(T first, T last, T pivot, StrictWeakOrdering &comp) {
|
||||
--last;
|
||||
SWAP(*pivot, *last);
|
||||
if (pivot != last)
|
||||
SWAP(*pivot, *last);
|
||||
|
||||
T sorted;
|
||||
for (sorted = first; first != last; ++first) {
|
||||
|
@ -188,7 +189,8 @@ T sortPartition(T first, T last, T pivot, StrictWeakOrdering &comp) {
|
|||
}
|
||||
}
|
||||
|
||||
SWAP(*last, *sorted);
|
||||
if (last != sorted)
|
||||
SWAP(*last, *sorted);
|
||||
return sorted;
|
||||
}
|
||||
|
||||
|
|
|
@ -449,6 +449,8 @@ bool DecompressorDCL::unpack(SeekableReadStream *sourceStream, WriteStream *targ
|
|||
}
|
||||
|
||||
if (_targetFixedSize) {
|
||||
if (_bytesWritten != _targetSize)
|
||||
warning("DCL-INFLATE Error: Inconsistent bytes written (%d) and target buffer size (%d)", _bytesWritten, _targetSize);
|
||||
return _bytesWritten == _targetSize;
|
||||
}
|
||||
return true; // For targets featuring dynamic size we always succeed
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
* PKWARE DCL ("explode") ("PKWARE data compression library") decompressor used in engines:
|
||||
* - agos (exclusively for Simon 2 setup.shr file)
|
||||
* - mohawk
|
||||
* - neverhood
|
||||
* - sci
|
||||
*/
|
||||
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
#ifndef COMMON_SCUMMSYS_H
|
||||
#define COMMON_SCUMMSYS_H
|
||||
|
||||
#ifndef __has_feature // Optional of course.
|
||||
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||
#ifndef __has_feature // Optional of course.
|
||||
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||
#endif
|
||||
|
||||
// This is a convenience macro to test whether the compiler used is a GCC
|
||||
|
@ -46,7 +46,7 @@
|
|||
|
||||
#if defined(WIN32)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if defined(_MSC_VER) && _MSC_VER <= 1800
|
||||
|
||||
// FIXME: The placement of the workaround functions for MSVC below
|
||||
// require us to include stdio.h and stdarg.h for MSVC here. This
|
||||
|
@ -367,11 +367,11 @@
|
|||
#endif
|
||||
|
||||
#ifndef STRINGBUFLEN
|
||||
#if defined(__N64__) || defined(__DS__)
|
||||
#define STRINGBUFLEN 256
|
||||
#else
|
||||
#define STRINGBUFLEN 1024
|
||||
#endif
|
||||
#if defined(__N64__) || defined(__DS__)
|
||||
#define STRINGBUFLEN 256
|
||||
#else
|
||||
#define STRINGBUFLEN 1024
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// ResidualVM specific:
|
||||
|
|
|
@ -97,36 +97,38 @@ bool XMLParser::parserError(const String &errStr) {
|
|||
assert(_stream->pos() == startPosition);
|
||||
currentPosition = startPosition;
|
||||
|
||||
int keyOpening = 0;
|
||||
int keyClosing = 0;
|
||||
|
||||
while (currentPosition-- && keyOpening == 0) {
|
||||
_stream->seek(-2, SEEK_CUR);
|
||||
c = _stream->readByte();
|
||||
|
||||
if (c == '<')
|
||||
keyOpening = currentPosition - 1;
|
||||
else if (c == '>')
|
||||
keyClosing = currentPosition;
|
||||
}
|
||||
|
||||
_stream->seek(startPosition, SEEK_SET);
|
||||
currentPosition = startPosition;
|
||||
while (keyClosing == 0 && c && currentPosition++) {
|
||||
c = _stream->readByte();
|
||||
|
||||
if (c == '>')
|
||||
keyClosing = currentPosition;
|
||||
}
|
||||
|
||||
Common::String errorMessage = Common::String::format("\n File <%s>, line %d:\n", _fileName.c_str(), lineCount);
|
||||
|
||||
currentPosition = (keyClosing - keyOpening);
|
||||
_stream->seek(keyOpening, SEEK_SET);
|
||||
if (startPosition > 1) {
|
||||
int keyOpening = 0;
|
||||
int keyClosing = 0;
|
||||
|
||||
while (currentPosition--)
|
||||
errorMessage += (char)_stream->readByte();
|
||||
while (currentPosition-- && keyOpening == 0) {
|
||||
_stream->seek(-2, SEEK_CUR);
|
||||
c = _stream->readByte();
|
||||
|
||||
if (c == '<')
|
||||
keyOpening = currentPosition - 1;
|
||||
else if (c == '>')
|
||||
keyClosing = currentPosition;
|
||||
}
|
||||
|
||||
_stream->seek(startPosition, SEEK_SET);
|
||||
currentPosition = startPosition;
|
||||
while (keyClosing == 0 && c && currentPosition++) {
|
||||
c = _stream->readByte();
|
||||
|
||||
if (c == '>')
|
||||
keyClosing = currentPosition;
|
||||
}
|
||||
|
||||
currentPosition = (keyClosing - keyOpening);
|
||||
_stream->seek(keyOpening, SEEK_SET);
|
||||
|
||||
while (currentPosition--)
|
||||
errorMessage += (char)_stream->readByte();
|
||||
}
|
||||
|
||||
errorMessage += "\n\nParser error: ";
|
||||
errorMessage += errStr;
|
||||
errorMessage += "\n\n";
|
||||
|
|
44
configure
vendored
44
configure
vendored
|
@ -1304,6 +1304,13 @@ arm-riscos)
|
|||
_host_os=riscos
|
||||
_host_cpu=arm
|
||||
;;
|
||||
raspberrypi)
|
||||
_host_os=linux
|
||||
_host_cpu=arm
|
||||
# This tuple is the one used by the official Rpi toolchain.
|
||||
# It may change in the future.
|
||||
_host_alias=bcm2708hardfp
|
||||
;;
|
||||
caanoo)
|
||||
_host_os=gph-linux
|
||||
_host_cpu=arm
|
||||
|
@ -2039,7 +2046,12 @@ case $_host_cpu in
|
|||
arm*)
|
||||
echo "ARM"
|
||||
define_in_config_if_yes yes 'USE_ARM_SCALER_ASM'
|
||||
define_in_config_if_yes yes 'USE_ARM_SOUND_ASM'
|
||||
# FIXME: The following feature exhibits a bug. It produces distorted
|
||||
# sound since 9003ce517ff9906b0288f9f7c02197fd091d4554. The ARM
|
||||
# assembly will need to be properly adapted to the changes to the C
|
||||
# code in 8f5a7cde2f99de9fef849b0ff688906f05f4643e.
|
||||
# See bug #6957: "AUDIO: ARM ASM sound code causes distorted audio on 32 bit armv6"
|
||||
#define_in_config_if_yes yes 'USE_ARM_SOUND_ASM'
|
||||
define_in_config_if_yes yes 'USE_ARM_SMUSH_ASM'
|
||||
define_in_config_if_yes yes 'USE_ARM_GFX_ASM'
|
||||
# FIXME: The following feature exhibits a bug during the intro scene of Indy 4
|
||||
|
@ -2407,6 +2419,7 @@ case $_host_os in
|
|||
;;
|
||||
ps3)
|
||||
# Force use of SDL and freetype from the ps3 toolchain
|
||||
_sdlconfig=sdl2-config
|
||||
_sdlpath="$PS3DEV/portlibs/ppu:$PS3DEV/portlibs/ppu/bin"
|
||||
_freetypepath="$PS3DEV/portlibs/ppu:$PS3DEV/portlibs/ppu/bin"
|
||||
|
||||
|
@ -2560,6 +2573,30 @@ if test -n "$_host"; then
|
|||
_seq_midi=no
|
||||
_port_mk="backends/platform/dingux/dingux.mk"
|
||||
;;
|
||||
raspberrypi)
|
||||
# This is needed because the official cross compiler doesn't have multiarch enabled
|
||||
# but Raspbian does.
|
||||
# Be careful as it's the linker (LDFLAGS) which must know about sysroot.
|
||||
# These are needed to build against Raspbian's libSDL.
|
||||
append_var LDFLAGS "--sysroot=$RPI_ROOT"
|
||||
append_var LDFLAGS "-B$RPI_ROOT/usr/lib/arm-linux-gnueabihf"
|
||||
append_var LDFLAGS "-Xlinker --rpath-link=$RPI_ROOT/usr/lib/arm-linux-gnueabihf"
|
||||
append_var LDFLAGS "-Xlinker --rpath-link=$RPI_ROOT/lib/arm-linux-gnueabihf"
|
||||
append_var LDFLAGS "-Xlinker --rpath-link=$RPI_ROOT/opt/vc/lib"
|
||||
append_var LDFLAGS "-L$RPI_ROOT/opt/vc/lib"
|
||||
# This is so optional OpenGL ES includes are found.
|
||||
append_var CXXFLAGS "-I$RPI_ROOT/opt/vc/include"
|
||||
_savegame_timestamp=no
|
||||
_eventrec=no
|
||||
_build_scalers=no
|
||||
_build_hq_scalers=no
|
||||
# We prefer SDL2 on the Raspberry Pi: acceleration now depends on it
|
||||
# since SDL2 manages dispmanx/GLES2 very well internally.
|
||||
# SDL1 is bit-rotten on this platform.
|
||||
_sdlconfig=sdl2-config
|
||||
# We should add _opengles=yes later here if we wanted the GLES renderer.
|
||||
# For now, we use plain SDL2 only, which in turn uses GLES2 by default.
|
||||
;;
|
||||
dreamcast)
|
||||
append_var DEFINES "-DDISABLE_DEFAULT_SAVEFILEMANAGER"
|
||||
append_var DEFINES "-DDISABLE_TEXT_CONSOLE"
|
||||
|
@ -3077,9 +3114,6 @@ case $_backend in
|
|||
|
||||
_sdlversion=`$_sdlconfig --version`
|
||||
case $_sdlversion in
|
||||
1.3.*)
|
||||
add_line_to_config_mk "USE_SDL13 = 1"
|
||||
;;
|
||||
2.0.*)
|
||||
add_line_to_config_mk "USE_SDL2 = 1"
|
||||
;;
|
||||
|
@ -3140,7 +3174,6 @@ case $_backend in
|
|||
;;
|
||||
esac
|
||||
|
||||
|
||||
#
|
||||
# Determine whether host is POSIX compliant, or at least POSIX
|
||||
# compatible enough to support our POSIX code (including dlsym(),
|
||||
|
@ -4227,7 +4260,6 @@ define_in_config_if_yes "$_opengles2" "USE_GLES2"
|
|||
define_in_config_if_yes "$_opengl_shaders" "USE_OPENGL_SHADERS"
|
||||
# ResidualVM specific ends here <-
|
||||
|
||||
|
||||
#
|
||||
# Check for nasm
|
||||
#
|
||||
|
|
|
@ -124,7 +124,7 @@ int main(int argc, char *argv[]) {
|
|||
setup.features = getAllFeatures();
|
||||
|
||||
ProjectType projectType = kProjectNone;
|
||||
int msvcVersion = 9;
|
||||
int msvcVersion = 12;
|
||||
bool useSDL2 = false;
|
||||
|
||||
// Parse command line arguments
|
||||
|
@ -176,7 +176,7 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
msvcVersion = atoi(argv[++i]);
|
||||
|
||||
if (msvcVersion != 9 && msvcVersion != 10 && msvcVersion != 11 && msvcVersion != 12) {
|
||||
if (msvcVersion != 9 && msvcVersion != 10 && msvcVersion != 11 && msvcVersion != 12 && msvcVersion != 14) {
|
||||
std::cerr << "ERROR: Unsupported version: \"" << msvcVersion << "\" passed to \"--msvc-version\"!\n";
|
||||
return -1;
|
||||
}
|
||||
|
@ -453,6 +453,9 @@ int main(int argc, char *argv[]) {
|
|||
// 4250 ('class1' : inherits 'class2::member' via dominance)
|
||||
// two or more members have the same name. Should be harmless
|
||||
//
|
||||
// 4267 ('var' : conversion from 'size_t' to 'type', possible loss of data)
|
||||
// throws tons and tons of warnings (no immediate plan to fix all usages)
|
||||
//
|
||||
// 4310 (cast truncates constant value)
|
||||
// used in some engines
|
||||
//
|
||||
|
@ -468,6 +471,8 @@ int main(int argc, char *argv[]) {
|
|||
// 4512 ('class' : assignment operator could not be generated)
|
||||
// some classes use const items and the default assignment operator cannot be generated
|
||||
//
|
||||
// 4577 ('noexcept' used with no exception handling mode specified)
|
||||
//
|
||||
// 4702 (unreachable code)
|
||||
// mostly thrown after error() calls (marked as NORETURN)
|
||||
//
|
||||
|
@ -523,6 +528,11 @@ int main(int argc, char *argv[]) {
|
|||
globalWarnings.push_back("6385");
|
||||
globalWarnings.push_back("6386");
|
||||
|
||||
if (msvcVersion == 14) {
|
||||
globalWarnings.push_back("4267");
|
||||
globalWarnings.push_back("4577");
|
||||
}
|
||||
|
||||
projectWarnings["agi"].push_back("4510");
|
||||
projectWarnings["agi"].push_back("4610");
|
||||
|
||||
|
@ -636,6 +646,7 @@ void displayHelp(const char *exe) {
|
|||
" 10 stands for \"Visual Studio 2010\"\n"
|
||||
" 11 stands for \"Visual Studio 2012\"\n"
|
||||
" 12 stands for \"Visual Studio 2013\"\n"
|
||||
" 14 stands for \"Visual Studio 2015\"\n"
|
||||
" The default is \"9\", thus \"Visual Studio 2008\"\n"
|
||||
" --build-events Run custom build events as part of the build\n"
|
||||
" (default: false)\n"
|
||||
|
@ -658,9 +669,9 @@ void displayHelp(const char *exe) {
|
|||
"Optional features settings:\n"
|
||||
" --enable-<name> enable inclusion of the feature \"name\"\n"
|
||||
" --disable-<name> disable inclusion of the feature \"name\"\n"
|
||||
"\n"
|
||||
"SDL settings:\n"
|
||||
" --sdl2 link to SDL 2.0, instead of SDL 1.2\n"
|
||||
"\n"
|
||||
"SDL settings:\n"
|
||||
" --sdl2 link to SDL 2.0, instead of SDL 1.2\n"
|
||||
"\n"
|
||||
" There are the following features available:\n"
|
||||
"\n";
|
||||
|
@ -921,7 +932,7 @@ const Feature s_features[] = {
|
|||
{ "libz", "USE_ZLIB", "zlib", true, "zlib (compression) support" },
|
||||
{ "mad", "USE_MAD", "libmad", true, "libmad (MP3) support" },
|
||||
{ "vorbis", "USE_VORBIS", "libvorbisfile_static libvorbis_static libogg_static", false, "Ogg Vorbis support" },
|
||||
{ "flac", "USE_FLAC", "libFLAC_static", false, "FLAC support" },
|
||||
{ "flac", "USE_FLAC", "libFLAC_static win_utf8_io_static", false, "FLAC support" },
|
||||
{ "png", "USE_PNG", "libpng", false, "libpng support" },
|
||||
{ "faad", "USE_FAAD", "libfaad", false, "AAC support" },
|
||||
{ "mpeg2", "USE_MPEG2", "libmpeg2", true, "MPEG-2 support" },
|
||||
|
@ -1050,7 +1061,7 @@ bool producesObjectFile(const std::string &fileName) {
|
|||
}
|
||||
|
||||
std::string toString(int num) {
|
||||
return static_cast<std::ostringstream*>(&(std::ostringstream() << num))->str();
|
||||
return static_cast<std::ostringstream*>(&(std::ostringstream() << num))->str();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
#ifndef TOOLS_CREATE_PROJECT_H
|
||||
#define TOOLS_CREATE_PROJECT_H
|
||||
|
||||
#ifndef __has_feature // Optional of course.
|
||||
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||
#ifndef __has_feature // Optional of course.
|
||||
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||
#endif
|
||||
|
||||
#include <map>
|
||||
|
|
|
@ -55,9 +55,16 @@ int MSBuildProvider::getVisualStudioVersion() {
|
|||
if (_version == 12)
|
||||
return 2013;
|
||||
|
||||
if (_version == 14)
|
||||
return 14;
|
||||
|
||||
error("Unsupported version passed to getVisualStudioVersion");
|
||||
}
|
||||
|
||||
int MSBuildProvider::getSolutionVersion() {
|
||||
return (_version < 14) ? _version + 1 : _version;
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
inline void outputConfiguration(std::ostream &project, const std::string &config, const std::string &platform) {
|
||||
|
@ -116,7 +123,7 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri
|
|||
// Shared configuration
|
||||
project << "\t<Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n";
|
||||
|
||||
std::string version = "v" + toString(_version) + "0";
|
||||
std::string version = "v" + toString(_version) + "0";
|
||||
std::string llvm = "LLVM-vs" + toString(getVisualStudioVersion());
|
||||
|
||||
outputConfigurationType(setup, project, name, "Release|Win32", version);
|
||||
|
@ -177,6 +184,13 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri
|
|||
project << "\t</ItemGroup>\n";
|
||||
}
|
||||
|
||||
// Visual Studio 2015 automatically imports natvis files that are part of the project
|
||||
if (name == PROJECT_NAME && _version == 14) {
|
||||
project << "\t<ItemGroup>\n";
|
||||
project << "\t\t<None Include=\"" << setup.srcDir << "/devtools/create_project/scripts/residualvm.natvis\" />\n";
|
||||
project << "\t</ItemGroup>\n";
|
||||
}
|
||||
|
||||
project << "\t<Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n"
|
||||
"\t<ImportGroup Label=\"ExtensionTargets\">\n"
|
||||
"\t</ImportGroup>\n";
|
||||
|
@ -185,7 +199,7 @@ void MSBuildProvider::createProjectFile(const std::string &name, const std::stri
|
|||
// We override the normal target to ignore the exit code (this allows us to have a clean output and not message about the command exit code)
|
||||
project << "\t\t<Target Name=\"PostBuildEvent\">\n"
|
||||
<< "\t\t\t<Message Text=\"Description: Run tests\" />\n"
|
||||
<< "\t\t\t<Exec Command=\"$(TargetPath)\" IgnoreExitCode=\"true\" />\n"
|
||||
<< "\t\t\t<Exec Command=\"$(TargetPath)\" IgnoreExitCode=\"true\" />\n"
|
||||
<< "\t\t</Target>\n";
|
||||
}
|
||||
|
||||
|
@ -305,6 +319,12 @@ void MSBuildProvider::outputProjectSettings(std::ofstream &project, const std::s
|
|||
for (StringList::const_iterator i = setup.libraries.begin(); i != setup.libraries.end(); ++i)
|
||||
libraries += *i + ".lib;";
|
||||
|
||||
if (_version == 14) {
|
||||
std::string debug = isRelease ? "" : "d";
|
||||
libraries += "libvcruntime" + debug + ".lib;";
|
||||
libraries += "libucrt" + debug + ".lib;";
|
||||
}
|
||||
|
||||
project << "\t\t<Link>\n"
|
||||
"\t\t\t<OutputFile>$(OutDir)" << ((setup.devTools || setup.tests) ? name : setup.projectName) << ".exe</OutputFile>\n"
|
||||
"\t\t\t<AdditionalDependencies>" << libraries << "%(AdditionalDependencies)</AdditionalDependencies>\n"
|
||||
|
|
|
@ -49,6 +49,7 @@ protected:
|
|||
const char *getProjectExtension();
|
||||
const char *getPropertiesExtension();
|
||||
int getVisualStudioVersion();
|
||||
int getSolutionVersion();
|
||||
|
||||
private:
|
||||
struct FileEntry {
|
||||
|
|
|
@ -52,7 +52,7 @@ void MSVCProvider::createWorkspace(const BuildSetup &setup) {
|
|||
if (!solution)
|
||||
error("Could not open \"" + setup.outputDir + '/' + setup.projectName + ".sln\" for writing");
|
||||
|
||||
solution << "Microsoft Visual Studio Solution File, Format Version " << _version + 1 << ".00\n";
|
||||
solution << "Microsoft Visual Studio Solution File, Format Version " << getSolutionVersion() << ".00\n";
|
||||
solution << "# Visual Studio " << getVisualStudioVersion() << "\n";
|
||||
|
||||
// Write main project
|
||||
|
@ -157,13 +157,17 @@ void MSVCProvider::createGlobalProp(const BuildSetup &setup) {
|
|||
outputGlobalPropFile(setup, properties, 64, x64Defines, convertPathToWin(setup.filePrefix), setup.runBuildEvents);
|
||||
}
|
||||
|
||||
int MSVCProvider::getSolutionVersion() {
|
||||
return _version + 1;
|
||||
}
|
||||
|
||||
std::string MSVCProvider::getPreBuildEvent() const {
|
||||
std::string cmdLine = "";
|
||||
|
||||
cmdLine = "@echo off\n"
|
||||
"echo Executing Pre-Build script...\n"
|
||||
"echo.\n"
|
||||
"@call "$(SolutionDir)../../devtools/create_project/scripts/prebuild.cmd" "$(SolutionDir)/../.." "$(TargetDir)"\n"
|
||||
"echo.\n"
|
||||
"@call "$(SolutionDir)../../devtools/create_project/scripts/prebuild.cmd" "$(SolutionDir)/../.." "$(TargetDir)"\n"
|
||||
"EXIT /B0";
|
||||
|
||||
return cmdLine;
|
||||
|
|
|
@ -82,6 +82,11 @@ protected:
|
|||
*/
|
||||
virtual int getVisualStudioVersion() = 0;
|
||||
|
||||
/**
|
||||
* Get the Solution version (used in the sln file header)
|
||||
*/
|
||||
virtual int getSolutionVersion();
|
||||
|
||||
/**
|
||||
* Get the command line for the revision tool (shared between all Visual Studio based providers)
|
||||
*/
|
||||
|
|
|
@ -230,7 +230,7 @@ void VisualStudioProvider::outputGlobalPropFile(const BuildSetup &setup, std::of
|
|||
"\t\tDisableSpecificWarnings=\"" << warnings << "\"\n"
|
||||
"\t\tAdditionalIncludeDirectories=\".\\;" << prefix << ";" << prefix << "\\engines;$(" << LIBS_DEFINE << ")\\include;$(" << LIBS_DEFINE << ")\\include\\SDL;" << (setup.tests ? prefix + "\\test\\cxxtest;" : "") << "$(TargetDir)\"\n"
|
||||
"\t\tPreprocessorDefinitions=\"" << definesList << "\"\n"
|
||||
"\t\tExceptionHandling=\"" << ((setup.devTools || setup.tests) ? "1" : "0") << "\"\n";
|
||||
"\t\tExceptionHandling=\"" << ((setup.devTools || setup.tests || _version == 14) ? "1" : "0") << "\"\n";
|
||||
|
||||
#if NEEDS_RTTI
|
||||
properties << "\t\tRuntimeTypeInfo=\"true\"\n";
|
||||
|
|
|
@ -42,42 +42,31 @@ namespace CreateProjectTool {
|
|||
defines.push_back(name);
|
||||
|
||||
#define ADD_SETTING(config, key, value) \
|
||||
config.settings[key] = Setting(value, "", SettingsNoQuote);
|
||||
config._settings[key] = Setting(value, "", kSettingsNoQuote);
|
||||
|
||||
#define ADD_SETTING_ORDER(config, key, value, order) \
|
||||
config.settings[key] = Setting(value, "", SettingsNoQuote, 0, order);
|
||||
config._settings[key] = Setting(value, "", kSettingsNoQuote, 0, order);
|
||||
|
||||
#define ADD_SETTING_ORDER_NOVALUE(config, key, comment, order) \
|
||||
config.settings[key] = Setting("", comment, SettingsNoValue, 0, order);
|
||||
config._settings[key] = Setting("", comment, kSettingsNoValue, 0, order);
|
||||
|
||||
#define ADD_SETTING_QUOTE(config, key, value) \
|
||||
config.settings[key] = Setting(value);
|
||||
config._settings[key] = Setting(value);
|
||||
|
||||
#define ADD_SETTING_QUOTE_VAR(config, key, value) \
|
||||
config.settings[key] = Setting(value, "", SettingsQuoteVariable);
|
||||
config._settings[key] = Setting(value, "", kSettingsQuoteVariable);
|
||||
|
||||
#define ADD_SETTING_LIST(config, key, values, flags, indent) \
|
||||
config.settings[key] = Setting(values, flags, indent);
|
||||
config._settings[key] = Setting(values, flags, indent);
|
||||
|
||||
#define REMOVE_SETTING(config, key) \
|
||||
config.settings.erase(key);
|
||||
config._settings.erase(key);
|
||||
|
||||
#define ADD_BUILD_FILE(id, name, fileRefId, comment) { \
|
||||
Object *buildFile = new Object(this, id, name, "PBXBuildFile", "PBXBuildFile", comment); \
|
||||
buildFile->addProperty("fileRef", fileRefId, name, SettingsNoValue); \
|
||||
buildFile->addProperty("fileRef", fileRefId, name, kSettingsNoValue); \
|
||||
_buildFile.add(buildFile); \
|
||||
_buildFile.flags = SettingsSingleItem; \
|
||||
}
|
||||
|
||||
#define ADD_FILE_REFERENCE(id, name, properties) { \
|
||||
Object *fileRef = new Object(this, id, name, "PBXFileReference", "PBXFileReference", name); \
|
||||
if (!properties.fileEncoding.empty()) fileRef->addProperty("fileEncoding", properties.fileEncoding, "", SettingsNoValue); \
|
||||
if (!properties.lastKnownFileType.empty()) fileRef->addProperty("lastKnownFileType", properties.lastKnownFileType, "", SettingsNoValue|SettingsQuoteVariable); \
|
||||
if (!properties.fileName.empty()) fileRef->addProperty("name", properties.fileName, "", SettingsNoValue|SettingsQuoteVariable); \
|
||||
if (!properties.filePath.empty()) fileRef->addProperty("path", properties.filePath, "", SettingsNoValue|SettingsQuoteVariable); \
|
||||
if (!properties.sourceTree.empty()) fileRef->addProperty("sourceTree", properties.sourceTree, "", SettingsNoValue); \
|
||||
_fileReference.add(fileRef); \
|
||||
_fileReference.flags = SettingsSingleItem; \
|
||||
_buildFile._flags = kSettingsSingleItem; \
|
||||
}
|
||||
|
||||
bool producesObjectFileOnOSX(const std::string &fileName) {
|
||||
|
@ -93,56 +82,56 @@ bool producesObjectFileOnOSX(const std::string &fileName) {
|
|||
}
|
||||
|
||||
XcodeProvider::Group::Group(XcodeProvider *objectParent, const std::string &groupName, const std::string &uniqueName, const std::string &path) : Object(objectParent, uniqueName, groupName, "PBXGroup", "", groupName) {
|
||||
addProperty("name", name, "", SettingsNoValue|SettingsQuoteVariable);
|
||||
addProperty("sourceTree", "<group>", "", SettingsNoValue|SettingsQuoteVariable);
|
||||
|
||||
addProperty("name", _name, "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
addProperty("sourceTree", "<group>", "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
|
||||
if (path != "") {
|
||||
addProperty("path", path, "", SettingsNoValue|SettingsQuoteVariable);
|
||||
addProperty("path", path, "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
}
|
||||
_childOrder = 0;
|
||||
_treeName = uniqueName;
|
||||
}
|
||||
|
||||
void XcodeProvider::Group::ensureChildExists(const std::string &name) {
|
||||
std::map<std::string, Group*>::iterator it = _childGroups.find(name);
|
||||
std::map<std::string, Group *>::iterator it = _childGroups.find(name);
|
||||
if (it == _childGroups.end()) {
|
||||
Group *child = new Group(parent, name, this->_treeName + '/' + name, name);
|
||||
Group *child = new Group(_parent, name, this->_treeName + '/' + name, name);
|
||||
_childGroups[name] = child;
|
||||
addChildGroup(child);
|
||||
parent->_groups.add(child);
|
||||
_parent->_groups.add(child);
|
||||
}
|
||||
}
|
||||
|
||||
void XcodeProvider::Group::addChildInternal(const std::string &id, const std::string &comment) {
|
||||
if (properties.find("children") == properties.end()) {
|
||||
if (_properties.find("children") == _properties.end()) {
|
||||
Property children;
|
||||
children.hasOrder = true;
|
||||
children.flags = SettingsAsList;
|
||||
properties["children"] = children;
|
||||
children._hasOrder = true;
|
||||
children._flags = kSettingsAsList;
|
||||
_properties["children"] = children;
|
||||
}
|
||||
properties["children"].settings[id] = Setting("", comment + " in Sources", SettingsNoValue, 0, _childOrder++);
|
||||
_properties["children"]._settings[id] = Setting("", comment + " in Sources", kSettingsNoValue, 0, _childOrder++);
|
||||
if (_childOrder == 1) {
|
||||
// Force children to use () even when there is only 1 child.
|
||||
// Also this enforces the use of "," after the single item, instead of ; (see writeProperty)
|
||||
properties["children"].flags |= SettingsSingleItem;
|
||||
_properties["children"]._flags |= kSettingsSingleItem;
|
||||
} else {
|
||||
properties["children"].flags ^= SettingsSingleItem;
|
||||
_properties["children"]._flags ^= kSettingsSingleItem;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void XcodeProvider::Group::addChildGroup(const Group* group) {
|
||||
addChildInternal(parent->getHash(group->_treeName), group->_treeName);
|
||||
void XcodeProvider::Group::addChildGroup(const Group *group) {
|
||||
addChildInternal(_parent->getHash(group->_treeName), group->_treeName);
|
||||
}
|
||||
|
||||
void XcodeProvider::Group::addChildFile(const std::string &name) {
|
||||
std::string id = "FileReference_" + _treeName + "/" + name;
|
||||
addChildInternal(parent->getHash(id), name);
|
||||
addChildInternal(_parent->getHash(id), name);
|
||||
FileProperty property = FileProperty(name, name, name, "\"<group>\"");
|
||||
|
||||
parent->addFileReference(id, name, property);
|
||||
_parent->addFileReference(id, name, property);
|
||||
if (producesObjectFileOnOSX(name)) {
|
||||
parent->addBuildFile(_treeName + "/" + name, name, parent->getHash(id), name + " in Sources");
|
||||
_parent->addBuildFile(_treeName + "/" + name, name, _parent->getHash(id), name + " in Sources");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -151,14 +140,14 @@ void XcodeProvider::Group::addChildByHash(const std::string &hash, const std::st
|
|||
}
|
||||
|
||||
XcodeProvider::Group *XcodeProvider::Group::getChildGroup(const std::string &name) {
|
||||
std::map<std::string, Group*>::iterator it = _childGroups.find(name);
|
||||
std::map<std::string, Group *>::iterator it = _childGroups.find(name);
|
||||
assert(it != _childGroups.end());
|
||||
return it->second;
|
||||
}
|
||||
|
||||
XcodeProvider::Group *XcodeProvider::touchGroupsForPath(const std::string &path) {
|
||||
if (_rootSourceGroup == NULL) {
|
||||
assert (path == _projectRoot);
|
||||
assert(path == _projectRoot);
|
||||
_rootSourceGroup = new Group(this, "Sources", path, path);
|
||||
_groups.add(_rootSourceGroup);
|
||||
return _rootSourceGroup;
|
||||
|
@ -180,31 +169,31 @@ XcodeProvider::Group *XcodeProvider::touchGroupsForPath(const std::string &path)
|
|||
|
||||
void XcodeProvider::addFileReference(const std::string &id, const std::string &name, FileProperty properties) {
|
||||
Object *fileRef = new Object(this, id, name, "PBXFileReference", "PBXFileReference", name);
|
||||
if (!properties.fileEncoding.empty()) fileRef->addProperty("fileEncoding", properties.fileEncoding, "", SettingsNoValue);
|
||||
if (!properties.lastKnownFileType.empty()) fileRef->addProperty("lastKnownFileType", properties.lastKnownFileType, "", SettingsNoValue|SettingsQuoteVariable);
|
||||
if (!properties.fileName.empty()) fileRef->addProperty("name", properties.fileName, "", SettingsNoValue|SettingsQuoteVariable);
|
||||
if (!properties.filePath.empty()) fileRef->addProperty("path", properties.filePath, "", SettingsNoValue|SettingsQuoteVariable);
|
||||
if (!properties.sourceTree.empty()) fileRef->addProperty("sourceTree", properties.sourceTree, "", SettingsNoValue);
|
||||
if (!properties._fileEncoding.empty()) fileRef->addProperty("fileEncoding", properties._fileEncoding, "", kSettingsNoValue);
|
||||
if (!properties._lastKnownFileType.empty()) fileRef->addProperty("lastKnownFileType", properties._lastKnownFileType, "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
if (!properties._fileName.empty()) fileRef->addProperty("name", properties._fileName, "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
if (!properties._filePath.empty()) fileRef->addProperty("path", properties._filePath, "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
if (!properties._sourceTree.empty()) fileRef->addProperty("sourceTree", properties._sourceTree, "", kSettingsNoValue);
|
||||
_fileReference.add(fileRef);
|
||||
_fileReference.flags = SettingsSingleItem;
|
||||
_fileReference._flags = kSettingsSingleItem;
|
||||
}
|
||||
|
||||
void XcodeProvider::addProductFileReference(const std::string &id, const std::string &name) {
|
||||
Object *fileRef = new Object(this, id, name, "PBXFileReference", "PBXFileReference", name);
|
||||
fileRef->addProperty("explicitFileType", "compiled.mach-o.executable", "", SettingsNoValue|SettingsQuoteVariable);
|
||||
fileRef->addProperty("includeInIndex", "0", "", SettingsNoValue);
|
||||
fileRef->addProperty("path", name, "", SettingsNoValue|SettingsQuoteVariable);
|
||||
fileRef->addProperty("sourceTree", "BUILT_PRODUCTS_DIR", "", SettingsNoValue);
|
||||
fileRef->addProperty("explicitFileType", "compiled.mach-o.executable", "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
fileRef->addProperty("includeInIndex", "0", "", kSettingsNoValue);
|
||||
fileRef->addProperty("path", name, "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
fileRef->addProperty("sourceTree", "BUILT_PRODUCTS_DIR", "", kSettingsNoValue);
|
||||
_fileReference.add(fileRef);
|
||||
_fileReference.flags = SettingsSingleItem;
|
||||
_fileReference._flags = kSettingsSingleItem;
|
||||
}
|
||||
|
||||
void XcodeProvider::addBuildFile(const std::string &id, const std::string &name, const std::string &fileRefId, const std::string &comment) {
|
||||
|
||||
Object *buildFile = new Object(this, id, name, "PBXBuildFile", "PBXBuildFile", comment);
|
||||
buildFile->addProperty("fileRef", fileRefId, name, SettingsNoValue);
|
||||
buildFile->addProperty("fileRef", fileRefId, name, kSettingsNoValue);
|
||||
_buildFile.add(buildFile);
|
||||
_buildFile.flags = SettingsSingleItem;
|
||||
_buildFile._flags = kSettingsSingleItem;
|
||||
}
|
||||
|
||||
XcodeProvider::XcodeProvider(StringList &global_warnings, std::map<std::string, StringList> &project_warnings, const int version)
|
||||
|
@ -218,7 +207,7 @@ void XcodeProvider::createWorkspace(const BuildSetup &setup) {
|
|||
createDirectory(workspace);
|
||||
_projectRoot = setup.srcDir;
|
||||
touchGroupsForPath(_projectRoot);
|
||||
|
||||
|
||||
// Setup global objects
|
||||
setupDefines(setup);
|
||||
#ifdef ENABLE_IOS
|
||||
|
@ -274,10 +263,10 @@ void XcodeProvider::ouputMainProjectFile(const BuildSetup &setup) {
|
|||
// Header
|
||||
project << "// !$*UTF8*$!\n"
|
||||
"{\n"
|
||||
"\t" << writeSetting("archiveVersion", "1", "", SettingsNoQuote) << ";\n"
|
||||
"\t" << writeSetting("archiveVersion", "1", "", kSettingsNoQuote) << ";\n"
|
||||
"\tclasses = {\n"
|
||||
"\t};\n"
|
||||
"\t" << writeSetting("objectVersion", "46", "", SettingsNoQuote) << ";\n"
|
||||
"\t" << writeSetting("objectVersion", "46", "", kSettingsNoQuote) << ";\n"
|
||||
"\tobjects = {\n";
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
@ -297,7 +286,7 @@ void XcodeProvider::ouputMainProjectFile(const BuildSetup &setup) {
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
// Footer
|
||||
project << "\t};\n"
|
||||
"\t" << writeSetting("rootObject", getHash("PBXProject"), "Project object", SettingsNoQuote) << ";\n"
|
||||
"\t" << writeSetting("rootObject", getHash("PBXProject"), "Project object", kSettingsNoQuote) << ";\n"
|
||||
"}\n";
|
||||
|
||||
}
|
||||
|
@ -333,7 +322,7 @@ void XcodeProvider::setupCopyFilesBuildPhase() {
|
|||
|
||||
#define DEF_SYSFRAMEWORK(framework) properties[framework".framework"] = FileProperty("wrapper.framework", framework".framework", "System/Library/Frameworks/" framework ".framework", "SDKROOT"); \
|
||||
ADD_SETTING_ORDER_NOVALUE(children, getHash(framework".framework"), framework".framework", fwOrder++);
|
||||
|
||||
|
||||
#define DEF_LOCALLIB_STATIC(lib) properties[lib".a"] = FileProperty("archive.ar", lib".a", "/opt/local/lib/" lib ".a", "\"<group>\""); \
|
||||
ADD_SETTING_ORDER_NOVALUE(children, getHash(lib".a"), lib".a", fwOrder++);
|
||||
|
||||
|
@ -343,14 +332,14 @@ void XcodeProvider::setupCopyFilesBuildPhase() {
|
|||
* (each native target has different build rules)
|
||||
*/
|
||||
void XcodeProvider::setupFrameworksBuildPhase() {
|
||||
_frameworksBuildPhase.comment = "PBXFrameworksBuildPhase";
|
||||
_frameworksBuildPhase._comment = "PBXFrameworksBuildPhase";
|
||||
|
||||
// Just use a hardcoded id for the Frameworks-group
|
||||
Group *frameworksGroup = new Group(this, "Frameworks", "PBXGroup_CustomTemplate_Frameworks_", "");
|
||||
|
||||
Property children;
|
||||
children.hasOrder = true;
|
||||
children.flags = SettingsAsList;
|
||||
children._hasOrder = true;
|
||||
children._flags = kSettingsAsList;
|
||||
|
||||
// Setup framework file properties
|
||||
std::map<std::string, FileProperty> properties;
|
||||
|
@ -380,7 +369,7 @@ void XcodeProvider::setupFrameworksBuildPhase() {
|
|||
DEF_LOCALLIB_STATIC("libfreetype");
|
||||
// DEF_LOCALLIB_STATIC("libmpeg2");
|
||||
|
||||
frameworksGroup->properties["children"] = children;
|
||||
frameworksGroup->_properties["children"] = children;
|
||||
_groups.add(frameworksGroup);
|
||||
// Force this to be added as a sub-group in the root.
|
||||
_rootSourceGroup->addChildGroup(frameworksGroup);
|
||||
|
@ -393,13 +382,13 @@ void XcodeProvider::setupFrameworksBuildPhase() {
|
|||
// iPhone
|
||||
Object *framework_iPhone = new Object(this, "PBXFrameworksBuildPhase_" + _targets[IOS_TARGET], "PBXFrameworksBuildPhase", "PBXFrameworksBuildPhase", "", "Frameworks");
|
||||
|
||||
framework_iPhone->addProperty("buildActionMask", "2147483647", "", SettingsNoValue);
|
||||
framework_iPhone->addProperty("runOnlyForDeploymentPostprocessing", "0", "", SettingsNoValue);
|
||||
framework_iPhone->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
|
||||
framework_iPhone->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
|
||||
|
||||
// List of frameworks
|
||||
Property iPhone_files;
|
||||
iPhone_files.hasOrder = true;
|
||||
iPhone_files.flags = SettingsAsList;
|
||||
iPhone_files._hasOrder = true;
|
||||
iPhone_files._flags = kSettingsAsList;
|
||||
|
||||
ValueList frameworks_iPhone;
|
||||
frameworks_iPhone.push_back("CoreAudio.framework");
|
||||
|
@ -420,10 +409,10 @@ void XcodeProvider::setupFrameworksBuildPhase() {
|
|||
|
||||
ADD_SETTING_ORDER_NOVALUE(iPhone_files, getHash(id), comment, order++);
|
||||
ADD_BUILD_FILE(id, *framework, getHash(*framework), comment);
|
||||
ADD_FILE_REFERENCE(*framework, *framework, properties[*framework]);
|
||||
addFileReference(*framework, *framework, properties[*framework]);
|
||||
}
|
||||
|
||||
framework_iPhone->properties["files"] = iPhone_files;
|
||||
framework_iPhone->_properties["files"] = iPhone_files;
|
||||
|
||||
_frameworksBuildPhase.add(framework_iPhone);
|
||||
#endif
|
||||
|
@ -431,13 +420,13 @@ void XcodeProvider::setupFrameworksBuildPhase() {
|
|||
// ScummVM-OS X
|
||||
Object *framework_OSX = new Object(this, "PBXFrameworksBuildPhase_" + _targets[OSX_TARGET], "PBXFrameworksBuildPhase", "PBXFrameworksBuildPhase", "", "Frameworks");
|
||||
|
||||
framework_OSX->addProperty("buildActionMask", "2147483647", "", SettingsNoValue);
|
||||
framework_OSX->addProperty("runOnlyForDeploymentPostprocessing", "0", "", SettingsNoValue);
|
||||
framework_OSX->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
|
||||
framework_OSX->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
|
||||
|
||||
// List of frameworks
|
||||
Property osx_files;
|
||||
osx_files.hasOrder = true;
|
||||
osx_files.flags = SettingsAsList;
|
||||
osx_files._hasOrder = true;
|
||||
osx_files._flags = kSettingsAsList;
|
||||
|
||||
ValueList frameworks_osx;
|
||||
frameworks_osx.push_back("CoreFoundation.framework");
|
||||
|
@ -462,10 +451,10 @@ void XcodeProvider::setupFrameworksBuildPhase() {
|
|||
|
||||
ADD_SETTING_ORDER_NOVALUE(osx_files, getHash(id), comment, order++);
|
||||
ADD_BUILD_FILE(id, *framework, getHash(*framework), comment);
|
||||
ADD_FILE_REFERENCE(*framework, *framework, properties[*framework]);
|
||||
addFileReference(*framework, *framework, properties[*framework]);
|
||||
}
|
||||
|
||||
framework_OSX->properties["files"] = osx_files;
|
||||
framework_OSX->_properties["files"] = osx_files;
|
||||
|
||||
_frameworksBuildPhase.add(framework_OSX);
|
||||
#ifdef ENABLE_IOS
|
||||
|
@ -473,13 +462,13 @@ void XcodeProvider::setupFrameworksBuildPhase() {
|
|||
// Simulator
|
||||
Object *framework_simulator = new Object(this, "PBXFrameworksBuildPhase_" + _targets[SIM_TARGET], "PBXFrameworksBuildPhase", "PBXFrameworksBuildPhase", "", "Frameworks");
|
||||
|
||||
framework_simulator->addProperty("buildActionMask", "2147483647", "", SettingsNoValue);
|
||||
framework_simulator->addProperty("runOnlyForDeploymentPostprocessing", "0", "", SettingsNoValue);
|
||||
framework_simulator->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
|
||||
framework_simulator->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
|
||||
|
||||
// List of frameworks
|
||||
Property simulator_files;
|
||||
simulator_files.hasOrder = true;
|
||||
simulator_files.flags = SettingsAsList;
|
||||
simulator_files._hasOrder = true;
|
||||
simulator_files._flags = kSettingsAsList;
|
||||
|
||||
ValueList frameworks_simulator;
|
||||
frameworks_simulator.push_back("CoreAudio.framework");
|
||||
|
@ -497,17 +486,17 @@ void XcodeProvider::setupFrameworksBuildPhase() {
|
|||
|
||||
ADD_SETTING_ORDER_NOVALUE(simulator_files, getHash(id), comment, order++);
|
||||
ADD_BUILD_FILE(id, *framework, getHash(*framework), comment);
|
||||
ADD_FILE_REFERENCE(*framework, *framework, properties[*framework]);
|
||||
addFileReference(*framework, *framework, properties[*framework]);
|
||||
}
|
||||
|
||||
framework_simulator->properties["files"] = simulator_files;
|
||||
framework_simulator->_properties["files"] = simulator_files;
|
||||
|
||||
_frameworksBuildPhase.add(framework_simulator);
|
||||
#endif
|
||||
}
|
||||
|
||||
void XcodeProvider::setupNativeTarget() {
|
||||
_nativeTarget.comment = "PBXNativeTarget";
|
||||
_nativeTarget._comment = "PBXNativeTarget";
|
||||
|
||||
// Just use a hardcoded id for the Products-group
|
||||
Group *productsGroup = new Group(this, "Products", "PBXGroup_CustomTemplate_Products_" , "");
|
||||
|
@ -520,26 +509,26 @@ void XcodeProvider::setupNativeTarget() {
|
|||
#endif
|
||||
Object *target = new Object(this, "PBXNativeTarget_" + _targets[i], "PBXNativeTarget", "PBXNativeTarget", "", _targets[i]);
|
||||
|
||||
target->addProperty("buildConfigurationList", getHash("XCConfigurationList_" + _targets[i]), "Build configuration list for PBXNativeTarget \"" + _targets[i] + "\"", SettingsNoValue);
|
||||
target->addProperty("buildConfigurationList", getHash("XCConfigurationList_" + _targets[i]), "Build configuration list for PBXNativeTarget \"" + _targets[i] + "\"", kSettingsNoValue);
|
||||
|
||||
Property buildPhases;
|
||||
buildPhases.hasOrder = true;
|
||||
buildPhases.flags = SettingsAsList;
|
||||
buildPhases.settings[getHash("PBXResourcesBuildPhase_" + _targets[i])] = Setting("", "Resources", SettingsNoValue, 0, 0);
|
||||
buildPhases.settings[getHash("PBXSourcesBuildPhase_" + _targets[i])] = Setting("", "Sources", SettingsNoValue, 0, 1);
|
||||
buildPhases.settings[getHash("PBXFrameworksBuildPhase_" + _targets[i])] = Setting("", "Frameworks", SettingsNoValue, 0, 2);
|
||||
target->properties["buildPhases"] = buildPhases;
|
||||
buildPhases._hasOrder = true;
|
||||
buildPhases._flags = kSettingsAsList;
|
||||
buildPhases._settings[getHash("PBXResourcesBuildPhase_" + _targets[i])] = Setting("", "Resources", kSettingsNoValue, 0, 0);
|
||||
buildPhases._settings[getHash("PBXSourcesBuildPhase_" + _targets[i])] = Setting("", "Sources", kSettingsNoValue, 0, 1);
|
||||
buildPhases._settings[getHash("PBXFrameworksBuildPhase_" + _targets[i])] = Setting("", "Frameworks", kSettingsNoValue, 0, 2);
|
||||
target->_properties["buildPhases"] = buildPhases;
|
||||
|
||||
target->addProperty("buildRules", "", "", SettingsNoValue|SettingsAsList);
|
||||
target->addProperty("buildRules", "", "", kSettingsNoValue | kSettingsAsList);
|
||||
|
||||
target->addProperty("dependencies", "", "", SettingsNoValue|SettingsAsList);
|
||||
target->addProperty("dependencies", "", "", kSettingsNoValue | kSettingsAsList);
|
||||
|
||||
target->addProperty("name", _targets[i], "", SettingsNoValue|SettingsQuoteVariable);
|
||||
target->addProperty("productName", PROJECT_NAME, "", SettingsNoValue);
|
||||
target->addProperty("name", _targets[i], "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
target->addProperty("productName", PROJECT_NAME, "", kSettingsNoValue);
|
||||
addProductFileReference("PBXFileReference_" PROJECT_DESCRIPTION ".app_" + _targets[i], PROJECT_DESCRIPTION ".app");
|
||||
productsGroup->addChildByHash(getHash("PBXFileReference_" PROJECT_DESCRIPTION ".app_" + _targets[i]), PROJECT_DESCRIPTION ".app");
|
||||
target->addProperty("productReference", getHash("PBXFileReference_" PROJECT_DESCRIPTION ".app_" + _targets[i]), PROJECT_DESCRIPTION ".app", SettingsNoValue);
|
||||
target->addProperty("productType", "com.apple.product-type.application", "", SettingsNoValue|SettingsQuoteVariable);
|
||||
target->addProperty("productReference", getHash("PBXFileReference_" PROJECT_DESCRIPTION ".app_" + _targets[i]), PROJECT_DESCRIPTION ".app", kSettingsNoValue);
|
||||
target->addProperty("productType", "com.apple.product-type.application", "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
|
||||
_nativeTarget.add(target);
|
||||
}
|
||||
|
@ -548,49 +537,49 @@ void XcodeProvider::setupNativeTarget() {
|
|||
}
|
||||
|
||||
void XcodeProvider::setupProject() {
|
||||
_project.comment = "PBXProject";
|
||||
_project._comment = "PBXProject";
|
||||
|
||||
Object *project = new Object(this, "PBXProject", "PBXProject", "PBXProject", "", "Project object");
|
||||
|
||||
project->addProperty("buildConfigurationList", getHash("XCConfigurationList_scummvm"), "Build configuration list for PBXProject \"" PROJECT_NAME "\"", SettingsNoValue);
|
||||
project->addProperty("compatibilityVersion", "Xcode 3.2", "", SettingsNoValue|SettingsQuoteVariable);
|
||||
project->addProperty("developmentRegion", "English", "", SettingsNoValue);
|
||||
project->addProperty("hasScannedForEncodings", "1", "", SettingsNoValue);
|
||||
project->addProperty("buildConfigurationList", getHash("XCConfigurationList_scummvm"), "Build configuration list for PBXProject \"" PROJECT_NAME "\"", kSettingsNoValue);
|
||||
project->addProperty("compatibilityVersion", "Xcode 3.2", "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
project->addProperty("developmentRegion", "English", "", kSettingsNoValue);
|
||||
project->addProperty("hasScannedForEncodings", "1", "", kSettingsNoValue);
|
||||
|
||||
// List of known regions
|
||||
Property regions;
|
||||
regions.flags = SettingsAsList;
|
||||
regions._flags = kSettingsAsList;
|
||||
ADD_SETTING_ORDER_NOVALUE(regions, "English", "", 0);
|
||||
ADD_SETTING_ORDER_NOVALUE(regions, "Japanese", "", 1);
|
||||
ADD_SETTING_ORDER_NOVALUE(regions, "French", "", 2);
|
||||
ADD_SETTING_ORDER_NOVALUE(regions, "German", "", 3);
|
||||
project->properties["knownRegions"] = regions;
|
||||
project->_properties["knownRegions"] = regions;
|
||||
|
||||
project->addProperty("mainGroup", _rootSourceGroup->getHashRef(), "CustomTemplate", SettingsNoValue);
|
||||
project->addProperty("projectDirPath", _projectRoot, "", SettingsNoValue|SettingsQuoteVariable);
|
||||
project->addProperty("projectRoot", "", "", SettingsNoValue|SettingsQuoteVariable);
|
||||
project->addProperty("mainGroup", _rootSourceGroup->getHashRef(), "CustomTemplate", kSettingsNoValue);
|
||||
project->addProperty("projectDirPath", _projectRoot, "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
project->addProperty("projectRoot", "", "", kSettingsNoValue | kSettingsQuoteVariable);
|
||||
|
||||
// List of targets
|
||||
Property targets;
|
||||
targets.flags = SettingsAsList;
|
||||
targets._flags = kSettingsAsList;
|
||||
#ifdef ENABLE_IOS
|
||||
targets.settings[getHash("PBXNativeTarget_" + _targets[IOS_TARGET])] = Setting("", _targets[IOS_TARGET], SettingsNoValue, 0, 0);
|
||||
targets._settings[getHash("PBXNativeTarget_" + _targets[IOS_TARGET])] = Setting("", _targets[IOS_TARGET], kSettingsNoValue, 0, 0);
|
||||
#endif
|
||||
targets.settings[getHash("PBXNativeTarget_" + _targets[OSX_TARGET])] = Setting("", _targets[OSX_TARGET], SettingsNoValue, 0, 1);
|
||||
targets._settings[getHash("PBXNativeTarget_" + _targets[OSX_TARGET])] = Setting("", _targets[OSX_TARGET], kSettingsNoValue, 0, 1);
|
||||
#ifdef ENABLE_IOS
|
||||
targets.settings[getHash("PBXNativeTarget_" + _targets[SIM_TARGET])] = Setting("", _targets[SIM_TARGET], SettingsNoValue, 0, 2);
|
||||
targets._settings[getHash("PBXNativeTarget_" + _targets[SIM_TARGET])] = Setting("", _targets[SIM_TARGET], kSettingsNoValue, 0, 2);
|
||||
#endif
|
||||
project->properties["targets"] = targets;
|
||||
project->_properties["targets"] = targets;
|
||||
#ifndef ENABLE_IOS
|
||||
// Force list even when there is only a single target
|
||||
project->properties["targets"].flags |= SettingsSingleItem;
|
||||
project->_properties["targets"]._flags |= kSettingsSingleItem;
|
||||
#endif
|
||||
|
||||
_project.add(project);
|
||||
}
|
||||
|
||||
void XcodeProvider::setupResourcesBuildPhase() {
|
||||
_resourcesBuildPhase.comment = "PBXResourcesBuildPhase";
|
||||
_resourcesBuildPhase._comment = "PBXResourcesBuildPhase";
|
||||
|
||||
// Setup resource file properties
|
||||
std::map<std::string, FileProperty> properties;
|
||||
|
@ -615,12 +604,12 @@ void XcodeProvider::setupResourcesBuildPhase() {
|
|||
for (unsigned int i = 0; i < _targets.size(); i++) {
|
||||
Object *resource = new Object(this, "PBXResourcesBuildPhase_" + _targets[i], "PBXResourcesBuildPhase", "PBXResourcesBuildPhase", "", "Resources");
|
||||
|
||||
resource->addProperty("buildActionMask", "2147483647", "", SettingsNoValue);
|
||||
resource->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
|
||||
|
||||
// Add default files
|
||||
Property files;
|
||||
files.hasOrder = true;
|
||||
files.flags = SettingsAsList;
|
||||
files._hasOrder = true;
|
||||
files._flags = kSettingsAsList;
|
||||
|
||||
ValueList files_list;
|
||||
files_list.push_back("scummclassic.zip");
|
||||
|
@ -646,28 +635,28 @@ void XcodeProvider::setupResourcesBuildPhase() {
|
|||
ADD_SETTING_ORDER_NOVALUE(files, getHash(id), comment, order++);
|
||||
// TODO Fix crash when adding build file for data
|
||||
//ADD_BUILD_FILE(id, *file, comment);
|
||||
ADD_FILE_REFERENCE(*file, *file, properties[*file]);
|
||||
addFileReference(*file, *file, properties[*file]);
|
||||
}
|
||||
|
||||
// Add custom files depending on the target
|
||||
if (_targets[i] == PROJECT_DESCRIPTION "-OS X") {
|
||||
files.settings[getHash("PBXResources_" PROJECT_NAME ".icns")] = Setting("", PROJECT_NAME ".icns in Resources", SettingsNoValue, 0, 6);
|
||||
files._settings[getHash("PBXResources_" PROJECT_NAME ".icns")] = Setting("", PROJECT_NAME ".icns in Resources", kSettingsNoValue, 0, 6);
|
||||
|
||||
// Remove 2 iphone icon files
|
||||
files.settings.erase(getHash("PBXResources_Default.png"));
|
||||
files.settings.erase(getHash("PBXResources_icon.png"));
|
||||
files._settings.erase(getHash("PBXResources_Default.png"));
|
||||
files._settings.erase(getHash("PBXResources_icon.png"));
|
||||
}
|
||||
|
||||
resource->properties["files"] = files;
|
||||
resource->_properties["files"] = files;
|
||||
|
||||
resource->addProperty("runOnlyForDeploymentPostprocessing", "0", "", SettingsNoValue);
|
||||
resource->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
|
||||
|
||||
_resourcesBuildPhase.add(resource);
|
||||
}
|
||||
}
|
||||
|
||||
void XcodeProvider::setupSourcesBuildPhase() {
|
||||
_sourcesBuildPhase.comment = "PBXSourcesBuildPhase";
|
||||
_sourcesBuildPhase._comment = "PBXSourcesBuildPhase";
|
||||
|
||||
// Setup source file properties
|
||||
std::map<std::string, FileProperty> properties;
|
||||
|
@ -676,24 +665,24 @@ void XcodeProvider::setupSourcesBuildPhase() {
|
|||
for (unsigned int i = 0; i < _targets.size(); i++) {
|
||||
Object *source = new Object(this, "PBXSourcesBuildPhase_" + _targets[i], "PBXSourcesBuildPhase", "PBXSourcesBuildPhase", "", "Sources");
|
||||
|
||||
source->addProperty("buildActionMask", "2147483647", "", SettingsNoValue);
|
||||
source->addProperty("buildActionMask", "2147483647", "", kSettingsNoValue);
|
||||
|
||||
Property files;
|
||||
files.hasOrder = true;
|
||||
files.flags = SettingsAsList;
|
||||
files._hasOrder = true;
|
||||
files._flags = kSettingsAsList;
|
||||
|
||||
int order = 0;
|
||||
for (std::vector<Object*>::iterator file = _buildFile.objects.begin(); file !=_buildFile.objects.end(); ++file) {
|
||||
if (!producesObjectFileOnOSX((*file)->name)) {
|
||||
for (std::vector<Object *>::iterator file = _buildFile._objects.begin(); file != _buildFile._objects.end(); ++file) {
|
||||
if (!producesObjectFileOnOSX((*file)->_name)) {
|
||||
continue;
|
||||
}
|
||||
std::string comment = (*file)->name + " in Sources";
|
||||
ADD_SETTING_ORDER_NOVALUE(files, getHash((*file)->id), comment, order++);
|
||||
std::string comment = (*file)->_name + " in Sources";
|
||||
ADD_SETTING_ORDER_NOVALUE(files, getHash((*file)->_id), comment, order++);
|
||||
}
|
||||
|
||||
source->properties["files"] = files;
|
||||
source->_properties["files"] = files;
|
||||
|
||||
source->addProperty("runOnlyForDeploymentPostprocessing", "0", "", SettingsNoValue);
|
||||
source->addProperty("runOnlyForDeploymentPostprocessing", "0", "", kSettingsNoValue);
|
||||
|
||||
_sourcesBuildPhase.add(source);
|
||||
}
|
||||
|
@ -702,8 +691,8 @@ void XcodeProvider::setupSourcesBuildPhase() {
|
|||
// Setup all build configurations
|
||||
void XcodeProvider::setupBuildConfiguration() {
|
||||
|
||||
_buildConfiguration.comment = "XCBuildConfiguration";
|
||||
_buildConfiguration.flags = SettingsAsList;
|
||||
_buildConfiguration._comment = "XCBuildConfiguration";
|
||||
_buildConfiguration._flags = kSettingsAsList;
|
||||
|
||||
///****************************************
|
||||
// * iPhone
|
||||
|
@ -721,7 +710,7 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
ValueList iPhone_FrameworkSearchPaths;
|
||||
iPhone_FrameworkSearchPaths.push_back("$(inherited)");
|
||||
iPhone_FrameworkSearchPaths.push_back("\"$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"");
|
||||
ADD_SETTING_LIST(iPhone_Debug, "FRAMEWORK_SEARCH_PATHS", iPhone_FrameworkSearchPaths, SettingsAsList, 5);
|
||||
ADD_SETTING_LIST(iPhone_Debug, "FRAMEWORK_SEARCH_PATHS", iPhone_FrameworkSearchPaths, kSettingsAsList, 5);
|
||||
ADD_SETTING(iPhone_Debug, "GCC_DYNAMIC_NO_PIC", "NO");
|
||||
ADD_SETTING(iPhone_Debug, "GCC_ENABLE_CPP_EXCEPTIONS", "NO");
|
||||
ADD_SETTING(iPhone_Debug, "GCC_ENABLE_FIX_AND_CONTINUE", "NO");
|
||||
|
@ -734,12 +723,12 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
iPhone_HeaderSearchPaths.push_back("$(SRCROOT)/engines/");
|
||||
iPhone_HeaderSearchPaths.push_back("$(SRCROOT)");
|
||||
iPhone_HeaderSearchPaths.push_back("include/");
|
||||
ADD_SETTING_LIST(iPhone_Debug, "HEADER_SEARCH_PATHS", iPhone_HeaderSearchPaths, SettingsAsList|SettingsQuoteVariable, 5);
|
||||
ADD_SETTING_LIST(iPhone_Debug, "HEADER_SEARCH_PATHS", iPhone_HeaderSearchPaths, kSettingsAsList | kSettingsQuoteVariable, 5);
|
||||
ADD_SETTING(iPhone_Debug, "INFOPLIST_FILE", "Info.plist");
|
||||
ValueList iPhone_LibPaths;
|
||||
iPhone_LibPaths.push_back("$(inherited)");
|
||||
iPhone_LibPaths.push_back("\"$(SRCROOT)/lib\"");
|
||||
ADD_SETTING_LIST(iPhone_Debug, "LIBRARY_SEARCH_PATHS", iPhone_LibPaths, SettingsAsList, 5);
|
||||
ADD_SETTING_LIST(iPhone_Debug, "LIBRARY_SEARCH_PATHS", iPhone_LibPaths, kSettingsAsList, 5);
|
||||
ADD_SETTING(iPhone_Debug, "ONLY_ACTIVE_ARCH", "YES");
|
||||
ADD_SETTING(iPhone_Debug, "PREBINDING", "NO");
|
||||
ADD_SETTING(iPhone_Debug, "PRODUCT_NAME", PROJECT_DESCRIPTION);
|
||||
|
@ -748,8 +737,8 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
ADD_SETTING(iPhone_Debug, "SDKROOT", "iphoneos4.0");
|
||||
ADD_SETTING_QUOTE(iPhone_Debug, "TARGETED_DEVICE_FAMILY", "1,2");
|
||||
|
||||
iPhone_Debug_Object->addProperty("name", "Debug", "", SettingsNoValue);
|
||||
iPhone_Debug_Object->properties["buildSettings"] = iPhone_Debug;
|
||||
iPhone_Debug_Object->addProperty("name", "Debug", "", kSettingsNoValue);
|
||||
iPhone_Debug_Object->_properties["buildSettings"] = iPhone_Debug;
|
||||
|
||||
// Release
|
||||
Object *iPhone_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-iPhone_Release", _targets[IOS_TARGET] /* ScummVM-iPhone */, "XCBuildConfiguration", "PBXNativeTarget", "Release");
|
||||
|
@ -759,8 +748,8 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
REMOVE_SETTING(iPhone_Release, "GCC_DYNAMIC_NO_PIC");
|
||||
ADD_SETTING(iPhone_Release, "WRAPPER_EXTENSION", "app");
|
||||
|
||||
iPhone_Release_Object->addProperty("name", "Release", "", SettingsNoValue);
|
||||
iPhone_Release_Object->properties["buildSettings"] = iPhone_Release;
|
||||
iPhone_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
|
||||
iPhone_Release_Object->_properties["buildSettings"] = iPhone_Release;
|
||||
|
||||
_buildConfiguration.add(iPhone_Debug_Object);
|
||||
_buildConfiguration.add(iPhone_Release_Object);
|
||||
|
@ -787,7 +776,7 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
ADD_DEFINE(scummvm_defines, "IPHONE");
|
||||
ADD_DEFINE(scummvm_defines, "XCODE");
|
||||
ADD_DEFINE(scummvm_defines, "IPHONE_OFFICIAL");
|
||||
ADD_SETTING_LIST(scummvm_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvm_defines, SettingsNoQuote|SettingsAsList, 5);
|
||||
ADD_SETTING_LIST(scummvm_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvm_defines, kSettingsNoQuote | kSettingsAsList, 5);
|
||||
ADD_SETTING(scummvm_Debug, "GCC_THUMB_SUPPORT", "NO");
|
||||
ADD_SETTING(scummvm_Debug, "GCC_USE_GCC3_PFE_SUPPORT", "NO");
|
||||
ADD_SETTING(scummvm_Debug, "GCC_WARN_ABOUT_RETURN_TYPE", "YES");
|
||||
|
@ -796,7 +785,7 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
scummvm_HeaderPaths.push_back("include/");
|
||||
scummvm_HeaderPaths.push_back("$(SRCROOT)/engines/");
|
||||
scummvm_HeaderPaths.push_back("$(SRCROOT)");
|
||||
ADD_SETTING_LIST(scummvm_Debug, "HEADER_SEARCH_PATHS", scummvm_HeaderPaths, SettingsQuoteVariable|SettingsAsList, 5);
|
||||
ADD_SETTING_LIST(scummvm_Debug, "HEADER_SEARCH_PATHS", scummvm_HeaderPaths, kSettingsQuoteVariable | kSettingsAsList, 5);
|
||||
ADD_SETTING_QUOTE(scummvm_Debug, "LIBRARY_SEARCH_PATHS", "");
|
||||
ADD_SETTING(scummvm_Debug, "ONLY_ACTIVE_ARCH", "YES");
|
||||
ADD_SETTING_QUOTE(scummvm_Debug, "OTHER_CFLAGS", "");
|
||||
|
@ -804,8 +793,8 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
ADD_SETTING(scummvm_Debug, "PREBINDING", "NO");
|
||||
ADD_SETTING(scummvm_Debug, "SDKROOT", "macosx");
|
||||
|
||||
scummvm_Debug_Object->addProperty("name", "Debug", "", SettingsNoValue);
|
||||
scummvm_Debug_Object->properties["buildSettings"] = scummvm_Debug;
|
||||
scummvm_Debug_Object->addProperty("name", "Debug", "", kSettingsNoValue);
|
||||
scummvm_Debug_Object->_properties["buildSettings"] = scummvm_Debug;
|
||||
|
||||
// Release
|
||||
Object *scummvm_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_NAME "_Release", PROJECT_NAME, "XCBuildConfiguration", "PBXProject", "Release");
|
||||
|
@ -815,8 +804,8 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
REMOVE_SETTING(scummvm_Release, "GCC_WARN_UNUSED_VARIABLE");
|
||||
REMOVE_SETTING(scummvm_Release, "ONLY_ACTIVE_ARCH");
|
||||
|
||||
scummvm_Release_Object->addProperty("name", "Release", "", SettingsNoValue);
|
||||
scummvm_Release_Object->properties["buildSettings"] = scummvm_Release;
|
||||
scummvm_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
|
||||
scummvm_Release_Object->_properties["buildSettings"] = scummvm_Release;
|
||||
|
||||
_buildConfiguration.add(scummvm_Debug_Object);
|
||||
_buildConfiguration.add(scummvm_Release_Object);
|
||||
|
@ -844,7 +833,7 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
ValueList scummvmOSX_defines(_defines);
|
||||
ADD_DEFINE(scummvmOSX_defines, "SDL_BACKEND");
|
||||
ADD_DEFINE(scummvmOSX_defines, "MACOSX");
|
||||
ADD_SETTING_LIST(scummvmOSX_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvmOSX_defines, SettingsNoQuote|SettingsAsList, 5);
|
||||
ADD_SETTING_LIST(scummvmOSX_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvmOSX_defines, kSettingsNoQuote | kSettingsAsList, 5);
|
||||
ADD_SETTING_QUOTE(scummvmOSX_Debug, "GCC_VERSION", "");
|
||||
ValueList scummvmOSX_HeaderPaths;
|
||||
scummvmOSX_HeaderPaths.push_back("/opt/local/include/SDL");
|
||||
|
@ -853,14 +842,14 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
scummvmOSX_HeaderPaths.push_back("include/");
|
||||
scummvmOSX_HeaderPaths.push_back("$(SRCROOT)/engines/");
|
||||
scummvmOSX_HeaderPaths.push_back("$(SRCROOT)");
|
||||
ADD_SETTING_LIST(scummvmOSX_Debug, "HEADER_SEARCH_PATHS", scummvmOSX_HeaderPaths, SettingsQuoteVariable|SettingsAsList, 5);
|
||||
ADD_SETTING_LIST(scummvmOSX_Debug, "HEADER_SEARCH_PATHS", scummvmOSX_HeaderPaths, kSettingsQuoteVariable | kSettingsAsList, 5);
|
||||
ADD_SETTING_QUOTE(scummvmOSX_Debug, "INFOPLIST_FILE", "$(SRCROOT)/dists/macosx/Info.plist");
|
||||
ValueList scummvmOSX_LibPaths;
|
||||
scummvmOSX_LibPaths.push_back("/sw/lib");
|
||||
scummvmOSX_LibPaths.push_back("/opt/local/lib");
|
||||
scummvmOSX_LibPaths.push_back("\"$(inherited)\"");
|
||||
scummvmOSX_LibPaths.push_back("\"\\\\\\\"$(SRCROOT)/lib\\\\\\\"\""); // mmmh, all those slashes, it's almost Christmas \o/
|
||||
ADD_SETTING_LIST(scummvmOSX_Debug, "LIBRARY_SEARCH_PATHS", scummvmOSX_LibPaths, SettingsNoQuote|SettingsAsList, 5);
|
||||
ADD_SETTING_LIST(scummvmOSX_Debug, "LIBRARY_SEARCH_PATHS", scummvmOSX_LibPaths, kSettingsNoQuote | kSettingsAsList, 5);
|
||||
ADD_SETTING_QUOTE(scummvmOSX_Debug, "OTHER_CFLAGS", "");
|
||||
ValueList scummvmOSX_LdFlags;
|
||||
scummvmOSX_LdFlags.push_back("-lSDLmain");
|
||||
|
@ -875,12 +864,12 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
scummvmOSX_LdFlags.push_back("-lFLAC");
|
||||
scummvmOSX_LdFlags.push_back("-lSDL");
|
||||
scummvmOSX_LdFlags.push_back("-lz");
|
||||
ADD_SETTING_LIST(scummvmOSX_Debug, "OTHER_LDFLAGS", scummvmOSX_LdFlags, SettingsAsList, 5);
|
||||
ADD_SETTING_LIST(scummvmOSX_Debug, "OTHER_LDFLAGS", scummvmOSX_LdFlags, kSettingsAsList, 5);
|
||||
ADD_SETTING(scummvmOSX_Debug, "PREBINDING", "NO");
|
||||
ADD_SETTING(scummvmOSX_Debug, "PRODUCT_NAME", PROJECT_DESCRIPTION);
|
||||
|
||||
scummvmOSX_Debug_Object->addProperty("name", "Debug", "", SettingsNoValue);
|
||||
scummvmOSX_Debug_Object->properties["buildSettings"] = scummvmOSX_Debug;
|
||||
scummvmOSX_Debug_Object->addProperty("name", "Debug", "", kSettingsNoValue);
|
||||
scummvmOSX_Debug_Object->_properties["buildSettings"] = scummvmOSX_Debug;
|
||||
|
||||
// Release
|
||||
Object *scummvmOSX_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-OSX_Release", _targets[OSX_TARGET] /* ScummVM-OS X */, "XCBuildConfiguration", "PBXNativeTarget", "Release");
|
||||
|
@ -890,8 +879,8 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
REMOVE_SETTING(scummvmOSX_Release, "GCC_OPTIMIZATION_LEVEL");
|
||||
ADD_SETTING(scummvmOSX_Release, "WRAPPER_EXTENSION", "app");
|
||||
|
||||
scummvmOSX_Release_Object->addProperty("name", "Release", "", SettingsNoValue);
|
||||
scummvmOSX_Release_Object->properties["buildSettings"] = scummvmOSX_Release;
|
||||
scummvmOSX_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
|
||||
scummvmOSX_Release_Object->_properties["buildSettings"] = scummvmOSX_Release;
|
||||
|
||||
_buildConfiguration.add(scummvmOSX_Debug_Object);
|
||||
_buildConfiguration.add(scummvmOSX_Release_Object);
|
||||
|
@ -904,13 +893,13 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
Object *scummvmSimulator_Debug_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-Simulator_Debug", _targets[SIM_TARGET] /* ScummVM-Simulator */, "XCBuildConfiguration", "PBXNativeTarget", "Debug");
|
||||
Property scummvmSimulator_Debug(iPhone_Debug);
|
||||
ADD_SETTING_QUOTE(scummvmSimulator_Debug, "FRAMEWORK_SEARCH_PATHS", "$(inherited)");
|
||||
ADD_SETTING_LIST(scummvmSimulator_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvm_defines, SettingsNoQuote|SettingsAsList, 5);
|
||||
ADD_SETTING_LIST(scummvmSimulator_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvm_defines, kSettingsNoQuote | kSettingsAsList, 5);
|
||||
ADD_SETTING(scummvmSimulator_Debug, "SDKROOT", "iphonesimulator3.2");
|
||||
ADD_SETTING_QUOTE(scummvmSimulator_Debug, "VALID_ARCHS", "i386 x86_64");
|
||||
REMOVE_SETTING(scummvmSimulator_Debug, "TARGETED_DEVICE_FAMILY");
|
||||
|
||||
scummvmSimulator_Debug_Object->addProperty("name", "Debug", "", SettingsNoValue);
|
||||
scummvmSimulator_Debug_Object->properties["buildSettings"] = scummvmSimulator_Debug;
|
||||
scummvmSimulator_Debug_Object->addProperty("name", "Debug", "", kSettingsNoValue);
|
||||
scummvmSimulator_Debug_Object->_properties["buildSettings"] = scummvmSimulator_Debug;
|
||||
|
||||
// Release
|
||||
Object *scummvmSimulator_Release_Object = new Object(this, "XCBuildConfiguration_" PROJECT_DESCRIPTION "-Simulator_Release", _targets[SIM_TARGET] /* ScummVM-Simulator */, "XCBuildConfiguration", "PBXNativeTarget", "Release");
|
||||
|
@ -920,32 +909,32 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
REMOVE_SETTING(scummvmSimulator_Release, "GCC_DYNAMIC_NO_PIC");
|
||||
ADD_SETTING(scummvmSimulator_Release, "WRAPPER_EXTENSION", "app");
|
||||
|
||||
scummvmSimulator_Release_Object->addProperty("name", "Release", "", SettingsNoValue);
|
||||
scummvmSimulator_Release_Object->properties["buildSettings"] = scummvmSimulator_Release;
|
||||
scummvmSimulator_Release_Object->addProperty("name", "Release", "", kSettingsNoValue);
|
||||
scummvmSimulator_Release_Object->_properties["buildSettings"] = scummvmSimulator_Release;
|
||||
|
||||
_buildConfiguration.add(scummvmSimulator_Debug_Object);
|
||||
_buildConfiguration.add(scummvmSimulator_Release_Object);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Configuration List
|
||||
_configurationList.comment = "XCConfigurationList";
|
||||
_configurationList.flags = SettingsAsList;
|
||||
_configurationList._comment = "XCConfigurationList";
|
||||
_configurationList._flags = kSettingsAsList;
|
||||
#endif
|
||||
// Warning: This assumes we have all configurations with a Debug & Release pair
|
||||
for (std::vector<Object *>::iterator config = _buildConfiguration.objects.begin(); config != _buildConfiguration.objects.end(); config++) {
|
||||
for (std::vector<Object *>::iterator config = _buildConfiguration._objects.begin(); config != _buildConfiguration._objects.end(); config++) {
|
||||
|
||||
Object *configList = new Object(this, "XCConfigurationList_" + (*config)->name, (*config)->name, "XCConfigurationList", "", "Build configuration list for " + (*config)->refType + " \"" + (*config)->name + "\"");
|
||||
Object *configList = new Object(this, "XCConfigurationList_" + (*config)->_name, (*config)->_name, "XCConfigurationList", "", "Build configuration list for " + (*config)->_refType + " \"" + (*config)->_name + "\"");
|
||||
|
||||
Property buildConfigs;
|
||||
buildConfigs.flags = SettingsAsList;
|
||||
buildConfigs._flags = kSettingsAsList;
|
||||
|
||||
buildConfigs.settings[getHash((*config)->id)] = Setting("", "Debug", SettingsNoValue, 0, 0);
|
||||
buildConfigs.settings[getHash((*(++config))->id)] = Setting("", "Release", SettingsNoValue, 0, 1);
|
||||
buildConfigs._settings[getHash((*config)->_id)] = Setting("", "Debug", kSettingsNoValue, 0, 0);
|
||||
buildConfigs._settings[getHash((*(++config))->_id)] = Setting("", "Release", kSettingsNoValue, 0, 1);
|
||||
|
||||
configList->properties["buildConfigurations"] = buildConfigs;
|
||||
configList->_properties["buildConfigurations"] = buildConfigs;
|
||||
|
||||
configList->addProperty("defaultConfigurationIsVisible", "0", "", SettingsNoValue);
|
||||
configList->addProperty("defaultConfigurationName", "Release", "", SettingsNoValue);
|
||||
configList->addProperty("defaultConfigurationIsVisible", "0", "", kSettingsNoValue);
|
||||
configList->addProperty("defaultConfigurationName", "Release", "", kSettingsNoValue);
|
||||
|
||||
_configurationList.add(configList);
|
||||
}
|
||||
|
@ -959,7 +948,7 @@ void XcodeProvider::setupBuildConfiguration() {
|
|||
void XcodeProvider::setupDefines(const BuildSetup &setup) {
|
||||
|
||||
for (StringList::const_iterator i = setup.defines.begin(); i != setup.defines.end(); ++i) {
|
||||
if (*i == "HAVE_NASM") // Not supported on Mac (TODO: change how it's handled in main class or add it only in MSVC/CodeBlocks providers?)
|
||||
if (*i == "HAVE_NASM") // Not supported on Mac (TODO: change how it's handled in main class or add it only in MSVC/CodeBlocks providers?)
|
||||
continue;
|
||||
|
||||
ADD_DEFINE(_defines, *i);
|
||||
|
@ -995,7 +984,7 @@ std::string XcodeProvider::getHash(std::string key) {
|
|||
#endif
|
||||
}
|
||||
|
||||
bool isSeparator (char s) { return (s == '-'); }
|
||||
bool isSeparator(char s) { return (s == '-'); }
|
||||
|
||||
std::string XcodeProvider::newHash() const {
|
||||
std::string hash = createUUID();
|
||||
|
@ -1018,10 +1007,10 @@ std::string replace(std::string input, const std::string find, std::string repla
|
|||
std::string::size_type findLen = find.length();
|
||||
std::string::size_type replaceLen = replaceStr.length();
|
||||
|
||||
if (findLen == 0 )
|
||||
if (findLen == 0)
|
||||
return input;
|
||||
|
||||
for (;(pos = input.find(find, pos)) != std::string::npos;) {
|
||||
for (; (pos = input.find(find, pos)) != std::string::npos;) {
|
||||
input.replace(pos, findLen, replaceStr);
|
||||
pos += replaceLen;
|
||||
}
|
||||
|
@ -1032,30 +1021,30 @@ std::string replace(std::string input, const std::string find, std::string repla
|
|||
std::string XcodeProvider::writeProperty(const std::string &variable, Property &prop, int flags) const {
|
||||
std::string output;
|
||||
|
||||
output += (flags & SettingsSingleItem ? "" : "\t\t\t") + variable + " = ";
|
||||
output += (flags & kSettingsSingleItem ? "" : "\t\t\t") + variable + " = ";
|
||||
|
||||
if (prop.settings.size() > 1 || (prop.flags & SettingsSingleItem))
|
||||
output += (prop.flags & SettingsAsList) ? "(\n" : "{\n";
|
||||
if (prop._settings.size() > 1 || (prop._flags & kSettingsSingleItem))
|
||||
output += (prop._flags & kSettingsAsList) ? "(\n" : "{\n";
|
||||
|
||||
OrderedSettingList settings = prop.getOrderedSettingList();
|
||||
for (OrderedSettingList::const_iterator setting = settings.begin(); setting != settings.end(); ++setting) {
|
||||
if (settings.size() > 1 || (prop.flags & SettingsSingleItem))
|
||||
output += (flags & SettingsSingleItem ? " " : "\t\t\t\t");
|
||||
if (settings.size() > 1 || (prop._flags & kSettingsSingleItem))
|
||||
output += (flags & kSettingsSingleItem ? " " : "\t\t\t\t");
|
||||
|
||||
output += writeSetting((*setting).first, (*setting).second);
|
||||
output += writeSetting(setting->first, setting->second);
|
||||
|
||||
// The combination of SettingsAsList, and SettingsSingleItem should use "," and not ";" (i.e children
|
||||
// The combination of kSettingsAsList, and kSettingsSingleItem should use "," and not ";" (i.e children
|
||||
// in PBXGroup, so we special case that case here.
|
||||
if ((prop.flags & SettingsAsList) && (prop.settings.size() > 1 || (prop.flags & SettingsSingleItem))) {
|
||||
output += (prop.settings.size() > 0) ? ",\n" : "\n";
|
||||
if ((prop._flags & kSettingsAsList) && (prop._settings.size() > 1 || (prop._flags & kSettingsSingleItem))) {
|
||||
output += (prop._settings.size() > 0) ? ",\n" : "\n";
|
||||
} else {
|
||||
output += ";";
|
||||
output += (flags & SettingsSingleItem ? " " : "\n");
|
||||
output += (flags & kSettingsSingleItem ? " " : "\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (prop.settings.size() > 1 || (prop.flags & SettingsSingleItem))
|
||||
output += (prop.flags & SettingsAsList) ? "\t\t\t);\n" : "\t\t\t};\n";
|
||||
if (prop._settings.size() > 1 || (prop._flags & kSettingsSingleItem))
|
||||
output += (prop._flags & kSettingsAsList) ? "\t\t\t);\n" : "\t\t\t};\n";
|
||||
|
||||
return output;
|
||||
}
|
||||
|
@ -1068,32 +1057,32 @@ std::string XcodeProvider::writeSetting(const std::string &variable, std::string
|
|||
// XCode project generator pbuilder_pbx.cpp, writeSettings() (under LGPL 2.1)
|
||||
std::string XcodeProvider::writeSetting(const std::string &variable, const Setting &setting) const {
|
||||
std::string output;
|
||||
const std::string quote = (setting.flags & SettingsNoQuote) ? "" : "\"";
|
||||
const std::string quote = (setting._flags & kSettingsNoQuote) ? "" : "\"";
|
||||
const std::string escape_quote = quote.empty() ? "" : "\\" + quote;
|
||||
std::string newline = "\n";
|
||||
|
||||
// Get indent level
|
||||
for (int i = 0; i < setting.indent; ++i)
|
||||
for (int i = 0; i < setting._indent; ++i)
|
||||
newline += "\t";
|
||||
|
||||
// Setup variable
|
||||
std::string var = (setting.flags & SettingsQuoteVariable) ? "\"" + variable + "\"" : variable;
|
||||
std::string var = (setting._flags & kSettingsQuoteVariable) ? "\"" + variable + "\"" : variable;
|
||||
|
||||
// Output a list
|
||||
if (setting.flags & SettingsAsList) {
|
||||
if (setting._flags & kSettingsAsList) {
|
||||
|
||||
output += var + ((setting.flags & SettingsNoValue) ? "(" : " = (") + newline;
|
||||
output += var + ((setting._flags & kSettingsNoValue) ? "(" : " = (") + newline;
|
||||
|
||||
for (unsigned int i = 0, count = 0; i < setting.entries.size(); ++i) {
|
||||
for (unsigned int i = 0, count = 0; i < setting._entries.size(); ++i) {
|
||||
|
||||
std::string value = setting.entries.at(i).value;
|
||||
std::string value = setting._entries.at(i)._value;
|
||||
if (!value.empty()) {
|
||||
if (count++ > 0)
|
||||
output += "," + newline;
|
||||
|
||||
output += quote + replace(value, quote, escape_quote) + quote;
|
||||
|
||||
std::string comment = setting.entries.at(i).comment;
|
||||
std::string comment = setting._entries.at(i)._comment;
|
||||
if (!comment.empty())
|
||||
output += " /* " + comment + " */";
|
||||
}
|
||||
|
@ -1101,24 +1090,24 @@ std::string XcodeProvider::writeSetting(const std::string &variable, const Setti
|
|||
}
|
||||
// Add closing ")" on new line
|
||||
newline.resize(newline.size() - 1);
|
||||
output += (setting.flags & SettingsNoValue) ? "\t\t\t)" : "," + newline + ")";
|
||||
output += (setting._flags & kSettingsNoValue) ? "\t\t\t)" : "," + newline + ")";
|
||||
} else {
|
||||
output += var;
|
||||
|
||||
output += (setting.flags & SettingsNoValue) ? "" : " = " + quote;
|
||||
output += (setting._flags & kSettingsNoValue) ? "" : " = " + quote;
|
||||
|
||||
for(unsigned int i = 0; i < setting.entries.size(); ++i) {
|
||||
std::string value = setting.entries.at(i).value;
|
||||
if(i)
|
||||
for (unsigned int i = 0; i < setting._entries.size(); ++i) {
|
||||
std::string value = setting._entries.at(i)._value;
|
||||
if (i)
|
||||
output += " ";
|
||||
output += value;
|
||||
|
||||
std::string comment = setting.entries.at(i).comment;
|
||||
std::string comment = setting._entries.at(i)._comment;
|
||||
if (!comment.empty())
|
||||
output += " /* " + comment + " */";
|
||||
}
|
||||
|
||||
output += (setting.flags & SettingsNoValue) ? "" : quote;
|
||||
output += (setting._flags & kSettingsNoValue) ? "" : quote;
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
|
|
@ -47,24 +47,23 @@ protected:
|
|||
const StringList &duplicate, const std::string &objPrefix, const std::string &filePrefix);
|
||||
private:
|
||||
enum {
|
||||
SettingsAsList = 0x01,
|
||||
SettingsSingleItem = 0x02,
|
||||
SettingsNoQuote = 0x04,
|
||||
SettingsQuoteVariable = 0x08,
|
||||
SettingsNoValue = 0x10
|
||||
kSettingsAsList = 0x01,
|
||||
kSettingsSingleItem = 0x02,
|
||||
kSettingsNoQuote = 0x04,
|
||||
kSettingsQuoteVariable = 0x08,
|
||||
kSettingsNoValue = 0x10
|
||||
};
|
||||
|
||||
// File properties
|
||||
struct FileProperty {
|
||||
std::string fileEncoding;
|
||||
std::string lastKnownFileType;
|
||||
std::string fileName;
|
||||
std::string filePath;
|
||||
std::string sourceTree;
|
||||
std::string _fileEncoding;
|
||||
std::string _lastKnownFileType;
|
||||
std::string _fileName;
|
||||
std::string _filePath;
|
||||
std::string _sourceTree;
|
||||
|
||||
FileProperty(std::string fileType = "", std::string name = "", std::string path = "", std::string source = "") :
|
||||
fileEncoding(""), lastKnownFileType(fileType), fileName(name), filePath(path), sourceTree(source)
|
||||
{
|
||||
FileProperty(std::string fileType = "", std::string name = "", std::string path = "", std::string source = "")
|
||||
: _fileEncoding(""), _lastKnownFileType(fileType), _fileName(name), _filePath(path), _sourceTree(source) {
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -73,33 +72,33 @@ private:
|
|||
typedef std::vector<std::string> ValueList;
|
||||
|
||||
struct Entry {
|
||||
std::string value;
|
||||
std::string comment;
|
||||
std::string _value;
|
||||
std::string _comment;
|
||||
|
||||
Entry(std::string val, std::string cmt) : value(val), comment(cmt) {}
|
||||
Entry(std::string val, std::string cmt) : _value(val), _comment(cmt) {}
|
||||
};
|
||||
|
||||
typedef std::vector<Entry> EntryList;
|
||||
|
||||
struct Setting {
|
||||
EntryList entries;
|
||||
int flags;
|
||||
int indent;
|
||||
int order;
|
||||
EntryList _entries;
|
||||
int _flags;
|
||||
int _indent;
|
||||
int _order;
|
||||
|
||||
explicit Setting(std::string value = "", std::string comment = "", int flgs = 0, int idt = 0, int ord = -1) : flags(flgs), indent(idt), order(ord) {
|
||||
entries.push_back(Entry(value, comment));
|
||||
Setting(std::string value = "", std::string comment = "", int flgs = 0, int idt = 0, int ord = -1) : _flags(flgs), _indent(idt), _order(ord) {
|
||||
_entries.push_back(Entry(value, comment));
|
||||
}
|
||||
|
||||
explicit Setting(ValueList values, int flgs = 0, int idt = 0, int ord = -1) : flags(flgs), indent(idt), order(ord) {
|
||||
Setting(ValueList values, int flgs = 0, int idt = 0, int ord = -1) : _flags(flgs), _indent(idt), _order(ord) {
|
||||
for (unsigned int i = 0; i < values.size(); i++)
|
||||
entries.push_back(Entry(values[i], ""));
|
||||
_entries.push_back(Entry(values[i], ""));
|
||||
}
|
||||
|
||||
explicit Setting(EntryList ents, int flgs = 0, int idt = 0, int ord = -1) : entries(ents), flags(flgs), indent(idt), order(ord) {}
|
||||
Setting(EntryList ents, int flgs = 0, int idt = 0, int ord = -1) : _entries(ents), _flags(flgs), _indent(idt), _order(ord) {}
|
||||
|
||||
void addEntry(std::string value, std::string comment = "") {
|
||||
entries.push_back(Entry(value, comment));
|
||||
_entries.push_back(Entry(value, comment));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -107,46 +106,36 @@ private:
|
|||
typedef std::pair<std::string, Setting> SettingPair;
|
||||
typedef std::vector<SettingPair> OrderedSettingList;
|
||||
|
||||
static bool OrderSortPredicate(const SettingPair& s1, const SettingPair& s2) {
|
||||
return s1.second.order < s2.second.order;
|
||||
static bool OrderSortPredicate(const SettingPair &s1, const SettingPair &s2) {
|
||||
return s1.second._order < s2.second._order;
|
||||
}
|
||||
|
||||
struct Property {
|
||||
public:
|
||||
SettingList settings;
|
||||
int flags;
|
||||
bool hasOrder;
|
||||
SettingList _settings;
|
||||
int _flags;
|
||||
bool _hasOrder;
|
||||
|
||||
Property() : flags(0), hasOrder(false) {}
|
||||
Property() : _flags(0), _hasOrder(false) {}
|
||||
|
||||
// Constructs a simple Property
|
||||
explicit Property(std::string name, std::string value = "", std::string comment = "", int flgs = 0, int indent = 0, bool order = false) : flags(flgs), hasOrder(order) {
|
||||
Setting setting(value, comment, flags, indent);
|
||||
|
||||
settings[name] = setting;
|
||||
Property(std::string name, std::string value = "", std::string comment = "", int flgs = 0, int indent = 0, bool order = false) : _flags(flgs), _hasOrder(order) {
|
||||
_settings[name] = Setting(value, comment, _flags, indent);
|
||||
}
|
||||
|
||||
Property(std::string name, ValueList values, int flgs = 0, int indent = 0, bool order = false) : flags(flgs), hasOrder(order) {
|
||||
Setting setting(values, flags, indent);
|
||||
|
||||
settings[name] = setting;
|
||||
}
|
||||
|
||||
// Copy constructor
|
||||
Property(const Property &rhs) {
|
||||
settings = rhs.settings;
|
||||
flags = rhs.flags;
|
||||
Property(std::string name, ValueList values, int flgs = 0, int indent = 0, bool order = false) : _flags(flgs), _hasOrder(order) {
|
||||
_settings[name] = Setting(values, _flags, indent);
|
||||
}
|
||||
|
||||
OrderedSettingList getOrderedSettingList() {
|
||||
OrderedSettingList list;
|
||||
|
||||
// Prepare vector to sort
|
||||
for (SettingList::const_iterator setting = settings.begin(); setting != settings.end(); ++setting)
|
||||
for (SettingList::const_iterator setting = _settings.begin(); setting != _settings.end(); ++setting)
|
||||
list.push_back(SettingPair(setting->first, setting->second));
|
||||
|
||||
// Sort vector using setting order
|
||||
if (hasOrder)
|
||||
if (_hasOrder)
|
||||
std::sort(list.begin(), list.end(), OrderSortPredicate);
|
||||
|
||||
return list;
|
||||
|
@ -160,48 +149,48 @@ private:
|
|||
// be overkill since we only have to generate a single project
|
||||
struct Object {
|
||||
public:
|
||||
std::string id; // Unique identifier for this object
|
||||
std::string name; // Name (may not be unique - for ex. configuration entries)
|
||||
std::string refType; // Type of object this references (if any)
|
||||
std::string comment; // Main comment (empty for no comment)
|
||||
std::string _id; // Unique identifier for this object
|
||||
std::string _name; // Name (may not be unique - for ex. configuration entries)
|
||||
std::string _refType; // Type of object this references (if any)
|
||||
std::string _comment; // Main comment (empty for no comment)
|
||||
|
||||
PropertyList properties; // List of object properties, including output configuration
|
||||
PropertyList _properties; // List of object properties, including output configuration
|
||||
|
||||
// Constructs an object and add a default type property
|
||||
Object(XcodeProvider *objectParent, std::string objectId, std::string objectName, std::string objectType, std::string objectRefType = "", std::string objectComment = "")
|
||||
: id(objectId), name(objectName), refType(objectRefType), comment(objectComment), parent(objectParent) {
|
||||
: _id(objectId), _name(objectName), _refType(objectRefType), _comment(objectComment), _parent(objectParent) {
|
||||
assert(objectParent);
|
||||
assert(!objectId.empty());
|
||||
assert(!objectName.empty());
|
||||
assert(!objectType.empty());
|
||||
|
||||
addProperty("isa", objectType, "", SettingsNoQuote|SettingsNoValue);
|
||||
addProperty("isa", objectType, "", kSettingsNoQuote | kSettingsNoValue);
|
||||
}
|
||||
|
||||
// Add a simple Property with just a name and a value
|
||||
void addProperty(std::string propName, std::string propValue, std::string propComment = "", int propFlags = 0, int propIndent = 0) {
|
||||
properties[propName] = Property(propValue, "", propComment, propFlags, propIndent);
|
||||
_properties[propName] = Property(propValue, "", propComment, propFlags, propIndent);
|
||||
}
|
||||
|
||||
std::string toString(int flags = 0) {
|
||||
std::string output;
|
||||
output = "\t\t" + parent->getHash(id) + (comment.empty() ? "" : " /* " + comment + " */") + " = {";
|
||||
output = "\t\t" + _parent->getHash(_id) + (_comment.empty() ? "" : " /* " + _comment + " */") + " = {";
|
||||
|
||||
if (flags & SettingsAsList)
|
||||
if (flags & kSettingsAsList)
|
||||
output += "\n";
|
||||
|
||||
// Special case: always output the isa property first
|
||||
output += parent->writeProperty("isa", properties["isa"], flags);
|
||||
output += _parent->writeProperty("isa", _properties["isa"], flags);
|
||||
|
||||
// Write each property
|
||||
for (PropertyList::iterator property = properties.begin(); property != properties.end(); ++property) {
|
||||
if ((*property).first == "isa")
|
||||
for (PropertyList::iterator property = _properties.begin(); property != _properties.end(); ++property) {
|
||||
if (property->first == "isa")
|
||||
continue;
|
||||
|
||||
output += parent->writeProperty((*property).first, (*property).second, flags);
|
||||
output += _parent->writeProperty(property->first, property->second, flags);
|
||||
}
|
||||
|
||||
if (flags & SettingsAsList)
|
||||
if (flags & kSettingsAsList)
|
||||
output += "\t\t";
|
||||
|
||||
output += "};\n";
|
||||
|
@ -209,50 +198,49 @@ private:
|
|||
return output;
|
||||
}
|
||||
|
||||
// Slight hack, to allow Group access to parent.
|
||||
// Slight hack, to allow Group access to parent.
|
||||
protected:
|
||||
XcodeProvider *parent;
|
||||
XcodeProvider *_parent;
|
||||
private:
|
||||
// Returns the type property (should always be the first in the properties map)
|
||||
std::string getType() {
|
||||
assert(!properties.empty());
|
||||
assert(!properties["isa"].settings.empty());
|
||||
assert(!_properties.empty());
|
||||
assert(!_properties["isa"]._settings.empty());
|
||||
|
||||
SettingList::iterator it = properties["isa"].settings.begin();
|
||||
|
||||
return (*it).first;
|
||||
SettingList::iterator it = _properties["isa"]._settings.begin();
|
||||
return it->first;
|
||||
}
|
||||
};
|
||||
|
||||
struct ObjectList {
|
||||
private:
|
||||
std::map<std::string, bool> objectMap;
|
||||
std::map<std::string, bool> _objectMap;
|
||||
|
||||
public:
|
||||
std::vector<Object *> objects;
|
||||
std::string comment;
|
||||
int flags;
|
||||
std::vector<Object *> _objects;
|
||||
std::string _comment;
|
||||
int _flags;
|
||||
|
||||
void add(Object *obj) {
|
||||
std::map<std::string, bool>::iterator it = objectMap.find(obj->id);
|
||||
if (it != objectMap.end() && it->second == true)
|
||||
std::map<std::string, bool>::iterator it = _objectMap.find(obj->_id);
|
||||
if (it != _objectMap.end() && it->second == true)
|
||||
return;
|
||||
|
||||
objects.push_back(obj);
|
||||
objectMap[obj->id] = true;
|
||||
_objects.push_back(obj);
|
||||
_objectMap[obj->_id] = true;
|
||||
}
|
||||
|
||||
std::string toString() {
|
||||
std::string output;
|
||||
|
||||
if (!comment.empty())
|
||||
output = "\n/* Begin " + comment + " section */\n";
|
||||
if (!_comment.empty())
|
||||
output = "\n/* Begin " + _comment + " section */\n";
|
||||
|
||||
for (std::vector<Object *>::iterator object = objects.begin(); object != objects.end(); ++object)
|
||||
output += (*object)->toString(flags);
|
||||
for (std::vector<Object *>::iterator object = _objects.begin(); object != _objects.end(); ++object)
|
||||
output += (*object)->toString(_flags);
|
||||
|
||||
if (!comment.empty())
|
||||
output += "/* End " + comment + " section */\n";
|
||||
if (!_comment.empty())
|
||||
output += "/* End " + _comment + " section */\n";
|
||||
|
||||
return output;
|
||||
}
|
||||
|
@ -271,10 +259,10 @@ private:
|
|||
void addChildFile(const std::string &name);
|
||||
void addChildByHash(const std::string &hash, const std::string &name);
|
||||
// Should be passed the hash for the entry
|
||||
void addChildGroup(const Group* group);
|
||||
void addChildGroup(const Group *group);
|
||||
void ensureChildExists(const std::string &name);
|
||||
Group *getChildGroup(const std::string &name);
|
||||
std::string getHashRef() const { return parent->getHash(id); }
|
||||
std::string getHashRef() const { return _parent->getHash(_id); }
|
||||
};
|
||||
|
||||
// The path used by the root-source group
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
typedef unsigned char uint8;
|
||||
typedef unsigned short uint16;
|
||||
typedef unsigned int uint32;
|
||||
typedef signed short int16;
|
||||
typedef signed short int16;
|
||||
|
||||
#ifndef __has_feature // Optional of course.
|
||||
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||
#ifndef __has_feature // Optional of course.
|
||||
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||
#endif
|
||||
|
||||
#endif /* CREATE_TRANSLATIONS_H */
|
||||
|
|
|
@ -35,12 +35,12 @@ Unauthorized distribution of an installable package with non freeware games incl
|
|||
|
||||
Building from source
|
||||
====================
|
||||
This port of ResidualVM to the PS3 is based on SDL. It uses the open source SDK PSL1GHT.
|
||||
This port of ResidualVM to the PS3 is based on SDL2. It uses the open source SDK PSL1GHT.
|
||||
|
||||
The dependencies needed to build it are :
|
||||
|
||||
- The toolchain from https://github.com/ps3dev/ps3toolchain
|
||||
- SDL from https://github.com/zeldin/SDL_PSL1GHT
|
||||
- SDL from https://bitbucket.org/bgK/sdl_psl1ght
|
||||
- ResidualVM from https://github.com/residualvm/residualvm
|
||||
|
||||
Once all the dependencies are correctly setup, an installable package can be obtained from source by issuing the following command :
|
||||
|
|
|
@ -40,7 +40,6 @@ Name: {group}\KnownBugs; Filename: {app}\KNOWN_BUGS.txt; WorkingDir: {app}; Comm
|
|||
;NEWS
|
||||
Name: {group}\News; Filename: {app}\NEWS.txt; WorkingDir: {app}; Comment: NEWS; Flags: createonlyiffileexists
|
||||
;QUICKSTART
|
||||
Name: {group}\QuickStart; Filename: {app}\QUICKSTART.txt; WorkingDir: {app}; Comment: QUICKSTART; Flags: createonlyiffileexists
|
||||
;README
|
||||
Name: {group}\Readme; Filename: {app}\README.txt; WorkingDir: {app}; Comment: README; Flags: createonlyiffileexists
|
||||
|
||||
|
@ -71,7 +70,6 @@ Source: KNOWN_BUGS.txt; DestDir: {app}; Flags: ignoreversion
|
|||
;NEWS
|
||||
Source: NEWS.txt; DestDir: {app}; Flags: ignoreversion
|
||||
;QUICKSTART
|
||||
Source: doc/QUICKSTART.txt; DestDir: {app}; Flags: ignoreversion isreadme
|
||||
;README
|
||||
Source: README.txt; DestDir: {app}; Flags: ignoreversion isreadme
|
||||
Source: README-SDL.txt; DestDir: {app}; Flags: ignoreversion
|
||||
|
|
|
@ -33,11 +33,15 @@
|
|||
|
||||
#include "common/singleton.h"
|
||||
#include "common/stream.h"
|
||||
#include "common/memstream.h"
|
||||
#include "common/hashmap.h"
|
||||
#include "common/ptr.h"
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_GLYPH_H
|
||||
#include FT_TRUETYPE_TABLES_H
|
||||
#include FT_TRUETYPE_TAGS_H
|
||||
|
||||
namespace Graphics {
|
||||
|
||||
|
@ -47,6 +51,10 @@ inline int ftCeil26_6(FT_Pos x) {
|
|||
return (x + 63) / 64;
|
||||
}
|
||||
|
||||
inline int divRoundToNearest(int dividend, int divisor) {
|
||||
return (dividend + (divisor / 2)) / divisor;
|
||||
}
|
||||
|
||||
} // End of anonymous namespace
|
||||
|
||||
class TTFLibrary : public Common::Singleton<TTFLibrary> {
|
||||
|
@ -101,7 +109,7 @@ public:
|
|||
TTFFont();
|
||||
virtual ~TTFFont();
|
||||
|
||||
bool load(Common::SeekableReadStream &stream, int size, uint dpi, TTFRenderMode renderMode, const uint32 *mapping);
|
||||
bool load(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode, uint dpi, TTFRenderMode renderMode, const uint32 *mapping);
|
||||
|
||||
virtual int getFontHeight() const;
|
||||
|
||||
|
@ -137,6 +145,12 @@ private:
|
|||
bool _allowLateCaching;
|
||||
void assureCached(uint32 chr) const;
|
||||
|
||||
Common::SeekableReadStream *readTTFTable(FT_ULong tag) const;
|
||||
|
||||
int computePointSize(int size, TTFSizeMode sizeMode) const;
|
||||
int readPointSizeFromVDMXTable(int height) const;
|
||||
int computePointSizeFromHeaders(int height) const;
|
||||
|
||||
FT_Int32 _loadFlags;
|
||||
FT_Render_Mode _renderMode;
|
||||
bool _hasKerning;
|
||||
|
@ -162,7 +176,7 @@ TTFFont::~TTFFont() {
|
|||
}
|
||||
}
|
||||
|
||||
bool TTFFont::load(Common::SeekableReadStream &stream, int size, uint dpi, TTFRenderMode renderMode, const uint32 *mapping) {
|
||||
bool TTFFont::load(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode, uint dpi, TTFRenderMode renderMode, const uint32 *mapping) {
|
||||
if (!g_ttf.isInitialized())
|
||||
return false;
|
||||
|
||||
|
@ -200,7 +214,7 @@ bool TTFFont::load(Common::SeekableReadStream &stream, int size, uint dpi, TTFRe
|
|||
// Check whether we have kerning support
|
||||
_hasKerning = (FT_HAS_KERNING(_face) != 0);
|
||||
|
||||
if (FT_Set_Char_Size(_face, 0, size * 64, dpi, dpi)) {
|
||||
if (FT_Set_Char_Size(_face, 0, computePointSize(size, sizeMode) * 64, dpi, dpi)) {
|
||||
delete[] _ttfFile;
|
||||
_ttfFile = 0;
|
||||
|
||||
|
@ -262,6 +276,126 @@ bool TTFFont::load(Common::SeekableReadStream &stream, int size, uint dpi, TTFRe
|
|||
return _initialized;
|
||||
}
|
||||
|
||||
int TTFFont::computePointSize(int size, TTFSizeMode sizeMode) const {
|
||||
int ptSize;
|
||||
switch (sizeMode) {
|
||||
case kTTFSizeModeCell: {
|
||||
ptSize = readPointSizeFromVDMXTable(size);
|
||||
|
||||
if (ptSize == 0) {
|
||||
ptSize = computePointSizeFromHeaders(size);
|
||||
}
|
||||
|
||||
if (ptSize == 0) {
|
||||
warning("Unable to compute point size for font '%s'", _face->family_name);
|
||||
ptSize = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case kTTFSizeModeCharacter:
|
||||
ptSize = size;
|
||||
break;
|
||||
}
|
||||
|
||||
return ptSize;
|
||||
}
|
||||
|
||||
Common::SeekableReadStream *TTFFont::readTTFTable(FT_ULong tag) const {
|
||||
// Find the required buffer size by calling the load function with nullptr
|
||||
FT_ULong size = 0;
|
||||
FT_Error err = FT_Load_Sfnt_Table(_face, tag, 0, nullptr, &size);
|
||||
if (err) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
byte *buf = (byte *)malloc(size);
|
||||
if (!buf) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
err = FT_Load_Sfnt_Table(_face, tag, 0, buf, &size);
|
||||
if (err) {
|
||||
free(buf);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return new Common::MemoryReadStream(buf, size, DisposeAfterUse::YES);
|
||||
}
|
||||
|
||||
int TTFFont::readPointSizeFromVDMXTable(int height) const {
|
||||
// The Vertical Device Metrics table matches font heights with point sizes.
|
||||
// FreeType does not expose it, we have to parse it ourselves.
|
||||
// See https://www.microsoft.com/typography/otspec/vdmx.htm
|
||||
|
||||
Common::ScopedPtr<Common::SeekableReadStream> vdmxBuf(readTTFTable(TTAG_VDMX));
|
||||
if (!vdmxBuf) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Read the main header
|
||||
vdmxBuf->skip(4); // Skip the version
|
||||
uint16 numRatios = vdmxBuf->readUint16BE();
|
||||
|
||||
// Compute the starting position for the group table positions table
|
||||
int32 offsetTableStart = vdmxBuf->pos() + 4 * numRatios;
|
||||
|
||||
// Search the ratio table for the 1:1 ratio, or the default record (0, 0, 0)
|
||||
int32 selectedRatio = -1;
|
||||
for (uint16 i = 0; i < numRatios; i++) {
|
||||
vdmxBuf->skip(1); // Skip the charset subset
|
||||
uint8 xRatio = vdmxBuf->readByte();
|
||||
uint8 yRatio1 = vdmxBuf->readByte();
|
||||
uint8 yRatio2 = vdmxBuf->readByte();
|
||||
|
||||
if ((xRatio == 1 && yRatio1 <= 1 && yRatio2 >= 1)
|
||||
|| (xRatio == 0 && yRatio1 == 0 && yRatio2 == 0)) {
|
||||
selectedRatio = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (selectedRatio < 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Read from group table positions table to get the group table offset
|
||||
vdmxBuf->seek(offsetTableStart + sizeof(uint16) * selectedRatio);
|
||||
uint16 groupOffset = vdmxBuf->readUint16BE();
|
||||
|
||||
// Read the group table header
|
||||
vdmxBuf->seek(groupOffset);
|
||||
uint16 numRecords = vdmxBuf->readUint16BE();
|
||||
vdmxBuf->skip(2); // Skip the table bounds
|
||||
|
||||
// Search a record matching the required height
|
||||
for (uint16 i = 0; i < numRecords; i++) {
|
||||
uint16 pointSize = vdmxBuf->readUint16BE();
|
||||
int16 yMax = vdmxBuf->readSint16BE();
|
||||
int16 yMin = vdmxBuf->readSint16BE();
|
||||
|
||||
if (yMax + -yMin > height) {
|
||||
return 0;
|
||||
}
|
||||
if (yMax + -yMin == height) {
|
||||
return pointSize;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int TTFFont::computePointSizeFromHeaders(int height) const {
|
||||
TT_OS2 *os2Header = (TT_OS2 *)FT_Get_Sfnt_Table(_face, ft_sfnt_os2);
|
||||
TT_HoriHeader *horiHeader = (TT_HoriHeader *)FT_Get_Sfnt_Table(_face, ft_sfnt_hhea);
|
||||
|
||||
if (os2Header && (os2Header->usWinAscent + os2Header->usWinDescent != 0)) {
|
||||
return divRoundToNearest(_face->units_per_EM * height, os2Header->usWinAscent + os2Header->usWinDescent);
|
||||
} else if (horiHeader && (horiHeader->Ascender + horiHeader->Descender != 0)) {
|
||||
return divRoundToNearest(_face->units_per_EM * height, horiHeader->Ascender + horiHeader->Descender);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int TTFFont::getFontHeight() const {
|
||||
return _height;
|
||||
}
|
||||
|
@ -521,10 +655,10 @@ void TTFFont::assureCached(uint32 chr) const {
|
|||
}
|
||||
}
|
||||
|
||||
Font *loadTTFFont(Common::SeekableReadStream &stream, int size, uint dpi, TTFRenderMode renderMode, const uint32 *mapping) {
|
||||
Font *loadTTFFont(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode, uint dpi, TTFRenderMode renderMode, const uint32 *mapping) {
|
||||
TTFFont *font = new TTFFont();
|
||||
|
||||
if (!font->load(stream, size, dpi, renderMode, mapping)) {
|
||||
if (!font->load(stream, size, sizeMode, dpi, renderMode, mapping)) {
|
||||
delete font;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -55,11 +55,33 @@ enum TTFRenderMode {
|
|||
kTTFRenderModeMonochrome
|
||||
};
|
||||
|
||||
/**
|
||||
* This specifies how the font size is defined.
|
||||
*/
|
||||
enum TTFSizeMode {
|
||||
/**
|
||||
* Character height only.
|
||||
*
|
||||
* This matches rendering obtained when calling
|
||||
* CreateFont in Windows with negative height values.
|
||||
*/
|
||||
kTTFSizeModeCharacter,
|
||||
|
||||
/**
|
||||
* Full cell height.
|
||||
*
|
||||
* This matches rendering obtained when calling
|
||||
* CreateFont in Windows with positive height values.
|
||||
*/
|
||||
kTTFSizeModeCell
|
||||
};
|
||||
|
||||
/**
|
||||
* Loads a TTF font file from a given data stream object.
|
||||
*
|
||||
* @param stream Stream object to load font data from.
|
||||
* @param size The point size to load.
|
||||
* @param sizeMode The point size definition used for the size parameter.
|
||||
* @param dpi The dpi to use for size calculations, by default 72dpi
|
||||
* are used.
|
||||
* @param renderMode FreeType2 mode used to render glyphs. @see TTFRenderMode
|
||||
|
@ -71,7 +93,7 @@ enum TTFRenderMode {
|
|||
* supported.
|
||||
* @return 0 in case loading fails, otherwise a pointer to the Font object.
|
||||
*/
|
||||
Font *loadTTFFont(Common::SeekableReadStream &stream, int size, uint dpi = 0, TTFRenderMode renderMode = kTTFRenderModeLight, const uint32 *mapping = 0);
|
||||
Font *loadTTFFont(Common::SeekableReadStream &stream, int size, TTFSizeMode sizeMode = kTTFSizeModeCharacter, uint dpi = 0, TTFRenderMode renderMode = kTTFRenderModeLight, const uint32 *mapping = 0);
|
||||
|
||||
void shutdownTTF();
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ MODULE_OBJS := \
|
|||
fonts/ttf.o \
|
||||
fonts/winfont.o \
|
||||
maccursor.o \
|
||||
pixelformat.o \
|
||||
primitives.o \
|
||||
sjis.o \
|
||||
surface.o \
|
||||
|
|
64
graphics/pixelformat.cpp
Normal file
64
graphics/pixelformat.cpp
Normal file
|
@ -0,0 +1,64 @@
|
|||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "graphics/pixelformat.h"
|
||||
#include "common/algorithm.h"
|
||||
|
||||
namespace Graphics {
|
||||
|
||||
Common::String PixelFormat::toString() const {
|
||||
if (bytesPerPixel == 1)
|
||||
return "CLUT8";
|
||||
|
||||
// We apply a trick to simplify the code here. We encode all the shift,
|
||||
// loss, and component name in the component entry. By having the shift as
|
||||
// highest entry we can sort according to shift.
|
||||
// This works because in valid RGB PixelFormats shift values needs to be
|
||||
// distinct except when the loss is 8. However, components with loss value
|
||||
// of 8 are not printed, thus their position does not matter.
|
||||
int component[4];
|
||||
component[0] = (rShift << 16) | (rLoss << 8) | 'R';
|
||||
component[1] = (gShift << 16) | (gLoss << 8) | 'G';
|
||||
component[2] = (bShift << 16) | (bLoss << 8) | 'B';
|
||||
component[3] = (aShift << 16) | (aLoss << 8) | 'A';
|
||||
|
||||
// Sort components according to descending shift value.
|
||||
Common::sort(component, component + ARRAYSIZE(component), Common::Greater<int>());
|
||||
|
||||
Common::String letters, digits;
|
||||
for (int i = 0; i < ARRAYSIZE(component); ++i) {
|
||||
const int componentLoss = (component[i] >> 8) & 0xFF;
|
||||
// A loss of 8 means that the component does not exist.
|
||||
if (componentLoss == 8) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const char componentName = component[i] & 0xFF;
|
||||
|
||||
letters += componentName;
|
||||
digits += '0' + 8 - componentLoss;
|
||||
}
|
||||
|
||||
return letters + digits;
|
||||
}
|
||||
|
||||
} // End of namespace Graphics
|
|
@ -24,6 +24,7 @@
|
|||
#define GRAPHICS_PIXELFORMAT_H
|
||||
|
||||
#include "common/scummsys.h"
|
||||
#include "common/str.h"
|
||||
|
||||
namespace Graphics {
|
||||
|
||||
|
@ -260,6 +261,8 @@ struct PixelFormat {
|
|||
// Unsupported
|
||||
return 0;
|
||||
}
|
||||
|
||||
Common::String toString() const;
|
||||
};
|
||||
|
||||
} // End of namespace Graphics
|
||||
|
|
|
@ -41,8 +41,6 @@
|
|||
|
||||
namespace Graphics {
|
||||
|
||||
static const int kAShift = 0;//img->format.aShift;
|
||||
|
||||
static const int kBModShift = 0;//img->format.bShift;
|
||||
static const int kGModShift = 8;//img->format.gShift;
|
||||
static const int kRModShift = 16;//img->format.rShift;
|
||||
|
@ -118,7 +116,7 @@ void doBlitBinaryFast(byte *ino, byte *outo, uint32 width, uint32 height, uint32
|
|||
in = ino;
|
||||
for (uint32 j = 0; j < width; j++) {
|
||||
uint32 pix = *(uint32 *)in;
|
||||
int a = (pix >> kAShift) & 0xff;
|
||||
int a = in[kAIndex];
|
||||
|
||||
if (a != 0) { // Full opacity (Any value not exactly 0 is Opaque here)
|
||||
*(uint32 *)out = pix;
|
||||
|
@ -338,7 +336,7 @@ Common::Rect TransparentSurface::blit(Graphics::Surface &target, int posX, int p
|
|||
retSize.setWidth(0);
|
||||
retSize.setHeight(0);
|
||||
// Check if we need to draw anything at all
|
||||
int ca = (color >> 24) & 0xff;
|
||||
int ca = (color >> kAModShift) & 0xff;
|
||||
|
||||
if (ca == 0) {
|
||||
return retSize;
|
||||
|
|
|
@ -50,22 +50,22 @@ namespace Graphics {
|
|||
@brief The possible flipping parameters for the blit method.
|
||||
*/
|
||||
enum FLIP_FLAGS {
|
||||
/// The image will not be flipped.
|
||||
FLIP_NONE = 0,
|
||||
/// The image will be flipped at the horizontal axis.
|
||||
FLIP_H = 1,
|
||||
/// The image will be flipped at the vertical axis.
|
||||
FLIP_V = 2,
|
||||
/// The image will be flipped at the horizontal and vertical axis.
|
||||
FLIP_HV = FLIP_H | FLIP_V,
|
||||
/// The image will be flipped at the horizontal and vertical axis.
|
||||
FLIP_VH = FLIP_H | FLIP_V
|
||||
/// The image will not be flipped.
|
||||
FLIP_NONE = 0,
|
||||
/// The image will be flipped at the horizontal axis.
|
||||
FLIP_H = 1,
|
||||
/// The image will be flipped at the vertical axis.
|
||||
FLIP_V = 2,
|
||||
/// The image will be flipped at the horizontal and vertical axis.
|
||||
FLIP_HV = FLIP_H | FLIP_V,
|
||||
/// The image will be flipped at the horizontal and vertical axis.
|
||||
FLIP_VH = FLIP_H | FLIP_V
|
||||
};
|
||||
|
||||
enum AlphaType {
|
||||
ALPHA_OPAQUE = 0,
|
||||
ALPHA_BINARY = 1,
|
||||
ALPHA_FULL = 2
|
||||
ALPHA_OPAQUE = 0,
|
||||
ALPHA_BINARY = 1,
|
||||
ALPHA_FULL = 2
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -75,6 +75,18 @@ struct TransparentSurface : public Graphics::Surface {
|
|||
TransparentSurface();
|
||||
TransparentSurface(const Graphics::Surface &surf, bool copyData = false);
|
||||
|
||||
/**
|
||||
* Returns the pixel format all operations of TransparentSurface support.
|
||||
*
|
||||
* Unlike Surface TransparentSurface only works with a fixed pixel format.
|
||||
* This format can be queried using this static function.
|
||||
*
|
||||
* @return Supported pixel format.
|
||||
*/
|
||||
static PixelFormat getSupportedPixelFormat() {
|
||||
return PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0);
|
||||
}
|
||||
|
||||
void setColorKey(char r, char g, char b);
|
||||
void disableColorKey();
|
||||
|
||||
|
|
|
@ -739,12 +739,23 @@ bool ThemeEngine::loadDefaultXML() {
|
|||
// Use the Python script "makedeftheme.py" to convert a normal XML theme
|
||||
// into the "default.inc" file, which is ready to be included in the code.
|
||||
#ifndef DISABLE_GUI_BUILTIN_THEME
|
||||
const char *defaultXML =
|
||||
#include "themes/default.inc"
|
||||
;
|
||||
int xmllen = 0;
|
||||
|
||||
for (int i = 0; i < ARRAYSIZE(defaultXML); i++)
|
||||
xmllen += strlen(defaultXML[i]);
|
||||
|
||||
byte *tmpXML = (byte *)malloc(xmllen + 1);
|
||||
tmpXML[0] = '\0';
|
||||
|
||||
for (int i = 0; i < ARRAYSIZE(defaultXML); i++)
|
||||
strncat((char *)tmpXML, defaultXML[i], xmllen);
|
||||
|
||||
if (!_parser->loadBuffer(tmpXML, xmllen)) {
|
||||
free(tmpXML);
|
||||
|
||||
if (!_parser->loadBuffer((const byte *)defaultXML, strlen(defaultXML)))
|
||||
return false;
|
||||
}
|
||||
|
||||
_themeName = "ResidualVM Classic Theme (Builtin Version)";
|
||||
_themeId = "builtin";
|
||||
|
@ -753,6 +764,8 @@ bool ThemeEngine::loadDefaultXML() {
|
|||
bool result = _parser->parse();
|
||||
_parser->close();
|
||||
|
||||
free(tmpXML);
|
||||
|
||||
return result;
|
||||
#else
|
||||
warning("The built-in theme is not enabled in the current build. Please load an external theme");
|
||||
|
@ -1446,7 +1459,7 @@ const Graphics::Font *ThemeEngine::loadScalableFont(const Common::String &filena
|
|||
for (Common::ArchiveMemberList::const_iterator i = members.begin(), end = members.end(); i != end; ++i) {
|
||||
Common::SeekableReadStream *stream = (*i)->createReadStream();
|
||||
if (stream) {
|
||||
font = Graphics::loadTTFFont(*stream, pointsize, 0, Graphics::kTTFRenderModeLight,
|
||||
font = Graphics::loadTTFFont(*stream, pointsize, Graphics::kTTFSizeModeCharacter, 0, Graphics::kTTFRenderModeLight,
|
||||
#ifdef USE_TRANSLATION
|
||||
TransMan.getCharsetMapping()
|
||||
#else
|
||||
|
|
160
gui/filebrowser-dialog.cpp
Normal file
160
gui/filebrowser-dialog.cpp
Normal file
|
@ -0,0 +1,160 @@
|
|||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "gui/filebrowser-dialog.h"
|
||||
|
||||
#include "common/system.h"
|
||||
#include "common/algorithm.h"
|
||||
#include "common/savefile.h"
|
||||
#include "common/str-array.h"
|
||||
|
||||
#include "common/translation.h"
|
||||
|
||||
#include "gui/widgets/list.h"
|
||||
#include "gui/message.h"
|
||||
|
||||
namespace GUI {
|
||||
|
||||
enum {
|
||||
kChooseCmd = 'Chos'
|
||||
};
|
||||
|
||||
FileBrowserDialog::FileBrowserDialog(const char *title, const char *fileExtension, int mode)
|
||||
: Dialog("FileBrowser"), _mode(mode), _fileExt(fileExtension) {
|
||||
|
||||
_fileMask = "*.";
|
||||
_fileMask += fileExtension;
|
||||
_fileList = NULL;
|
||||
|
||||
new StaticTextWidget(this, "FileBrowser.Headline", title ? title :
|
||||
mode == kFBModeLoad ? _("Choose file for loading") : _("Enter filename for saving"));
|
||||
|
||||
_fileName = new EditTextWidget(this, "FileBrowser.Filename", "");
|
||||
|
||||
if (mode == kFBModeLoad)
|
||||
_fileName->setEnabled(false);
|
||||
|
||||
// Add file list
|
||||
_fileList = new ListWidget(this, "FileBrowser.List");
|
||||
_fileList->setNumberingMode(kListNumberingOff);
|
||||
_fileList->setEditable(false);
|
||||
|
||||
_backgroundType = GUI::ThemeEngine::kDialogBackgroundPlain;
|
||||
|
||||
// Buttons
|
||||
new ButtonWidget(this, "FileBrowser.Cancel", _("Cancel"), 0, kCloseCmd);
|
||||
new ButtonWidget(this, "FileBrowser.Choose", _("Choose"), 0, kChooseCmd);
|
||||
}
|
||||
|
||||
void FileBrowserDialog::open() {
|
||||
// Call super implementation
|
||||
Dialog::open();
|
||||
|
||||
updateListing();
|
||||
}
|
||||
|
||||
void FileBrowserDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
|
||||
switch (cmd) {
|
||||
case kChooseCmd:
|
||||
if (_fileName->getEditString().empty())
|
||||
break;
|
||||
|
||||
normalieFileName();
|
||||
|
||||
if (!isProceedSave())
|
||||
break;
|
||||
|
||||
setResult(1);
|
||||
close();
|
||||
break;
|
||||
case kListSelectionChangedCmd:
|
||||
_fileName->setEditString(_fileList->getList().operator[](_fileList->getSelected()).c_str());
|
||||
_fileName->draw();
|
||||
break;
|
||||
case kListItemActivatedCmd:
|
||||
case kListItemDoubleClickedCmd:
|
||||
normalieFileName();
|
||||
|
||||
if (!isProceedSave())
|
||||
break;
|
||||
|
||||
setResult(1);
|
||||
close();
|
||||
break;
|
||||
default:
|
||||
Dialog::handleCommand(sender, cmd, data);
|
||||
}
|
||||
}
|
||||
|
||||
void FileBrowserDialog::normalieFileName() {
|
||||
Common::String filename = _fileName->getEditString();
|
||||
|
||||
if (filename.matchString(_fileMask))
|
||||
return;
|
||||
|
||||
_fileName->setEditString(filename + "." + _fileExt);
|
||||
}
|
||||
|
||||
|
||||
bool FileBrowserDialog::isProceedSave() {
|
||||
bool matched = false;
|
||||
|
||||
if (_mode == kFBModeLoad)
|
||||
return true;
|
||||
|
||||
for (ListWidget::StringArray::const_iterator file = _fileList->getList().begin(); file != _fileList->getList().end(); ++file) {
|
||||
if (*file == _fileName->getEditString()) {
|
||||
matched = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (matched) {
|
||||
GUI::MessageDialog alert(_("Do you really want to overwrite the file?"), _("Yes"), _("No"));
|
||||
|
||||
if (alert.runModal() != GUI::kMessageOK)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void FileBrowserDialog::updateListing() {
|
||||
Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
|
||||
|
||||
ListWidget::StringArray list;
|
||||
|
||||
Common::StringArray filenames = saveFileMan->listSavefiles(_fileMask);
|
||||
Common::sort(filenames.begin(), filenames.end());
|
||||
|
||||
for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) {
|
||||
list.push_back(file->c_str());
|
||||
}
|
||||
|
||||
_fileList->setList(list);
|
||||
_fileList->scrollTo(0);
|
||||
|
||||
// Finally, redraw
|
||||
draw();
|
||||
}
|
||||
|
||||
} // End of namespace GUI
|
|
@ -20,48 +20,45 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#ifndef BACKENDS_MIXER_SDL13_H
|
||||
#define BACKENDS_MIXER_SDL13_H
|
||||
#ifndef FILEBROWSER_DIALOG_H
|
||||
#define FILEBROWSER_DIALOG_H
|
||||
|
||||
#include "backends/mixer/sdl/sdl-mixer.h"
|
||||
#include "gui/dialog.h"
|
||||
#include "gui/widgets/edittext.h"
|
||||
|
||||
/**
|
||||
* SDL mixer manager. It wraps the actual implementation
|
||||
* of the Audio:Mixer used by the engine, and setups
|
||||
* the SDL audio subsystem and the callback for the
|
||||
* audio mixer implementation.
|
||||
*/
|
||||
class Sdl13MixerManager : public SdlMixerManager {
|
||||
public:
|
||||
Sdl13MixerManager();
|
||||
virtual ~Sdl13MixerManager();
|
||||
namespace GUI {
|
||||
|
||||
/**
|
||||
* Initialize and setups the mixer
|
||||
*/
|
||||
virtual void init();
|
||||
class ListWidget;
|
||||
class EditTextWidget;
|
||||
class CommandSender;
|
||||
|
||||
/**
|
||||
* Pauses the audio system
|
||||
*/
|
||||
virtual void suspendAudio();
|
||||
|
||||
/**
|
||||
* Resumes the audio system
|
||||
*/
|
||||
virtual int resumeAudio();
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* The opened SDL audio device
|
||||
*/
|
||||
SDL_AudioDeviceID _device;
|
||||
|
||||
/**
|
||||
* Starts SDL audio
|
||||
*/
|
||||
virtual void startAudio();
|
||||
enum {
|
||||
kFBModeLoad = 0,
|
||||
kFBModeSave
|
||||
};
|
||||
|
||||
class FileBrowserDialog : public Dialog {
|
||||
public:
|
||||
FileBrowserDialog(const char *title, const char *fileExtension, int mode);
|
||||
|
||||
virtual void open();
|
||||
|
||||
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
|
||||
|
||||
const char *getResult() { return Dialog::getResult() ? _fileName->getEditString().c_str() : NULL; }
|
||||
|
||||
protected:
|
||||
EditTextWidget *_fileName;
|
||||
ListWidget *_fileList;
|
||||
Common::String _fileMask;
|
||||
Common::String _fileExt;
|
||||
int _mode;
|
||||
|
||||
void updateListing();
|
||||
void normalieFileName();
|
||||
bool isProceedSave();
|
||||
};
|
||||
|
||||
} // End of namespace GUI
|
||||
|
||||
#endif
|
|
@ -8,6 +8,7 @@ MODULE_OBJS := \
|
|||
dialog.o \
|
||||
error.o \
|
||||
EventRecorder.o \
|
||||
filebrowser-dialog.o \
|
||||
gui-manager.o \
|
||||
launcher.o \
|
||||
massadd.o \
|
||||
|
|
|
@ -171,7 +171,7 @@ void RecorderDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 dat
|
|||
const EnginePlugin *plugin = 0;
|
||||
GameDescriptor desc = EngineMan.findGame(gameId, &plugin);
|
||||
g_system->getTimeAndDate(t);
|
||||
EditRecordDialog editDlg("Unknown Author", Common::String::format("%.2d.%.2d.%.4d ", t.tm_mday, t.tm_mon, 1900 + t.tm_year) + desc.description(), "");
|
||||
EditRecordDialog editDlg(_("Unknown Author"), Common::String::format("%.2d.%.2d.%.4d ", t.tm_mday, t.tm_mon, 1900 + t.tm_year) + desc.description(), "");
|
||||
if (editDlg.runModal() != kOKCmd) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
"<?xml version = '1.0'?>"
|
||||
"<render_info>"
|
||||
const char *defaultXML1 = "<?xml version = '1.0'?>"
|
||||
;
|
||||
const char *defaultXML2 = "<render_info>"
|
||||
"<palette>"
|
||||
"<color name='black' "
|
||||
"rgb='0,0,0' "
|
||||
|
@ -610,7 +611,8 @@
|
|||
"/>"
|
||||
"</drawdata>"
|
||||
"</render_info>"
|
||||
"<layout_info resolution='y>399'>"
|
||||
;
|
||||
const char *defaultXML3 = "<layout_info resolution='y>399'>"
|
||||
"<globals>"
|
||||
"<def var='Line.Height' value='16' />"
|
||||
"<def var='Font.Height' value='16' />"
|
||||
|
@ -771,6 +773,28 @@
|
|||
"</layout>"
|
||||
"</layout>"
|
||||
"</dialog>"
|
||||
"<dialog name='FileBrowser' overlays='screen' inset='32' shading='dim'>"
|
||||
"<layout type='vertical' padding='16,16,16,16'>"
|
||||
"<widget name='Headline' "
|
||||
"height='Globals.Line.Height' "
|
||||
"/>"
|
||||
"<widget name='Filename' "
|
||||
"height='Globals.Line.Height' "
|
||||
"/>"
|
||||
"<space size='10' />"
|
||||
"<widget name='List'/>"
|
||||
"<layout type='vertical' padding='0,0,16,0'>"
|
||||
"<layout type='horizontal' padding='0,0,0,0'>"
|
||||
"<widget name='Cancel' "
|
||||
"type='Button' "
|
||||
"/>"
|
||||
"<widget name='Choose' "
|
||||
"type='Button' "
|
||||
"/>"
|
||||
"</layout>"
|
||||
"</layout>"
|
||||
"</layout>"
|
||||
"</dialog>"
|
||||
"<dialog name='GlobalOptions' overlays='Dialog.Launcher.GameList' shading='dim'>"
|
||||
"<layout type='vertical' padding='0,0,0,0'>"
|
||||
"<widget name='TabWidget'/>"
|
||||
|
@ -1876,7 +1900,8 @@
|
|||
"</layout>"
|
||||
"</dialog>"
|
||||
"</layout_info>"
|
||||
"<layout_info resolution='y<400'>"
|
||||
;
|
||||
const char *defaultXML4 = "<layout_info resolution='y<400'>"
|
||||
"<globals>"
|
||||
"<def var='Line.Height' value='12' />"
|
||||
"<def var='Font.Height' value='10' />"
|
||||
|
@ -2034,6 +2059,28 @@
|
|||
"</layout>"
|
||||
"</layout>"
|
||||
"</dialog>"
|
||||
"<dialog name='FileBrowser' overlays='screen' inset='16' shading='dim'>"
|
||||
"<layout type='vertical' padding='16,16,16,16'>"
|
||||
"<widget name='Headline' "
|
||||
"height='Globals.Line.Height' "
|
||||
"/>"
|
||||
"<widget name='Filename' "
|
||||
"height='Globals.Line.Height' "
|
||||
"/>"
|
||||
"<space size='5' />"
|
||||
"<widget name='List'/>"
|
||||
"<layout type='vertical' padding='0,0,16,0'>"
|
||||
"<layout type='horizontal' padding='0,0,0,0'>"
|
||||
"<widget name='Cancel' "
|
||||
"type='Button' "
|
||||
"/>"
|
||||
"<widget name='Choose' "
|
||||
"type='Button' "
|
||||
"/>"
|
||||
"</layout>"
|
||||
"</layout>"
|
||||
"</layout>"
|
||||
"</dialog>"
|
||||
"<dialog name='GlobalOptions' overlays='screen' inset='16' shading='dim'>"
|
||||
"<layout type='vertical' padding='0,0,0,0'>"
|
||||
"<widget name='TabWidget'/>"
|
||||
|
@ -3111,3 +3158,5 @@
|
|||
"</layout>"
|
||||
"</dialog>"
|
||||
"</layout_info>"
|
||||
;
|
||||
const char *defaultXML[] = { defaultXML1, defaultXML2, defaultXML3, defaultXML4 };
|
||||
|
|
Binary file not shown.
|
@ -67,7 +67,7 @@
|
|||
|
||||
<widget name = 'Button'
|
||||
size = '108, 24'
|
||||
/>
|
||||
/>
|
||||
|
||||
<widget name = 'Slider'
|
||||
size = '128, 18'
|
||||
|
@ -210,6 +210,29 @@
|
|||
</layout>
|
||||
</dialog>
|
||||
|
||||
<dialog name = 'FileBrowser' overlays = 'screen' inset = '32' shading = 'dim'>
|
||||
<layout type = 'vertical' padding = '16, 16, 16, 16'>
|
||||
<widget name = 'Headline'
|
||||
height = 'Globals.Line.Height'
|
||||
/>
|
||||
<widget name = 'Filename'
|
||||
height = 'Globals.Line.Height'
|
||||
/>
|
||||
<space size = '10' />
|
||||
<widget name = 'List'/>
|
||||
<layout type = 'vertical' padding = '0, 0, 16, 0'>
|
||||
<layout type = 'horizontal' padding = '0, 0, 0, 0'>
|
||||
<widget name = 'Cancel'
|
||||
type = 'Button'
|
||||
/>
|
||||
<widget name = 'Choose'
|
||||
type = 'Button'
|
||||
/>
|
||||
</layout>
|
||||
</layout>
|
||||
</layout>
|
||||
</dialog>
|
||||
|
||||
<dialog name = 'GlobalOptions' overlays = 'Dialog.Launcher.GameList' shading = 'dim'>
|
||||
<layout type = 'vertical' padding = '0, 0, 0, 0'>
|
||||
<widget name = 'TabWidget'/>
|
||||
|
@ -690,7 +713,7 @@
|
|||
/>
|
||||
</layout>
|
||||
</dialog>
|
||||
|
||||
|
||||
<dialog name = 'GlobalMenu' overlays = 'screen_center'>
|
||||
<layout type = 'vertical' padding = '16, 16, 16, 16' center = 'true'>
|
||||
<widget name = 'Logo'
|
||||
|
@ -1057,7 +1080,7 @@
|
|||
width = '180'
|
||||
height = '170'
|
||||
/>
|
||||
<layout type = 'horizontal' padding = '0, 0, 0, 0'>
|
||||
<layout type = 'horizontal' padding = '0, 0, 0, 0'>
|
||||
<widget name = 'NextScreenShotButton'
|
||||
width = '25'
|
||||
height = '25'
|
||||
|
@ -1133,15 +1156,15 @@
|
|||
<layout type = 'horizontal' spacing = '5' padding = '0, 0, 0, 10'>
|
||||
<widget name = 'AuthorLabel'
|
||||
type = 'EditRecordLabel'
|
||||
/>
|
||||
/>
|
||||
<widget name = 'AuthorEdit'
|
||||
type = 'EditRecord'
|
||||
/>
|
||||
/>
|
||||
</layout>
|
||||
<layout type = 'horizontal' spacing = '5' padding = '0, 0, 0, 10'>
|
||||
<widget name = 'NameLabel'
|
||||
type = 'EditRecordLabel'
|
||||
/>
|
||||
/>
|
||||
<widget name = 'NameEdit'
|
||||
type = 'EditRecord'
|
||||
/>
|
||||
|
@ -1160,11 +1183,11 @@
|
|||
/>
|
||||
<widget name = 'OK'
|
||||
type = 'Button'
|
||||
/>
|
||||
/>
|
||||
</layout>
|
||||
</layout>
|
||||
</dialog>
|
||||
|
||||
|
||||
<dialog name = 'ScummHelp' overlays = 'screen_center'>
|
||||
<layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
|
||||
<widget name = 'Title'
|
||||
|
@ -1255,7 +1278,7 @@
|
|||
type = 'Button'
|
||||
/>
|
||||
</layout>
|
||||
</dialog>
|
||||
</dialog>
|
||||
<dialog name = 'Predictive' overlays = 'screen_center'>
|
||||
<layout type = 'vertical' padding = '5, 5, 5, 5' center = 'true'>
|
||||
<widget name = 'Headline'
|
||||
|
@ -1267,7 +1290,7 @@
|
|||
<layout type = 'horizontal' padding = '5, 5, 5, 5'>
|
||||
<widget name = 'Word'
|
||||
width = '190'
|
||||
height = 'Globals.Button.Height'
|
||||
height = 'Globals.Button.Height'
|
||||
/>
|
||||
<widget name = 'Delete'
|
||||
width = '20'
|
||||
|
|
|
@ -191,6 +191,29 @@
|
|||
</layout>
|
||||
</dialog>
|
||||
|
||||
<dialog name = 'FileBrowser' overlays = 'screen' inset = '16' shading = 'dim'>
|
||||
<layout type = 'vertical' padding = '16, 16, 16, 16'>
|
||||
<widget name = 'Headline'
|
||||
height = 'Globals.Line.Height'
|
||||
/>
|
||||
<widget name = 'Filename'
|
||||
height = 'Globals.Line.Height'
|
||||
/>
|
||||
<space size = '5' />
|
||||
<widget name = 'List'/>
|
||||
<layout type = 'vertical' padding = '0, 0, 16, 0'>
|
||||
<layout type = 'horizontal' padding = '0, 0, 0, 0'>
|
||||
<widget name = 'Cancel'
|
||||
type = 'Button'
|
||||
/>
|
||||
<widget name = 'Choose'
|
||||
type = 'Button'
|
||||
/>
|
||||
</layout>
|
||||
</layout>
|
||||
</layout>
|
||||
</dialog>
|
||||
|
||||
<dialog name = 'GlobalOptions' overlays = 'screen' inset = '16' shading = 'dim'>
|
||||
<layout type = 'vertical' padding = '0, 0, 0, 0'>
|
||||
<widget name = 'TabWidget'/>
|
||||
|
@ -686,7 +709,7 @@
|
|||
/>
|
||||
</layout>
|
||||
</dialog>
|
||||
|
||||
|
||||
<dialog name = 'GlobalMenu' overlays = 'screen_center'>
|
||||
<layout type = 'vertical' padding = '4, 4, 4, 4' center = 'true' spacing='2'>
|
||||
<widget name = 'Title'
|
||||
|
@ -1108,15 +1131,15 @@
|
|||
<layout type = 'horizontal' spacing = '5' padding = '0, 0, 0, 10'>
|
||||
<widget name = 'AuthorLabel'
|
||||
type = 'EditRecordLabel'
|
||||
/>
|
||||
/>
|
||||
<widget name = 'AuthorEdit'
|
||||
type = 'EditRecord'
|
||||
/>
|
||||
/>
|
||||
</layout>
|
||||
<layout type = 'horizontal' spacing = '5' padding = '0, 0, 0, 10'>
|
||||
<widget name = 'NameLabel'
|
||||
type = 'EditRecordLabel'
|
||||
/>
|
||||
/>
|
||||
<widget name = 'NameEdit'
|
||||
type = 'EditRecord'
|
||||
/>
|
||||
|
@ -1135,11 +1158,11 @@
|
|||
/>
|
||||
<widget name = 'OK'
|
||||
type = 'Button'
|
||||
/>
|
||||
/>
|
||||
</layout>
|
||||
</layout>
|
||||
</dialog>
|
||||
|
||||
|
||||
<dialog name = 'ScummHelp' overlays = 'screen' inset = '8'>
|
||||
<layout type = 'vertical' padding = '8, 8, 8, 8'>
|
||||
<widget name = 'Title'
|
||||
|
@ -1240,7 +1263,7 @@
|
|||
<layout type = 'horizontal' padding = '0, 0, 2, 2'>
|
||||
<widget name = 'Word'
|
||||
width = '120'
|
||||
height = 'Globals.Button.Height'
|
||||
height = 'Globals.Button.Height'
|
||||
/>
|
||||
<widget name = 'Delete'
|
||||
width = '20'
|
||||
|
|
|
@ -79,7 +79,7 @@ bool EditableWidget::tryInsertChar(byte c, int pos) {
|
|||
|
||||
void EditableWidget::handleTickle() {
|
||||
uint32 time = g_system->getMillis();
|
||||
if (_caretTime < time) {
|
||||
if (_caretTime < time && isEnabled()) {
|
||||
_caretTime = time + kCaretBlinkTime;
|
||||
drawCaret(_caretVisible);
|
||||
}
|
||||
|
@ -90,6 +90,9 @@ bool EditableWidget::handleKeyDown(Common::KeyState state) {
|
|||
bool dirty = false;
|
||||
bool forcecaret = false;
|
||||
|
||||
if (!isEnabled())
|
||||
return false;
|
||||
|
||||
// First remove caret
|
||||
if (_caretVisible)
|
||||
drawCaret(true);
|
||||
|
|
|
@ -62,6 +62,9 @@ void EditTextWidget::reflowLayout() {
|
|||
|
||||
|
||||
void EditTextWidget::handleMouseDown(int x, int y, int button, int clickCount) {
|
||||
if (!isEnabled())
|
||||
return;
|
||||
|
||||
// First remove caret
|
||||
if (_caretVisible)
|
||||
drawCaret(true);
|
||||
|
|
|
@ -30,14 +30,15 @@ namespace Image {
|
|||
|
||||
#define CHECK_STREAM_PTR(n) \
|
||||
if ((stream.pos() + n) > stream.size() ) { \
|
||||
warning ("MS Video-1: Stream out of bounds (%d >= %d)", stream.pos() + n, stream.size()); \
|
||||
warning ("MS Video-1: Stream out of bounds (%d >= %d) d%d", stream.pos() + n, stream.size(), n); \
|
||||
return; \
|
||||
}
|
||||
|
||||
MSVideo1Decoder::MSVideo1Decoder(uint16 width, uint16 height, byte bitsPerPixel) : Codec() {
|
||||
_surface = new Graphics::Surface();
|
||||
// TODO: Specify the correct pixel format for 2Bpp mode.
|
||||
_surface->create(width, height, (bitsPerPixel == 8) ? Graphics::PixelFormat::createFormatCLUT8() : Graphics::PixelFormat(2, 0, 0, 0, 0, 0, 0, 0, 0));
|
||||
_surface->create(width, height, (bitsPerPixel == 8) ? Graphics::PixelFormat::createFormatCLUT8() :
|
||||
Graphics::PixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0));
|
||||
|
||||
_bitsPerPixel = bitsPerPixel;
|
||||
}
|
||||
|
||||
|
@ -125,13 +126,98 @@ void MSVideo1Decoder::decode8(Common::SeekableReadStream &stream) {
|
|||
}
|
||||
}
|
||||
|
||||
void MSVideo1Decoder::decode16(Common::SeekableReadStream &stream) {
|
||||
/* decoding parameters */
|
||||
uint16 colors[8];
|
||||
uint16 *pixels = (uint16 *)_surface->getPixels();
|
||||
int32 stride = _surface->w;
|
||||
|
||||
int32 skip_blocks = 0;
|
||||
int32 blocks_wide = _surface->w / 4;
|
||||
int32 blocks_high = _surface->h / 4;
|
||||
int32 total_blocks = blocks_wide * blocks_high;
|
||||
int32 block_inc = 4;
|
||||
int32 row_dec = stride + 4;
|
||||
|
||||
for (int32 block_y = blocks_high; block_y > 0; block_y--) {
|
||||
int32 block_ptr = ((block_y * 4) - 1) * stride;
|
||||
for (int32 block_x = blocks_wide; block_x > 0; block_x--) {
|
||||
/* check if this block should be skipped */
|
||||
if (skip_blocks) {
|
||||
block_ptr += block_inc;
|
||||
skip_blocks--;
|
||||
total_blocks--;
|
||||
continue;
|
||||
}
|
||||
|
||||
int32 pixel_ptr = block_ptr;
|
||||
|
||||
/* get the next two bytes in the encoded data stream */
|
||||
CHECK_STREAM_PTR(2);
|
||||
byte byte_a = stream.readByte();
|
||||
byte byte_b = stream.readByte();
|
||||
|
||||
/* check if the decode is finished */
|
||||
if ((byte_a == 0) && (byte_b == 0) && (total_blocks == 0)) {
|
||||
return;
|
||||
} else if ((byte_b & 0xFC) == 0x84) {
|
||||
/* skip code, but don't count the current block */
|
||||
skip_blocks = ((byte_b - 0x84) << 8) + byte_a - 1;
|
||||
} else if (byte_b < 0x80) {
|
||||
/* 2- or 8-color encoding modes */
|
||||
uint16 flags = (byte_b << 8) | byte_a;
|
||||
|
||||
CHECK_STREAM_PTR(4);
|
||||
colors[0] = stream.readUint16LE();
|
||||
colors[1] = stream.readUint16LE();
|
||||
|
||||
if (colors[0] & 0x8000) {
|
||||
/* 8-color encoding */
|
||||
CHECK_STREAM_PTR(12);
|
||||
colors[2] = stream.readUint16LE();
|
||||
colors[3] = stream.readUint16LE();
|
||||
colors[4] = stream.readUint16LE();
|
||||
colors[5] = stream.readUint16LE();
|
||||
colors[6] = stream.readUint16LE();
|
||||
colors[7] = stream.readUint16LE();
|
||||
|
||||
for (int pixel_y = 0; pixel_y < 4; pixel_y++) {
|
||||
for (int pixel_x = 0; pixel_x < 4; pixel_x++, flags >>= 1)
|
||||
pixels[pixel_ptr++] =
|
||||
colors[((pixel_y & 0x2) << 1) +
|
||||
(pixel_x & 0x2) + ((flags & 0x1) ^ 1)];
|
||||
pixel_ptr -= row_dec;
|
||||
}
|
||||
} else {
|
||||
/* 2-color encoding */
|
||||
for (int pixel_y = 0; pixel_y < 4; pixel_y++) {
|
||||
for (int pixel_x = 0; pixel_x < 4; pixel_x++, flags >>= 1)
|
||||
pixels[pixel_ptr++] = colors[(flags & 0x1) ^ 1];
|
||||
pixel_ptr -= row_dec;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* otherwise, it's a 1-color block */
|
||||
colors[0] = (byte_b << 8) | byte_a;
|
||||
|
||||
for (int pixel_y = 0; pixel_y < 4; pixel_y++) {
|
||||
for (int pixel_x = 0; pixel_x < 4; pixel_x++)
|
||||
pixels[pixel_ptr++] = colors[0];
|
||||
pixel_ptr -= row_dec;
|
||||
}
|
||||
}
|
||||
|
||||
block_ptr += block_inc;
|
||||
total_blocks--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const Graphics::Surface *MSVideo1Decoder::decodeFrame(Common::SeekableReadStream &stream) {
|
||||
if (_bitsPerPixel == 8)
|
||||
decode8(stream);
|
||||
else {
|
||||
// decode16(stream);
|
||||
error ("Unhandled MS Video-1 16bpp encoding");
|
||||
}
|
||||
else
|
||||
decode16(stream);
|
||||
|
||||
return _surface;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public:
|
|||
~MSVideo1Decoder();
|
||||
|
||||
const Graphics::Surface *decodeFrame(Common::SeekableReadStream &stream);
|
||||
Graphics::PixelFormat getPixelFormat() const { return Graphics::PixelFormat::createFormatCLUT8(); }
|
||||
Graphics::PixelFormat getPixelFormat() const { return _surface->format; }
|
||||
|
||||
private:
|
||||
byte _bitsPerPixel;
|
||||
|
@ -46,7 +46,7 @@ private:
|
|||
Graphics::Surface *_surface;
|
||||
|
||||
void decode8(Common::SeekableReadStream &stream);
|
||||
//void decode16(Common::SeekableReadStream &stream);
|
||||
void decode16(Common::SeekableReadStream &stream);
|
||||
};
|
||||
|
||||
} // End of namespace Image
|
||||
|
|
|
@ -6,6 +6,7 @@ gui/browser_osx.mm
|
|||
gui/chooser.cpp
|
||||
gui/editrecorddialog.cpp
|
||||
gui/error.cpp
|
||||
gui/filebrowser-dialog.cpp
|
||||
gui/gui-manager.cpp
|
||||
gui/KeysDialog.h
|
||||
gui/KeysDialog.cpp
|
||||
|
|
31
po/be_BY.po
31
po/be_BY.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.7.0git\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-02 17:22+0300\n"
|
||||
"Last-Translator: Ivan Lukyanov <greencis@mail.ru>\n"
|
||||
"Language-Team: Ivan Lukyanov <greencis@mail.ru>\n"
|
||||
|
@ -1044,6 +1044,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "²ë áÐßàÐþÔë ÖÐÔÐÕæÕ ÒëÔÐÛöæì ÓíâÐ ×ÐåÐÒÐÝÝÕ?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "½ÕÒïÔÞÜÐï ßÐÜëÛÚÐ"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "²ëÓÛïÔ áßöáã"
|
||||
|
@ -1827,8 +1832,9 @@ msgstr "
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "²ëåÐÔ"
|
||||
|
||||
|
@ -3333,6 +3339,25 @@ msgstr "
|
|||
msgid "Fly to lower right"
|
||||
msgstr "»ïæÕæì ÝÐßàÐÒÐ-þÝö×"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "¿ÛëþÝÐï ßàÐÓÞàâÚÐ"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "³ãçÝ. Üã×ëÚö:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "ÅãâÚÐáæì âëâàÐþ:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/ca_ES.po
31
po/ca_ES.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.6.0git\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2013-05-05 14:16+0100\n"
|
||||
"Last-Translator: Jordi Vilalta Prat <jvprat@jvprat.com>\n"
|
||||
"Language-Team: Catalan <scummvm-devel@lists.sf.net>\n"
|
||||
|
@ -1047,6 +1047,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Realment voleu suprimir aquesta partida?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Error desconegut"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Vista de llistat"
|
||||
|
@ -1832,8 +1837,9 @@ msgstr "Mode r
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Surt"
|
||||
|
||||
|
@ -3338,6 +3344,25 @@ msgstr "Vola a la dreta"
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Vola avall i a la dreta"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Desplaçament suau"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Volum de música:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Velocitat de subt.:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/cs_CZ.po
31
po/cs_CZ.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.7.0git\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2015-07-26 18:51+0200\n"
|
||||
"Last-Translator: Zbynìk Schwarz <zbynek.schwarz@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -1039,6 +1039,11 @@ msgstr "Pozn
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Opravdu chcete tento záznam smazat?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Neznámá chyba"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Seznam"
|
||||
|
@ -1820,8 +1825,9 @@ msgstr "Rychl
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Ukonèit"
|
||||
|
||||
|
@ -3332,6 +3338,25 @@ msgstr "Let
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Letìt doprava dolù"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Plynulé posunování"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Hlasitost hudby"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Rychlost titulkù:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/da_DA.po
31
po/da_DA.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-09 17:34+0100\n"
|
||||
"Last-Translator: Steffen Nyeland <steffen@nyeland.dk>\n"
|
||||
"Language-Team: Steffen Nyeland <steffen@nyeland.dk>\n"
|
||||
|
@ -1038,6 +1038,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Vil du virkelig slette denne gemmer?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Ukendt fejl"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Liste visning"
|
||||
|
@ -1820,8 +1825,9 @@ msgstr "Hurtig tilstand"
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Afslut"
|
||||
|
||||
|
@ -3323,6 +3329,25 @@ msgstr "Flyv til h
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Flyv nederst til højre"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Jævn bevægelse"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Musik lydstyrke:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Tekst hastighed:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/es_ES.po
31
po/es_ES.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.4.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-06 20:39+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
|
@ -1045,6 +1045,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "¿Seguro que quieres borrar esta partida?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Error desconocido"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Modo lista"
|
||||
|
@ -1828,8 +1833,9 @@ msgstr "Modo r
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Salir"
|
||||
|
||||
|
@ -3335,6 +3341,25 @@ msgstr "Volar a la derecha"
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Volar abajo y a la derecha"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Desplazamiento suave"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Música:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Vel. de subtítulos:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/eu.po
31
po/eu.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.5.0git\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2011-12-15 14:53+0100\n"
|
||||
"Last-Translator: Mikel Iturbe Urretxa <mikel@hamahiru.org>\n"
|
||||
"Language-Team: Librezale <librezale@librezale.org>\n"
|
||||
|
@ -1045,6 +1045,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Ezabatu partida gorde hau?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Errore ezezaguna"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr ""
|
||||
|
@ -1834,8 +1839,9 @@ msgstr "Modu bizkorra"
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Irten"
|
||||
|
||||
|
@ -3340,6 +3346,25 @@ msgstr "Eskuinera hegan egin"
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Behera eta eskuinera hegan egin"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Behera"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Musika:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Azpitit. abiadura:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/fi_FI.po
31
po/fi_FI.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.6.0git\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2012-12-01 19:37+0200\n"
|
||||
"Last-Translator: Toni Saarela <saarela@gmail.com>\n"
|
||||
"Language-Team: Finnish\n"
|
||||
|
@ -1046,6 +1046,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Haluatko varmasti poistaa tämän pelitallennuksen?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Tuntematon virhe"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Listanäkymä"
|
||||
|
@ -1834,8 +1839,9 @@ msgstr "Nopea moodi"
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Lopeta"
|
||||
|
||||
|
@ -3334,6 +3340,25 @@ msgstr "Lenn
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Lennä alas oikealle"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Pehmeä vieritys"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Musiikki:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Tekstin nopeus:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/fr_FR.po
31
po/fr_FR.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-05 13:49-0000\n"
|
||||
"Last-Translator: Thierry Crozat <criezy@scummvm.org>\n"
|
||||
"Language-Team: French <scummvm-devel@lists.sf.net>\n"
|
||||
|
@ -1051,6 +1051,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Voulez-vous vraiment supprimer cette sauvegarde ?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Erreur inconnue"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Vue en liste"
|
||||
|
@ -1833,8 +1838,9 @@ msgstr "Mode rapide"
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Quitter"
|
||||
|
||||
|
@ -3342,6 +3348,25 @@ msgstr "Voler vers la droite"
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Voler vers la bas à droite"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Défilement régulier"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Volume Musique:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Vitesse des ST:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/gl_ES.po
31
po/gl_ES.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.6.0git\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-02 09:51+0100\n"
|
||||
"Last-Translator: Santiago G. Sanz <s.sanz@uvigo.es>\n"
|
||||
"Language-Team: Santiago G. Sanz <s.sanz@uvigo.es>\n"
|
||||
|
@ -1038,6 +1038,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Seguro que queres eliminar esta partida?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Erro descoñecido"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Lista"
|
||||
|
@ -1820,8 +1825,9 @@ msgstr "Modo r
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Saír"
|
||||
|
||||
|
@ -3325,6 +3331,25 @@ msgstr "Voar
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Voar á dereita abaixo"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Desprazamento suave"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Volume de música:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Velocidade dos subtítulos:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
182
po/hu_HU.po
182
po/hu_HU.po
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"PO-Revision-Date: 2014-02-18 06:30+0100\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2015-10-12 11:10+0200\n"
|
||||
"Last-Translator: George Kormendi <grubycza@hotmail.com>\n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"Language: Magyar\n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-SourceCharset: iso-8859-1\n"
|
||||
"X-Generator: Poedit 1.6.4\n"
|
||||
"X-Generator: Poedit 1.8.5\n"
|
||||
|
||||
#: gui/about.cpp:94
|
||||
#, c-format
|
||||
|
@ -75,7 +75,7 @@ msgstr "V
|
|||
|
||||
#: gui/editrecorddialog.cpp:58
|
||||
msgid "Author:"
|
||||
msgstr ""
|
||||
msgstr "Szerző:"
|
||||
|
||||
#: gui/editrecorddialog.cpp:59 gui/launcher.cpp:204
|
||||
msgid "Name:"
|
||||
|
@ -83,11 +83,11 @@ msgstr "N
|
|||
|
||||
#: gui/editrecorddialog.cpp:60
|
||||
msgid "Notes:"
|
||||
msgstr ""
|
||||
msgstr "Megjegyzés:"
|
||||
|
||||
#: gui/editrecorddialog.cpp:68 gui/predictivedialog.cpp:75
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
msgstr "Ok"
|
||||
|
||||
#: gui/gui-manager.cpp:117 backends/keymapper/remap-dialog.cpp:53
|
||||
#: engines/scumm/help.cpp:126 engines/scumm/help.cpp:141
|
||||
|
@ -414,7 +414,7 @@ msgstr "A v
|
|||
|
||||
#: gui/launcher.cpp:633
|
||||
msgid "~L~oad..."
|
||||
msgstr "Betöltés"
|
||||
msgstr "~B~etölt..."
|
||||
|
||||
#: gui/launcher.cpp:633
|
||||
msgid "Load saved game for selected game"
|
||||
|
@ -545,7 +545,7 @@ msgstr "Massz
|
|||
|
||||
#: gui/launcher.cpp:1161
|
||||
msgid "Record..."
|
||||
msgstr ""
|
||||
msgstr "Felvétel..."
|
||||
|
||||
#: gui/massadd.cpp:79 gui/massadd.cpp:82
|
||||
msgid "... progress ..."
|
||||
|
@ -572,21 +572,19 @@ msgstr "%d
|
|||
|
||||
#: gui/onscreendialog.cpp:101 gui/onscreendialog.cpp:103
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
msgstr "Állj"
|
||||
|
||||
#: gui/onscreendialog.cpp:106
|
||||
msgid "Edit record description"
|
||||
msgstr ""
|
||||
msgstr "Felvétel leírás szerkesztése"
|
||||
|
||||
#: gui/onscreendialog.cpp:108
|
||||
#, fuzzy
|
||||
msgid "Switch to Game"
|
||||
msgstr "Kapcsol"
|
||||
msgstr "Átvált játékra"
|
||||
|
||||
#: gui/onscreendialog.cpp:110
|
||||
#, fuzzy
|
||||
msgid "Fast replay"
|
||||
msgstr "Gyors mód"
|
||||
msgstr "Gyors visszajátszás"
|
||||
|
||||
#: gui/options.cpp:85
|
||||
msgid "Never"
|
||||
|
@ -980,29 +978,28 @@ msgstr ""
|
|||
#. I18N: You must leave "#" as is, only word 'next' is translatable
|
||||
#: gui/predictivedialog.cpp:87
|
||||
msgid "# next"
|
||||
msgstr ""
|
||||
msgstr "# következő"
|
||||
|
||||
#: gui/predictivedialog.cpp:88
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
msgstr "hozzáad"
|
||||
|
||||
#: gui/predictivedialog.cpp:92
|
||||
#, fuzzy
|
||||
msgid "Delete char"
|
||||
msgstr "Töröl"
|
||||
msgstr "Karakter törlés"
|
||||
|
||||
#: gui/predictivedialog.cpp:96
|
||||
msgid "<"
|
||||
msgstr ""
|
||||
msgstr "<"
|
||||
|
||||
#. I18N: Pre means 'Predictive', leave '*' as is
|
||||
#: gui/predictivedialog.cpp:98
|
||||
msgid "* Pre"
|
||||
msgstr ""
|
||||
msgstr "* Előző"
|
||||
|
||||
#: gui/recorderdialog.cpp:64
|
||||
msgid "Recorder or Playback Gameplay"
|
||||
msgstr ""
|
||||
msgstr "Játékmenet felvétel vagy lejátszás"
|
||||
|
||||
#: gui/recorderdialog.cpp:69 gui/recorderdialog.cpp:156
|
||||
#: gui/saveload-dialog.cpp:220 gui/saveload-dialog.cpp:276
|
||||
|
@ -1011,31 +1008,33 @@ msgstr "T
|
|||
|
||||
#: gui/recorderdialog.cpp:71
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
msgstr "Felvétel"
|
||||
|
||||
#: gui/recorderdialog.cpp:72
|
||||
#, fuzzy
|
||||
msgid "Playback"
|
||||
msgstr "Játék"
|
||||
msgstr "Visszajátszás"
|
||||
|
||||
#: gui/recorderdialog.cpp:74
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Javít"
|
||||
|
||||
#: gui/recorderdialog.cpp:86 gui/recorderdialog.cpp:243
|
||||
#: gui/recorderdialog.cpp:253
|
||||
msgid "Author: "
|
||||
msgstr ""
|
||||
msgstr "Szerző:"
|
||||
|
||||
#: gui/recorderdialog.cpp:87 gui/recorderdialog.cpp:244
|
||||
#: gui/recorderdialog.cpp:254
|
||||
msgid "Notes: "
|
||||
msgstr ""
|
||||
msgstr "Megjegyzés:"
|
||||
|
||||
#: gui/recorderdialog.cpp:155
|
||||
#, fuzzy
|
||||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Biztos hogy törölni akarod ezt a játékállást?"
|
||||
msgstr "Biztos hogy törölni akarod ezt a felvételt?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
msgid "Unknown Author"
|
||||
msgstr "Ismeretlen Szerző"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
|
@ -1336,7 +1335,7 @@ msgstr "Folytat
|
|||
|
||||
#: engines/dialogs.cpp:87
|
||||
msgid "~L~oad"
|
||||
msgstr "Betöltés"
|
||||
msgstr "~B~etöltés"
|
||||
|
||||
#: engines/dialogs.cpp:91
|
||||
msgid "~S~ave"
|
||||
|
@ -1410,7 +1409,7 @@ msgstr "~O~K"
|
|||
#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110
|
||||
#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107
|
||||
msgid "~C~ancel"
|
||||
msgstr "Mégse"
|
||||
msgstr "~M~égse"
|
||||
|
||||
#: engines/dialogs.cpp:311
|
||||
msgid "~K~eys"
|
||||
|
@ -1493,7 +1492,7 @@ msgstr "DOSBox OPL emul
|
|||
|
||||
#: audio/fmopl.cpp:67
|
||||
msgid "ALSA Direct FM"
|
||||
msgstr ""
|
||||
msgstr "ALSA Direct FM"
|
||||
|
||||
#: audio/mididrv.cpp:209
|
||||
#, c-format
|
||||
|
@ -1609,7 +1608,7 @@ msgstr "ScummVM F
|
|||
|
||||
#: backends/platform/ds/arm9/source/dsoptions.cpp:63
|
||||
msgid "~L~eft handed mode"
|
||||
msgstr "Balkezes mód:"
|
||||
msgstr "~B~alkezes mód"
|
||||
|
||||
#: backends/platform/ds/arm9/source/dsoptions.cpp:64
|
||||
msgid "~I~ndy fight controls"
|
||||
|
@ -1814,8 +1813,9 @@ msgstr "Gyors m
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Kilépés"
|
||||
|
||||
|
@ -2069,7 +2069,7 @@ msgstr "V
|
|||
|
||||
#: backends/platform/wince/wince-sdl.cpp:542
|
||||
msgid "Map Zoom Up action (optional)"
|
||||
msgstr "Nagyítás művelet (opcionális)"
|
||||
msgstr "Térkép nagyítás művelet (opcionális)"
|
||||
|
||||
#: backends/platform/wince/wince-sdl.cpp:545
|
||||
msgid "Map Zoom Down action (optional)"
|
||||
|
@ -2182,25 +2182,27 @@ msgid "Use the original save/load screens, instead of the ScummVM ones"
|
|||
msgstr "Az eredeti mentés/betöltés képernyõ használata a ScummVM képek helyett"
|
||||
|
||||
#: engines/agi/detection.cpp:157
|
||||
#, fuzzy
|
||||
msgid "Use an alternative palette"
|
||||
msgstr "Alternatív játékintro használata (csak CD verziónál)"
|
||||
msgstr "Alternatív paletta használat"
|
||||
|
||||
#: engines/agi/detection.cpp:158
|
||||
msgid ""
|
||||
"Use an alternative palette, common for all Amiga games. This was the old "
|
||||
"behavior"
|
||||
msgstr ""
|
||||
"Alternatív paletta használat, közös minden Amiga játéknál. Ez egy régi "
|
||||
"megoldás"
|
||||
|
||||
#: engines/agi/detection.cpp:167
|
||||
#, fuzzy
|
||||
msgid "Mouse support"
|
||||
msgstr "Átugrás támogatás"
|
||||
msgstr "Egér támogatás"
|
||||
|
||||
#: engines/agi/detection.cpp:168
|
||||
msgid ""
|
||||
"Enables mouse support. Allows to use mouse for movement and in game menus."
|
||||
msgstr ""
|
||||
"Egérmód engélyezve. Lehetővé teszi az egérrel mozgatást játékban és "
|
||||
"játékmenükben."
|
||||
|
||||
#: engines/agi/saveload.cpp:816 engines/drascula/saveload.cpp:349
|
||||
#: engines/dreamweb/saveload.cpp:169 engines/neverhood/menumodule.cpp:886
|
||||
|
@ -2253,13 +2255,12 @@ msgid "Cutscene file '%s' not found!"
|
|||
msgstr "'%s' átvezetõ fájl nem található"
|
||||
|
||||
#: engines/cge/detection.cpp:105 engines/cge2/detection.cpp:101
|
||||
#, fuzzy
|
||||
msgid "Color Blind Mode"
|
||||
msgstr "Kattintás Mód"
|
||||
msgstr "Színvak Mód"
|
||||
|
||||
#: engines/cge/detection.cpp:106 engines/cge2/detection.cpp:102
|
||||
msgid "Enable Color Blind Mode by default"
|
||||
msgstr ""
|
||||
msgstr "Szinvak mód engedélyezve alapértelmezett"
|
||||
|
||||
#: engines/drascula/saveload.cpp:47
|
||||
msgid ""
|
||||
|
@ -2314,11 +2315,11 @@ msgstr "J
|
|||
|
||||
#: engines/hopkins/detection.cpp:76 engines/hopkins/detection.cpp:86
|
||||
msgid "Gore Mode"
|
||||
msgstr ""
|
||||
msgstr "Gore Mód"
|
||||
|
||||
#: engines/hopkins/detection.cpp:77 engines/hopkins/detection.cpp:87
|
||||
msgid "Enable Gore Mode when available"
|
||||
msgstr ""
|
||||
msgstr "Gore mód engedélyezés ha elérhető"
|
||||
|
||||
#. I18N: Studio audience adds an applause and cheering sounds whenever
|
||||
#. Malcolm makes a joke.
|
||||
|
@ -2450,6 +2451,12 @@ msgid ""
|
|||
"Do you wish to use this save game file with ScummVM?\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"A következő eredeti játékmentés fájlt találtam a játékkönyvtárban:\n"
|
||||
"\n"
|
||||
"%s %s\n"
|
||||
"\n"
|
||||
"Akarod hogy ezt a játékmentés fájlt használja a ScummVM?\n"
|
||||
"\n"
|
||||
|
||||
#: engines/kyra/saveload_eob.cpp:590
|
||||
#, c-format
|
||||
|
@ -2457,6 +2464,8 @@ msgid ""
|
|||
"A save game file was found in the specified slot %d. Overwrite?\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Játékmentés található a választott %d slotban. Felülírjam?\n"
|
||||
"\n"
|
||||
|
||||
#: engines/kyra/saveload_eob.cpp:623
|
||||
#, c-format
|
||||
|
@ -2468,6 +2477,11 @@ msgid ""
|
|||
"'import_savefile'.\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"%d eredeti játékmentés fájlt sikeresen importálta a\n"
|
||||
"ScummVM. Ha később manuálisan akarod importálni az eredeti játékmentéseket\n"
|
||||
"meg kell nyitnod a ScummVM debug konzolt és használd az 'import_savefile' "
|
||||
"utasítást.\n"
|
||||
"\n"
|
||||
|
||||
#. I18N: Option for fast scene switching
|
||||
#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167
|
||||
|
@ -2476,7 +2490,7 @@ msgstr "~Z~ip M
|
|||
|
||||
#: engines/mohawk/dialogs.cpp:93
|
||||
msgid "~T~ransitions Enabled"
|
||||
msgstr "Átmenetek engedélyezve"
|
||||
msgstr "~Á~tmenetek engedélyezve"
|
||||
|
||||
#. I18N: Drop book page
|
||||
#: engines/mohawk/dialogs.cpp:95
|
||||
|
@ -2607,11 +2621,12 @@ msgstr "Alternat
|
|||
|
||||
#: engines/sci/detection.cpp:374
|
||||
msgid "Skip EGA dithering pass (full color backgrounds)"
|
||||
msgstr ""
|
||||
msgstr "EGA színmoduláció átugrása (Színes háttereknél)"
|
||||
|
||||
#: engines/sci/detection.cpp:375
|
||||
msgid "Skip dithering pass in EGA games, graphics are shown with full colors"
|
||||
msgstr ""
|
||||
"Színmoduláció átugrása EGA játékoknál, grafikák teljes színben láthatók"
|
||||
|
||||
#: engines/sci/detection.cpp:384
|
||||
msgid "Prefer digital sound effects"
|
||||
|
@ -2682,15 +2697,13 @@ msgstr "J
|
|||
#. "Moechten Sie wirklich neu starten? (J/N)J"
|
||||
#. Will react to J as 'Yes'
|
||||
#: engines/scumm/dialogs.cpp:183
|
||||
#, fuzzy
|
||||
msgid "Are you sure you want to restart? (Y/N)Y"
|
||||
msgstr "Biztos hogy újra akarod indítani? (Y/N)"
|
||||
msgstr "Biztos hogy újra akarod indítani? (I/N)I"
|
||||
|
||||
#. I18N: you may specify 'Yes' symbol at the end of the line. See previous comment
|
||||
#: engines/scumm/dialogs.cpp:185
|
||||
#, fuzzy
|
||||
msgid "Are you sure you want to quit? (Y/N)Y"
|
||||
msgstr "Biztos hogy ki akarsz lépni? (Y/N)"
|
||||
msgstr "Biztos hogy ki akarsz lépni? (I/N)I"
|
||||
|
||||
#: engines/scumm/dialogs.cpp:190
|
||||
msgid "Play"
|
||||
|
@ -2737,7 +2750,7 @@ msgstr "J
|
|||
#. I18N: Previous page button
|
||||
#: engines/scumm/dialogs.cpp:288
|
||||
msgid "~P~revious"
|
||||
msgstr "Előző"
|
||||
msgstr "~E~lőző"
|
||||
|
||||
#. I18N: Next page button
|
||||
#: engines/scumm/dialogs.cpp:290
|
||||
|
@ -3198,25 +3211,24 @@ msgid "Third kid"
|
|||
msgstr "Harmadik gyerek"
|
||||
|
||||
#: engines/scumm/help.cpp:292
|
||||
#, fuzzy
|
||||
msgid "Toggle Inventory/IQ Points display"
|
||||
msgstr "Adatképernyő kapcsoló"
|
||||
msgstr "Leltár/IQ pont kijelző kapcsoló"
|
||||
|
||||
#: engines/scumm/help.cpp:293
|
||||
msgid "Toggle Keyboard/Mouse Fighting (*)"
|
||||
msgstr ""
|
||||
msgstr "Billentyűzet/Egér harc kapcsoló (*)"
|
||||
|
||||
#: engines/scumm/help.cpp:295
|
||||
msgid "* Keyboard Fighting is always on,"
|
||||
msgstr ""
|
||||
msgstr "* Harc billentyűzetről mindíg aktív,"
|
||||
|
||||
#: engines/scumm/help.cpp:296
|
||||
msgid " so despite the in-game message this"
|
||||
msgstr ""
|
||||
msgstr " so despite the in-game message this"
|
||||
|
||||
#: engines/scumm/help.cpp:297
|
||||
msgid " actually toggles Mouse Fighting Off/On"
|
||||
msgstr ""
|
||||
msgstr " egérrel harcolás mód átkapcsolás Be/Ki"
|
||||
|
||||
#: engines/scumm/help.cpp:304
|
||||
msgid "Fighting controls (numpad):"
|
||||
|
@ -3253,7 +3265,7 @@ msgstr "Als
|
|||
|
||||
#: engines/scumm/help.cpp:315
|
||||
msgid "Sucker punch"
|
||||
msgstr ""
|
||||
msgstr "Váratlan ütés"
|
||||
|
||||
#: engines/scumm/help.cpp:318
|
||||
msgid "These are for Indy on left."
|
||||
|
@ -3311,6 +3323,22 @@ msgstr "Jobbra rep
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Jobbra le repülés"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Finomgörgetés be"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr "Finomgörgetés ki"
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
msgid "Music volume: "
|
||||
msgstr "Zene hangereje:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Felirat sebesség:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
@ -3321,27 +3349,30 @@ msgstr ""
|
|||
"a %s hiányzik. AdLib-ot használok helyette."
|
||||
|
||||
#: engines/scumm/scumm.cpp:2644
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Usually, Maniac Mansion would start now. But for that to work, the game "
|
||||
"files for Maniac Mansion have to be in the 'Maniac' directory inside the "
|
||||
"Tentacle game directory, and the game has to be added to ScummVM."
|
||||
msgstr ""
|
||||
"Általában a Maniac Mansion indulna itt. De a ScummVM most nem indítja el. Ha "
|
||||
"játszani akarsz vele menj a ScummVM főmenüben a 'Játék hozzáadás' ra és "
|
||||
"válaszd a 'Maniac' mappát a 'Tentacle' könyvtárában."
|
||||
"Általában a Maniac Mansion indulna most. De a működéshez a Maniac Mansion "
|
||||
"fájljainak, a 'Maniac' mappában kell lenni a Tentacle játékmappáján belül, "
|
||||
"és a játékot így adja hozzá a ScummVM a listához."
|
||||
|
||||
#: engines/scumm/players/player_v3m.cpp:129
|
||||
msgid ""
|
||||
"Could not find the 'Loom' Macintosh executable to read the\n"
|
||||
"instruments from. Music will be disabled."
|
||||
msgstr ""
|
||||
"Nem található a 'Loom' Macintosh futtató állomány, hogy \n"
|
||||
"beolvassa a hangszereket. Zene le lessz tiltva."
|
||||
|
||||
#: engines/scumm/players/player_v5m.cpp:107
|
||||
msgid ""
|
||||
"Could not find the 'Monkey Island' Macintosh executable to read the\n"
|
||||
"instruments from. Music will be disabled."
|
||||
msgstr ""
|
||||
"Nem található a 'Monkey Island' Macintosh futtató állomány, hogy \n"
|
||||
"beolvassa a hangszereket. Zene le lessz tiltva."
|
||||
|
||||
#: engines/sky/compact.cpp:130
|
||||
msgid ""
|
||||
|
@ -3457,51 +3488,48 @@ msgstr ""
|
|||
|
||||
#: engines/wintermute/detection.cpp:58
|
||||
msgid "Show FPS-counter"
|
||||
msgstr ""
|
||||
msgstr "FPS számláló látszik"
|
||||
|
||||
#: engines/wintermute/detection.cpp:59
|
||||
msgid "Show the current number of frames per second in the upper left corner"
|
||||
msgstr ""
|
||||
"A jelenlegi másodpercenkénti képkocka szám kijelzése a bal felső sarokban"
|
||||
|
||||
#: engines/zvision/detection_tables.h:52
|
||||
#, fuzzy
|
||||
msgid "Use the original save/load screens instead of the ScummVM interface"
|
||||
msgstr "Az eredeti mentés/betöltés képernyő használata a ScummVM képek helyett"
|
||||
msgstr "Használd az eredeti mentés/töltés képet a ScummVM felület helyett"
|
||||
|
||||
#: engines/zvision/detection_tables.h:61
|
||||
msgid "Double FPS"
|
||||
msgstr ""
|
||||
msgstr "Dupla FPS"
|
||||
|
||||
#: engines/zvision/detection_tables.h:62
|
||||
msgid "Increase framerate from 30 to 60 FPS"
|
||||
msgstr ""
|
||||
msgstr "Növeli a képfrissítést 30 ról 60 FPS-re"
|
||||
|
||||
#: engines/zvision/detection_tables.h:71
|
||||
#, fuzzy
|
||||
msgid "Enable Venus"
|
||||
msgstr "Helium mód engedélyezve"
|
||||
msgstr "Venus engedélyezve"
|
||||
|
||||
#: engines/zvision/detection_tables.h:72
|
||||
#, fuzzy
|
||||
msgid "Enable the Venus help system"
|
||||
msgstr "Helium mód engedélyezve"
|
||||
msgstr "Venus súgórendszer engedélyezve"
|
||||
|
||||
#: engines/zvision/detection_tables.h:81
|
||||
msgid "Disable animation while turning"
|
||||
msgstr ""
|
||||
msgstr "Animáció tiltás bekapcsolás közben"
|
||||
|
||||
#: engines/zvision/detection_tables.h:82
|
||||
msgid "Disable animation while turning in panorama mode"
|
||||
msgstr ""
|
||||
msgstr "Animáció tiltása panoráma mód bekapcsolása közben"
|
||||
|
||||
#: engines/zvision/detection_tables.h:91
|
||||
msgid "Use high resolution MPEG video"
|
||||
msgstr ""
|
||||
msgstr "Nagyfelbontású MPEG videó használat"
|
||||
|
||||
#: engines/zvision/detection_tables.h:92
|
||||
#, fuzzy
|
||||
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
|
||||
msgstr "Alternatív ezüst kurzorszett használata, a normál arany helyett"
|
||||
msgstr "MPEG videót használ DVD verziónál, a kisebb felbontású AVI helyett"
|
||||
|
||||
#~ msgid "EGA undithering"
|
||||
#~ msgstr "EGA szinjavítás"
|
||||
|
|
31
po/it_IT.po
31
po/it_IT.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-03 17:59-0600\n"
|
||||
"Last-Translator: Matteo 'Maff' Angelino <matteo.maff at gmail dot com>\n"
|
||||
"Language-Team: Italian\n"
|
||||
|
@ -1042,6 +1042,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Sei sicuro di voler eliminare questo salvataggio?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Errore sconosciuto"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Elenco"
|
||||
|
@ -1827,8 +1832,9 @@ msgstr "Modalit
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Esci"
|
||||
|
||||
|
@ -3332,6 +3338,25 @@ msgstr "Vola a destra"
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Vola in basso a destra"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Scorrimento morbido"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Volume musica:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Velocità testo:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/nb_NO.po
31
po/nb_NO.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-11 00:02+0100\n"
|
||||
"Last-Translator: Einar Johan Trøan Sømåen <einarjohants@gmail.com>\n"
|
||||
"Language-Team: somaen <einarjohants@gmail.com>\n"
|
||||
|
@ -1039,6 +1039,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Vil du virkelig slette dette lagrede spillet?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Ukjent feil"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Listevisning"
|
||||
|
@ -1820,8 +1825,9 @@ msgstr "Rask modus"
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Avslutt"
|
||||
|
||||
|
@ -3322,6 +3328,25 @@ msgstr "Fly til h
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Fly til nedre høyre"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Myk scrolling"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Musikkvolum:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Teksthastighet:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/nl_NL.po
31
po/nl_NL.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.8.0git\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-11-25 20:46+0100\n"
|
||||
"Last-Translator: Ben Castricum <scummvm@bencastricum.nl>\n"
|
||||
"Language-Team: Ben Castricum <scummvm@bencastricum.nl>\n"
|
||||
|
@ -1051,6 +1051,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Wilt u dit opgeslagen spel echt verwijderen?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Onbekende fout"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Lijstopmaak"
|
||||
|
@ -1837,8 +1842,9 @@ msgstr "Snelle modus"
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Stoppen"
|
||||
|
||||
|
@ -3358,6 +3364,25 @@ msgstr "Vlieg naar rechts"
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Vlieg naar rechts omlaag"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Vloeiend scrollen"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Muziek volume:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Snelheid tekst:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/nn_NO.po
31
po/nn_NO.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-11 00:04+0100\n"
|
||||
"Last-Translator: Einar Johan Trøan Sømåen <einarjohants@gmail.com>\n"
|
||||
"Language-Team: somaen <einarjohants@gmail.com>\n"
|
||||
|
@ -1038,6 +1038,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Vil du verkeleg slette det lagra spelet?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Ukjend feil"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Listevisning"
|
||||
|
@ -1802,8 +1807,9 @@ msgstr "Rask modus"
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Avslutt"
|
||||
|
||||
|
@ -3304,6 +3310,25 @@ msgstr "Fly til h
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Fly til nedre høgre"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Bla liste ned"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Musikkvolum:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Undertekstfart:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/pl_PL.po
31
po/pl_PL.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-02 12:28+0100\n"
|
||||
"Last-Translator: Micha³ Zi±bkowski <mziab@o2.pl>\n"
|
||||
"Language-Team: Grajpopolsku.pl <grajpopolsku@gmail.com>\n"
|
||||
|
@ -1039,6 +1039,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Na pewno chcesz skasowaæ ten zapis?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Nieznany b³±d"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Widok listy"
|
||||
|
@ -1815,8 +1820,9 @@ msgstr "Tryb szybki"
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Zakoñcz"
|
||||
|
||||
|
@ -3312,6 +3318,25 @@ msgstr "Le
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Leæ w dó³, w prawo"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "P³ynne przewijanie"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "G³o¶no¶æ muzyki:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Prêd. napisów:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/pt_BR.po
31
po/pt_BR.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2011-10-21 21:30-0300\n"
|
||||
"Last-Translator: Saulo Benigno <saulobenigno@gmail.com>\n"
|
||||
"Language-Team: ScummBR (www.scummbr.com) <scummbr@yahoo.com.br>\n"
|
||||
|
@ -1051,6 +1051,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Você realmente quer excluir este jogo salvo?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Erro desconhecido"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr ""
|
||||
|
@ -1849,8 +1854,9 @@ msgstr "Modo r
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Sair"
|
||||
|
||||
|
@ -3366,6 +3372,25 @@ msgstr "Voar para direita"
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Voar para direita inferior"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Descer na lista"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Volume da Música:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Rapidez legendas:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
170
po/ru_RU.po
170
po/ru_RU.po
|
@ -1,22 +1,21 @@
|
|||
# Russian translation for ScummVM.
|
||||
# Copyright (C) 2010-2015 The ScummVM Team
|
||||
# This file is distributed under the same license as the ScummVM package.
|
||||
# Eugene Sandulenko <sev@scummvm.org>, 2010-2014
|
||||
# Eugene Sandulenko <sev@scummvm.org>, 2010-2015
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0svn\n"
|
||||
"Project-Id-Version: ScummVM 1.8.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"PO-Revision-Date: 2014-07-02 17:20+0300\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2015-11-06 09:23+0300\n"
|
||||
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: Russian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-5\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n"
|
||||
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Poedit 1.5.5\n"
|
||||
|
||||
#: gui/about.cpp:94
|
||||
|
@ -75,7 +74,7 @@ msgstr "
|
|||
|
||||
#: gui/editrecorddialog.cpp:58
|
||||
msgid "Author:"
|
||||
msgstr ""
|
||||
msgstr "Автор:"
|
||||
|
||||
#: gui/editrecorddialog.cpp:59 gui/launcher.cpp:204
|
||||
msgid "Name:"
|
||||
|
@ -83,11 +82,11 @@ msgstr "
|
|||
|
||||
#: gui/editrecorddialog.cpp:60
|
||||
msgid "Notes:"
|
||||
msgstr ""
|
||||
msgstr "Заметки:"
|
||||
|
||||
#: gui/editrecorddialog.cpp:68 gui/predictivedialog.cpp:75
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
msgstr "Ok"
|
||||
|
||||
#: gui/gui-manager.cpp:117 backends/keymapper/remap-dialog.cpp:53
|
||||
#: engines/scumm/help.cpp:126 engines/scumm/help.cpp:141
|
||||
|
@ -545,7 +544,7 @@ msgstr "
|
|||
|
||||
#: gui/launcher.cpp:1161
|
||||
msgid "Record..."
|
||||
msgstr ""
|
||||
msgstr "Запись..."
|
||||
|
||||
#: gui/massadd.cpp:79 gui/massadd.cpp:82
|
||||
msgid "... progress ..."
|
||||
|
@ -572,21 +571,19 @@ msgstr "
|
|||
|
||||
#: gui/onscreendialog.cpp:101 gui/onscreendialog.cpp:103
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
msgstr "Стоп"
|
||||
|
||||
#: gui/onscreendialog.cpp:106
|
||||
msgid "Edit record description"
|
||||
msgstr ""
|
||||
msgstr "Редактировать описание записи"
|
||||
|
||||
#: gui/onscreendialog.cpp:108
|
||||
#, fuzzy
|
||||
msgid "Switch to Game"
|
||||
msgstr "Переключить"
|
||||
msgstr "Переключиться в игру"
|
||||
|
||||
#: gui/onscreendialog.cpp:110
|
||||
#, fuzzy
|
||||
msgid "Fast replay"
|
||||
msgstr "Быстрый режим"
|
||||
msgstr "Быстрое воспроизведение"
|
||||
|
||||
#: gui/options.cpp:85
|
||||
msgid "Never"
|
||||
|
@ -987,29 +984,28 @@ msgstr ""
|
|||
#. I18N: You must leave "#" as is, only word 'next' is translatable
|
||||
#: gui/predictivedialog.cpp:87
|
||||
msgid "# next"
|
||||
msgstr ""
|
||||
msgstr "# след"
|
||||
|
||||
#: gui/predictivedialog.cpp:88
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
msgstr "доб"
|
||||
|
||||
#: gui/predictivedialog.cpp:92
|
||||
#, fuzzy
|
||||
msgid "Delete char"
|
||||
msgstr "Удалить"
|
||||
msgstr "Удалить символ"
|
||||
|
||||
#: gui/predictivedialog.cpp:96
|
||||
msgid "<"
|
||||
msgstr ""
|
||||
msgstr "<"
|
||||
|
||||
#. I18N: Pre means 'Predictive', leave '*' as is
|
||||
#: gui/predictivedialog.cpp:98
|
||||
msgid "* Pre"
|
||||
msgstr ""
|
||||
msgstr "* Pre"
|
||||
|
||||
#: gui/recorderdialog.cpp:64
|
||||
msgid "Recorder or Playback Gameplay"
|
||||
msgstr ""
|
||||
msgstr "Воспроизвести или записать игровой процесс"
|
||||
|
||||
#: gui/recorderdialog.cpp:69 gui/recorderdialog.cpp:156
|
||||
#: gui/saveload-dialog.cpp:220 gui/saveload-dialog.cpp:276
|
||||
|
@ -1018,31 +1014,33 @@ msgstr "
|
|||
|
||||
#: gui/recorderdialog.cpp:71
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
msgstr "Записать"
|
||||
|
||||
#: gui/recorderdialog.cpp:72
|
||||
#, fuzzy
|
||||
msgid "Playback"
|
||||
msgstr "Играть"
|
||||
msgstr "Воспроизвести"
|
||||
|
||||
#: gui/recorderdialog.cpp:74
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Редактировать"
|
||||
|
||||
#: gui/recorderdialog.cpp:86 gui/recorderdialog.cpp:243
|
||||
#: gui/recorderdialog.cpp:253
|
||||
msgid "Author: "
|
||||
msgstr ""
|
||||
msgstr "Автор: "
|
||||
|
||||
#: gui/recorderdialog.cpp:87 gui/recorderdialog.cpp:244
|
||||
#: gui/recorderdialog.cpp:254
|
||||
msgid "Notes: "
|
||||
msgstr ""
|
||||
msgstr "Заметки: "
|
||||
|
||||
#: gui/recorderdialog.cpp:155
|
||||
#, fuzzy
|
||||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Вы действительно хотите удалить это сохранение?"
|
||||
msgstr "Вы действительно хотите удалить эту запись?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
msgid "Unknown Author"
|
||||
msgstr "Неизвестный автор"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
|
@ -1506,7 +1504,7 @@ msgstr "
|
|||
|
||||
#: audio/fmopl.cpp:67
|
||||
msgid "ALSA Direct FM"
|
||||
msgstr ""
|
||||
msgstr "Прямой FM ALSA"
|
||||
|
||||
#: audio/mididrv.cpp:209
|
||||
#, c-format
|
||||
|
@ -1829,8 +1827,9 @@ msgstr "
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "²ëåÞÔ"
|
||||
|
||||
|
@ -2199,25 +2198,25 @@ msgstr ""
|
|||
"ScummVM"
|
||||
|
||||
#: engines/agi/detection.cpp:157
|
||||
#, fuzzy
|
||||
msgid "Use an alternative palette"
|
||||
msgstr "Использовать альтернативное вступление (только для CD версии игры)"
|
||||
msgstr "Использовать альтернативную палитру"
|
||||
|
||||
#: engines/agi/detection.cpp:158
|
||||
msgid ""
|
||||
"Use an alternative palette, common for all Amiga games. This was the old "
|
||||
"behavior"
|
||||
msgstr ""
|
||||
"Использовать альтернативную палитру для всех игр Amiga. Это было старое поведение"
|
||||
|
||||
#: engines/agi/detection.cpp:167
|
||||
#, fuzzy
|
||||
msgid "Mouse support"
|
||||
msgstr "Поддержка пропусков"
|
||||
msgstr "Поддержка мыши"
|
||||
|
||||
#: engines/agi/detection.cpp:168
|
||||
msgid ""
|
||||
"Enables mouse support. Allows to use mouse for movement and in game menus."
|
||||
msgstr ""
|
||||
"Включает поддержку мыши. Позволяет использовать мышь для перемещения и в меню игры."
|
||||
|
||||
#: engines/agi/saveload.cpp:816 engines/drascula/saveload.cpp:349
|
||||
#: engines/dreamweb/saveload.cpp:169 engines/neverhood/menumodule.cpp:886
|
||||
|
@ -2270,13 +2269,12 @@ msgid "Cutscene file '%s' not found!"
|
|||
msgstr "ÄÐÙÛ ×ÐáâÐÒÚØ '%s' ÝÕ ÝÐÙÔÕÝ!"
|
||||
|
||||
#: engines/cge/detection.cpp:105 engines/cge2/detection.cpp:101
|
||||
#, fuzzy
|
||||
msgid "Color Blind Mode"
|
||||
msgstr "Режим щелчка"
|
||||
msgstr "Режим без цвета"
|
||||
|
||||
#: engines/cge/detection.cpp:106 engines/cge2/detection.cpp:102
|
||||
msgid "Enable Color Blind Mode by default"
|
||||
msgstr ""
|
||||
msgstr "Включить режим для людей со слабым восприятием цвета"
|
||||
|
||||
#: engines/drascula/saveload.cpp:47
|
||||
msgid ""
|
||||
|
@ -2332,11 +2330,11 @@ msgstr "
|
|||
|
||||
#: engines/hopkins/detection.cpp:76 engines/hopkins/detection.cpp:86
|
||||
msgid "Gore Mode"
|
||||
msgstr ""
|
||||
msgstr "Режим с кровью"
|
||||
|
||||
#: engines/hopkins/detection.cpp:77 engines/hopkins/detection.cpp:87
|
||||
msgid "Enable Gore Mode when available"
|
||||
msgstr ""
|
||||
msgstr "Включает режим с изображением крови, если доступно"
|
||||
|
||||
#. I18N: Studio audience adds an applause and cheering sounds whenever
|
||||
#. Malcolm makes a joke.
|
||||
|
@ -2469,6 +2467,12 @@ msgid ""
|
|||
"Do you wish to use this save game file with ScummVM?\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Нижеследующий файл сохранения из оригинальной игры был найден в вашей игровой директории:\n"
|
||||
"\n"
|
||||
"%s %s\n"
|
||||
"\n"
|
||||
"Не желаете ли использовать это сохранение в ScummVM?\n"
|
||||
"\n"
|
||||
|
||||
#: engines/kyra/saveload_eob.cpp:590
|
||||
#, c-format
|
||||
|
@ -2476,6 +2480,8 @@ msgid ""
|
|||
"A save game file was found in the specified slot %d. Overwrite?\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"В указанном слоте %d уже есть сохранение игры. Перезаписать?\n"
|
||||
"\n"
|
||||
|
||||
#: engines/kyra/saveload_eob.cpp:623
|
||||
#, c-format
|
||||
|
@ -2487,6 +2493,10 @@ msgid ""
|
|||
"'import_savefile'.\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"%d оригинальных файлов сохранения были успешно импортированы в ScummVM.\n"
|
||||
"Если вы захотите импортировать оригинпльные сохранения, вам нужно будет\n"
|
||||
"открыть отладочную консоль ScummVM и ввести команду 'import_savefile'.\n"
|
||||
"\n"
|
||||
|
||||
#. I18N: Option for fast scene switching
|
||||
#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167
|
||||
|
@ -2625,11 +2635,11 @@ msgstr "
|
|||
|
||||
#: engines/sci/detection.cpp:374
|
||||
msgid "Skip EGA dithering pass (full color backgrounds)"
|
||||
msgstr ""
|
||||
msgstr "Не делать аппроксимацию цветов EGA (полноцветные фоны)"
|
||||
|
||||
#: engines/sci/detection.cpp:375
|
||||
msgid "Skip dithering pass in EGA games, graphics are shown with full colors"
|
||||
msgstr ""
|
||||
msgstr "Пропускает проход аппроксимации цветов EGA, графика будет показана со всеми цветами"
|
||||
|
||||
#: engines/sci/detection.cpp:384
|
||||
msgid "Prefer digital sound effects"
|
||||
|
@ -2706,15 +2716,13 @@ msgstr "
|
|||
#. "Moechten Sie wirklich neu starten? (J/N)J"
|
||||
#. Will react to J as 'Yes'
|
||||
#: engines/scumm/dialogs.cpp:183
|
||||
#, fuzzy
|
||||
msgid "Are you sure you want to restart? (Y/N)Y"
|
||||
msgstr "Вы уверены, что хотите начать снова? (Y/N)"
|
||||
msgstr "Вы уверены, что хотите начать снова? (Y/N)Y"
|
||||
|
||||
#. I18N: you may specify 'Yes' symbol at the end of the line. See previous comment
|
||||
#: engines/scumm/dialogs.cpp:185
|
||||
#, fuzzy
|
||||
msgid "Are you sure you want to quit? (Y/N)Y"
|
||||
msgstr "Вы уверены, что хотите выйти? (Y/N)"
|
||||
msgstr "Вы уверены, что хотите выйти? (Y/N)Y"
|
||||
|
||||
#: engines/scumm/dialogs.cpp:190
|
||||
msgid "Play"
|
||||
|
@ -3222,25 +3230,24 @@ msgid "Third kid"
|
|||
msgstr "ÂàÕâØÙ ÓÕàÞÙ"
|
||||
|
||||
#: engines/scumm/help.cpp:292
|
||||
#, fuzzy
|
||||
msgid "Toggle Inventory/IQ Points display"
|
||||
msgstr "Включить показ данных в центре экрана"
|
||||
msgstr "Переключить показ инвентаря/очков IQ"
|
||||
|
||||
#: engines/scumm/help.cpp:293
|
||||
msgid "Toggle Keyboard/Mouse Fighting (*)"
|
||||
msgstr ""
|
||||
msgstr "Переключить управление боями Клввиатурой/Мышью (*)"
|
||||
|
||||
#: engines/scumm/help.cpp:295
|
||||
msgid "* Keyboard Fighting is always on,"
|
||||
msgstr ""
|
||||
msgstr "* Управление клавиатурой всегда включено,"
|
||||
|
||||
#: engines/scumm/help.cpp:296
|
||||
msgid " so despite the in-game message this"
|
||||
msgstr ""
|
||||
msgstr " твк что несмотря на сообщение игры,"
|
||||
|
||||
#: engines/scumm/help.cpp:297
|
||||
msgid " actually toggles Mouse Fighting Off/On"
|
||||
msgstr ""
|
||||
msgstr " на самом деле это вкл/выкл управление мышью"
|
||||
|
||||
#: engines/scumm/help.cpp:304
|
||||
msgid "Fighting controls (numpad):"
|
||||
|
@ -3277,7 +3284,7 @@ msgstr "
|
|||
|
||||
#: engines/scumm/help.cpp:315
|
||||
msgid "Sucker punch"
|
||||
msgstr ""
|
||||
msgstr "Удар сзади"
|
||||
|
||||
#: engines/scumm/help.cpp:318
|
||||
msgid "These are for Indy on left."
|
||||
|
@ -3335,6 +3342,22 @@ msgstr "
|
|||
msgid "Fly to lower right"
|
||||
msgstr "»ÕâÕâì ÒßàÐÒÞ-ÒÝØ×"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Прокрутка скачками включена"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr "Прокрутка скачками выкл"
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
msgid "Music volume: "
|
||||
msgstr "Громк. музыки: "
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Скорость титров: "
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
@ -3345,27 +3368,30 @@ msgstr ""
|
|||
"LucasArts, ÝÞ ÝÕ åÒÐâÐÕâ %s. ¿ÕàÕÚÛîçÐîáì ÝÐ AdLib."
|
||||
|
||||
#: engines/scumm/scumm.cpp:2644
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Usually, Maniac Mansion would start now. But for that to work, the game "
|
||||
"files for Maniac Mansion have to be in the 'Maniac' directory inside the "
|
||||
"Tentacle game directory, and the game has to be added to ScummVM."
|
||||
msgstr ""
|
||||
"Сейчас должна запуститься игра Maniac Mansion. Но ScummVM пока этого не "
|
||||
"умеет. Чтобы сыграть, нажмите 'Новая игра' в стартовом меню ScummVM, а затем "
|
||||
"выберите директорию Maniac внутри директории с игрой Tentacle."
|
||||
"Сейчас должна запуститься игра Maniac Mansion. Но чтобы это работало, файлы "
|
||||
"игры Maniac Mansion должны быть скопированы в директорию 'Maniac' внутри "
|
||||
"директории игры Tentacle, и сама игра должна быть добавлена в ScummVM."
|
||||
|
||||
#: engines/scumm/players/player_v3m.cpp:129
|
||||
msgid ""
|
||||
"Could not find the 'Loom' Macintosh executable to read the\n"
|
||||
"instruments from. Music will be disabled."
|
||||
msgstr ""
|
||||
"Не удалось найти исполнимый файл 'Loom' Macintosh, чтобы прочитать\n"
|
||||
"данные об инструментах. Музыка будет выключена."
|
||||
|
||||
#: engines/scumm/players/player_v5m.cpp:107
|
||||
msgid ""
|
||||
"Could not find the 'Monkey Island' Macintosh executable to read the\n"
|
||||
"instruments from. Music will be disabled."
|
||||
msgstr ""
|
||||
"Не удалось найти исполнимый файл 'Monkey Island' Macintosh, чтобы прочитать\n"
|
||||
"данные об инструментах. Музыка будет выключена."
|
||||
|
||||
#: engines/sky/compact.cpp:130
|
||||
msgid ""
|
||||
|
@ -3481,14 +3507,13 @@ msgstr ""
|
|||
|
||||
#: engines/wintermute/detection.cpp:58
|
||||
msgid "Show FPS-counter"
|
||||
msgstr ""
|
||||
msgstr "Показать счётчик кадров в секунду"
|
||||
|
||||
#: engines/wintermute/detection.cpp:59
|
||||
msgid "Show the current number of frames per second in the upper left corner"
|
||||
msgstr ""
|
||||
msgstr "Показать в верхнем левом углу текущее количество кадров в секунду"
|
||||
|
||||
#: engines/zvision/detection_tables.h:52
|
||||
#, fuzzy
|
||||
msgid "Use the original save/load screens instead of the ScummVM interface"
|
||||
msgstr ""
|
||||
"¸áßÞÛì×ÞÒÐâì ÞàØÓØÝÐÛìÝëÕ íÚàÐÝë ×ÐßØáØ Ø áÞåàÐÝÕÝØï ØÓàë ÒÜÕáâÞ áÔÕÛÐÝÝëå Ò "
|
||||
|
@ -3496,39 +3521,36 @@ msgstr ""
|
|||
|
||||
#: engines/zvision/detection_tables.h:61
|
||||
msgid "Double FPS"
|
||||
msgstr ""
|
||||
msgstr "Двойноq FPS"
|
||||
|
||||
#: engines/zvision/detection_tables.h:62
|
||||
msgid "Increase framerate from 30 to 60 FPS"
|
||||
msgstr ""
|
||||
msgstr "Увеличить частоту кадров с 30 до 60 Гц"
|
||||
|
||||
#: engines/zvision/detection_tables.h:71
|
||||
#, fuzzy
|
||||
msgid "Enable Venus"
|
||||
msgstr "Включить режим гелия"
|
||||
msgstr "Включить Venus"
|
||||
|
||||
#: engines/zvision/detection_tables.h:72
|
||||
#, fuzzy
|
||||
msgid "Enable the Venus help system"
|
||||
msgstr "Включить режим гелия"
|
||||
msgstr "Включить систему помощи Venus"
|
||||
|
||||
#: engines/zvision/detection_tables.h:81
|
||||
msgid "Disable animation while turning"
|
||||
msgstr ""
|
||||
msgstr "Выключить анимацию во время поворотов"
|
||||
|
||||
#: engines/zvision/detection_tables.h:82
|
||||
msgid "Disable animation while turning in panorama mode"
|
||||
msgstr ""
|
||||
msgstr "Выключить анимацию во время поворотов в режиме панормаы"
|
||||
|
||||
#: engines/zvision/detection_tables.h:91
|
||||
msgid "Use high resolution MPEG video"
|
||||
msgstr ""
|
||||
msgstr "Использовать видео MPEG высокого разрешения"
|
||||
|
||||
#: engines/zvision/detection_tables.h:92
|
||||
#, fuzzy
|
||||
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
|
||||
msgstr ""
|
||||
"Использовать альтернативный набор серебряных курсоров вместо обычных золотых"
|
||||
"Использовать MPEG видео из DVD версии, вместо видео низкого разрешения в формате AVI"
|
||||
|
||||
#~ msgid "EGA undithering"
|
||||
#~ msgstr "EGA ÑÕ× àÐáâàÐ"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.8.0git\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -1017,6 +1017,10 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr ""
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
msgid "Unknown Author"
|
||||
msgstr ""
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr ""
|
||||
|
@ -1768,8 +1772,9 @@ msgstr ""
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3222,6 +3227,22 @@ msgstr ""
|
|||
msgid "Fly to lower right"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
msgid "Snap scroll on"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
msgid "Music volume: "
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
msgid "Subtitle speed: "
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
31
po/se_SE.po
31
po/se_SE.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.5.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2014-07-02 16:30+0100\n"
|
||||
"Last-Translator: Hampus Flink <hampus.flink@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
|
@ -1042,6 +1042,11 @@ msgstr ""
|
|||
msgid "Do you really want to delete this record?"
|
||||
msgstr "Vill du verkligen radera den här spardatan?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
#, fuzzy
|
||||
msgid "Unknown Author"
|
||||
msgstr "Okänt fel"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
msgstr "Visa som lista"
|
||||
|
@ -1825,8 +1830,9 @@ msgstr "Snabbl
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "Avsluta"
|
||||
|
||||
|
@ -3328,6 +3334,25 @@ msgstr "Flyg
|
|||
msgid "Fly to lower right"
|
||||
msgstr "Flyg åt nedre höger"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
#, fuzzy
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Mjuk rullning"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr ""
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
#, fuzzy
|
||||
msgid "Music volume: "
|
||||
msgstr "Musikvolym:"
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
#, fuzzy
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Texthastighet:"
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
|
255
po/uk_UA.po
255
po/uk_UA.po
|
@ -2,22 +2,21 @@
|
|||
# Copyright (C) 2010-2015 The ScummVM Team
|
||||
# This file is distributed under the same license as the ScummVM package.
|
||||
# Lubomyr Lisen, 2010.
|
||||
# Eugene Sandulenko <sev@scummvm.org>, 2010-2014
|
||||
# Eugene Sandulenko <sev@scummvm.org>, 2010-2015
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ScummVM 1.3.0svn\n"
|
||||
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
|
||||
"POT-Creation-Date: 2015-09-06 15:14+0200\n"
|
||||
"PO-Revision-Date: 2014-07-01 02:34+0300\n"
|
||||
"POT-Creation-Date: 2015-10-11 18:59+0100\n"
|
||||
"PO-Revision-Date: 2015-11-06 10:07+0300\n"
|
||||
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
"Language: Ukrainian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-5\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n"
|
||||
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
|
||||
#: gui/about.cpp:94
|
||||
#, c-format
|
||||
|
@ -75,7 +74,7 @@ msgstr "
|
|||
|
||||
#: gui/editrecorddialog.cpp:58
|
||||
msgid "Author:"
|
||||
msgstr ""
|
||||
msgstr "Автор:"
|
||||
|
||||
#: gui/editrecorddialog.cpp:59 gui/launcher.cpp:204
|
||||
msgid "Name:"
|
||||
|
@ -83,11 +82,11 @@ msgstr "
|
|||
|
||||
#: gui/editrecorddialog.cpp:60
|
||||
msgid "Notes:"
|
||||
msgstr ""
|
||||
msgstr "Примітки:"
|
||||
|
||||
#: gui/editrecorddialog.cpp:68 gui/predictivedialog.cpp:75
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
msgstr "Гаразд"
|
||||
|
||||
#: gui/gui-manager.cpp:117 backends/keymapper/remap-dialog.cpp:53
|
||||
#: engines/scumm/help.cpp:126 engines/scumm/help.cpp:141
|
||||
|
@ -529,9 +528,8 @@ msgid "Do you really want to remove this game configuration?"
|
|||
msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÔÐ󯉯 ãáâÐÝÞÒÚØ ÔÛï æöô÷ ÓàØ?"
|
||||
|
||||
#: gui/launcher.cpp:999
|
||||
#, fuzzy
|
||||
msgid "Do you want to load saved game?"
|
||||
msgstr "²Ø åÞçÕâÕ ×ÐÒÐÝâÐÖØâØ Óàã?"
|
||||
msgstr "Ви хочете завантажити збережену гру?"
|
||||
|
||||
#: gui/launcher.cpp:1048
|
||||
msgid "This game does not support loading games from the launcher."
|
||||
|
@ -547,7 +545,7 @@ msgstr "
|
|||
|
||||
#: gui/launcher.cpp:1161
|
||||
msgid "Record..."
|
||||
msgstr ""
|
||||
msgstr "Запис..."
|
||||
|
||||
#: gui/massadd.cpp:79 gui/massadd.cpp:82
|
||||
msgid "... progress ..."
|
||||
|
@ -574,21 +572,19 @@ msgstr "
|
|||
|
||||
#: gui/onscreendialog.cpp:101 gui/onscreendialog.cpp:103
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
msgstr "Стоп"
|
||||
|
||||
#: gui/onscreendialog.cpp:106
|
||||
msgid "Edit record description"
|
||||
msgstr ""
|
||||
msgstr "Редагвати опис запису"
|
||||
|
||||
#: gui/onscreendialog.cpp:108
|
||||
#, fuzzy
|
||||
msgid "Switch to Game"
|
||||
msgstr "¿ÕàÕÜÚÝãâØ"
|
||||
msgstr "Переключитися на гру"
|
||||
|
||||
#: gui/onscreendialog.cpp:110
|
||||
#, fuzzy
|
||||
msgid "Fast replay"
|
||||
msgstr "ÈÒØÔÚØÙ àÕÖØÜ"
|
||||
msgstr "Швидке відтворення"
|
||||
|
||||
#: gui/options.cpp:85
|
||||
msgid "Never"
|
||||
|
@ -987,29 +983,28 @@ msgstr ""
|
|||
#. I18N: You must leave "#" as is, only word 'next' is translatable
|
||||
#: gui/predictivedialog.cpp:87
|
||||
msgid "# next"
|
||||
msgstr ""
|
||||
msgstr "# наст"
|
||||
|
||||
#: gui/predictivedialog.cpp:88
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
msgstr "дод"
|
||||
|
||||
#: gui/predictivedialog.cpp:92
|
||||
#, fuzzy
|
||||
msgid "Delete char"
|
||||
msgstr "²ØÔÐÛØâØ"
|
||||
msgstr "Видалити сммвол"
|
||||
|
||||
#: gui/predictivedialog.cpp:96
|
||||
msgid "<"
|
||||
msgstr ""
|
||||
msgstr "<"
|
||||
|
||||
#. I18N: Pre means 'Predictive', leave '*' as is
|
||||
#: gui/predictivedialog.cpp:98
|
||||
msgid "* Pre"
|
||||
msgstr ""
|
||||
msgstr "* Pre"
|
||||
|
||||
#: gui/recorderdialog.cpp:64
|
||||
msgid "Recorder or Playback Gameplay"
|
||||
msgstr ""
|
||||
msgstr "Записувати або відтворити процес гри"
|
||||
|
||||
#: gui/recorderdialog.cpp:69 gui/recorderdialog.cpp:156
|
||||
#: gui/saveload-dialog.cpp:220 gui/saveload-dialog.cpp:276
|
||||
|
@ -1018,31 +1013,33 @@ msgstr "
|
|||
|
||||
#: gui/recorderdialog.cpp:71
|
||||
msgid "Record"
|
||||
msgstr ""
|
||||
msgstr "Записати"
|
||||
|
||||
#: gui/recorderdialog.cpp:72
|
||||
#, fuzzy
|
||||
msgid "Playback"
|
||||
msgstr "³àÐâØ"
|
||||
msgstr "Відтворити"
|
||||
|
||||
#: gui/recorderdialog.cpp:74
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Редагувати"
|
||||
|
||||
#: gui/recorderdialog.cpp:86 gui/recorderdialog.cpp:243
|
||||
#: gui/recorderdialog.cpp:253
|
||||
msgid "Author: "
|
||||
msgstr ""
|
||||
msgstr "Автор: "
|
||||
|
||||
#: gui/recorderdialog.cpp:87 gui/recorderdialog.cpp:244
|
||||
#: gui/recorderdialog.cpp:254
|
||||
msgid "Notes: "
|
||||
msgstr ""
|
||||
msgstr "Примітки: "
|
||||
|
||||
#: gui/recorderdialog.cpp:155
|
||||
#, fuzzy
|
||||
msgid "Do you really want to delete this record?"
|
||||
msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÔÐ󯉯 æÕ ×ÑÕàÕÖÕÝÝï?"
|
||||
msgstr "Ви дійсно хочете видалити цей запис?"
|
||||
|
||||
#: gui/recorderdialog.cpp:174
|
||||
msgid "Unknown Author"
|
||||
msgstr "Невідомий автор"
|
||||
|
||||
#: gui/saveload-dialog.cpp:167
|
||||
msgid "List view"
|
||||
|
@ -1502,7 +1499,7 @@ msgstr "
|
|||
|
||||
#: audio/fmopl.cpp:67
|
||||
msgid "ALSA Direct FM"
|
||||
msgstr ""
|
||||
msgstr "Беспосередній ALSA FM"
|
||||
|
||||
#: audio/mididrv.cpp:209
|
||||
#, c-format
|
||||
|
@ -1825,8 +1822,9 @@ msgstr "
|
|||
#: backends/platform/symbian/src/SymbianActions.cpp:52
|
||||
#: backends/platform/wince/CEActionsPocket.cpp:44
|
||||
#: backends/platform/wince/CEActionsSmartphone.cpp:52
|
||||
#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192
|
||||
#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85
|
||||
#: backends/events/default/default-events.cpp:218
|
||||
#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83
|
||||
#: engines/scumm/help.cpp:85
|
||||
msgid "Quit"
|
||||
msgstr "²ØåöÔ"
|
||||
|
||||
|
@ -2196,25 +2194,25 @@ msgstr ""
|
|||
"²ØÚÞàØáâÞÒãÒÐâØ ÞàØÓöÝÐÛìÝö ×ÑÕàÕÖÕÝÝï/×ÐÒÐÝâÐÖÕÝÝï ÕÚàÐÝØ, ×ÐÜöáâì ScummVM"
|
||||
|
||||
#: engines/agi/detection.cpp:157
|
||||
#, fuzzy
|
||||
msgid "Use an alternative palette"
|
||||
msgstr "²ØÚÞàØáâÞÒãÒÐâØ ÐÛìâÕàÝÐâØÒÝØÙ Òáâãß ÓàØ (âöÛìÚØ CD ÒÕàáöï)"
|
||||
msgstr "Використовувати альтернативну палітру"
|
||||
|
||||
#: engines/agi/detection.cpp:158
|
||||
msgid ""
|
||||
"Use an alternative palette, common for all Amiga games. This was the old "
|
||||
"behavior"
|
||||
msgstr ""
|
||||
"Використовувати альтернативну палітру, звичайну для ігор з Amiga. Це була стара поведінка."
|
||||
|
||||
#: engines/agi/detection.cpp:167
|
||||
#, fuzzy
|
||||
msgid "Mouse support"
|
||||
msgstr "¿öÔâàØÜãÒÐâØ ¿àÞßãáâØâØ"
|
||||
msgstr "Підтримка миші"
|
||||
|
||||
#: engines/agi/detection.cpp:168
|
||||
msgid ""
|
||||
"Enables mouse support. Allows to use mouse for movement and in game menus."
|
||||
msgstr ""
|
||||
"Включає підтримку миші. Дозволяє використовувати мишу для пересування та управління меню."
|
||||
|
||||
#: engines/agi/saveload.cpp:816 engines/drascula/saveload.cpp:349
|
||||
#: engines/dreamweb/saveload.cpp:169 engines/neverhood/menumodule.cpp:886
|
||||
|
@ -2267,13 +2265,12 @@ msgid "Cutscene file '%s' not found!"
|
|||
msgstr "ÄÐÙÛ àÞÛØÚã '%s' ÝÕ ×ÝÐÙÔÕÝÞ!"
|
||||
|
||||
#: engines/cge/detection.cpp:105 engines/cge2/detection.cpp:101
|
||||
#, fuzzy
|
||||
msgid "Color Blind Mode"
|
||||
msgstr "ÀÕÖØÜ ÚÛöÚöÒ"
|
||||
msgstr "Режим без кольору"
|
||||
|
||||
#: engines/cge/detection.cpp:106 engines/cge2/detection.cpp:102
|
||||
msgid "Enable Color Blind Mode by default"
|
||||
msgstr ""
|
||||
msgstr "Включає режим для людей з погіршенним сприяттям кольору"
|
||||
|
||||
#: engines/drascula/saveload.cpp:47
|
||||
msgid ""
|
||||
|
@ -2328,11 +2325,11 @@ msgstr "
|
|||
|
||||
#: engines/hopkins/detection.cpp:76 engines/hopkins/detection.cpp:86
|
||||
msgid "Gore Mode"
|
||||
msgstr ""
|
||||
msgstr "Режим з кров'ю"
|
||||
|
||||
#: engines/hopkins/detection.cpp:77 engines/hopkins/detection.cpp:87
|
||||
msgid "Enable Gore Mode when available"
|
||||
msgstr ""
|
||||
msgstr "Увімкнути режим з кров'ю, якщо є доступний"
|
||||
|
||||
#. I18N: Studio audience adds an applause and cheering sounds whenever
|
||||
#. Malcolm makes a joke.
|
||||
|
@ -2464,6 +2461,12 @@ msgid ""
|
|||
"Do you wish to use this save game file with ScummVM?\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Наступний оригінальний файл стану гри було знайдено у вашій папці з грою:\n"
|
||||
"\n"
|
||||
"%s %s\n"
|
||||
"\n"
|
||||
"Чи ви бажаєте використовувати цей стан гри зі ScummVM?\n"
|
||||
"\n"
|
||||
|
||||
#: engines/kyra/saveload_eob.cpp:590
|
||||
#, c-format
|
||||
|
@ -2471,6 +2474,8 @@ msgid ""
|
|||
"A save game file was found in the specified slot %d. Overwrite?\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Файл стану гри було знайдено у вказаній позиції %d. Перетерти?\n"
|
||||
"\n"
|
||||
|
||||
#: engines/kyra/saveload_eob.cpp:623
|
||||
#, c-format
|
||||
|
@ -2482,6 +2487,10 @@ msgid ""
|
|||
"'import_savefile'.\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"%d оригінальних файлів зі станом гри було успішно імпортовано у\n"
|
||||
"ScummVM. Якщо ви захочете пізніше імпортувати оригінальні файли зі станом гри, вам потрібно\n"
|
||||
"відкрити консоль відладчика і ввести команду 'import_savefile'.\n"
|
||||
"\n"
|
||||
|
||||
#. I18N: Option for fast scene switching
|
||||
#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167
|
||||
|
@ -2697,15 +2706,13 @@ msgstr "
|
|||
#. "Moechten Sie wirklich neu starten? (J/N)J"
|
||||
#. Will react to J as 'Yes'
|
||||
#: engines/scumm/dialogs.cpp:183
|
||||
#, fuzzy
|
||||
msgid "Are you sure you want to restart? (Y/N)Y"
|
||||
msgstr "²Ø ãßÕÒÝÕÝö, éÞ åÞçÕâÕ àÞ×ßÞçÐâØ áßÞçÐâÚã? (Y/N)"
|
||||
msgstr "Ви упевнені, що хочете розпочати спочатку? (Y/N)Y"
|
||||
|
||||
#. I18N: you may specify 'Yes' symbol at the end of the line. See previous comment
|
||||
#: engines/scumm/dialogs.cpp:185
|
||||
#, fuzzy
|
||||
msgid "Are you sure you want to quit? (Y/N)Y"
|
||||
msgstr "²Ø ãßÕÒÝÕÝö, éÞ åÞçÕâÕ ÒØÙâØ? (Y/N)"
|
||||
msgstr "Ви упевнені, що хочете вийти? (Y/N)Y"
|
||||
|
||||
#: engines/scumm/dialogs.cpp:190
|
||||
msgid "Play"
|
||||
|
@ -3213,25 +3220,24 @@ msgid "Third kid"
|
|||
msgstr "ÂàÕâï ÔØâØÝÐ"
|
||||
|
||||
#: engines/scumm/help.cpp:292
|
||||
#, fuzzy
|
||||
msgid "Toggle Inventory/IQ Points display"
|
||||
msgstr "¿ÕàÕÜÚÝãâØ ßÞÚÐ×ãÒÐÝÝï Ò æÕÝâàö ÕÚàÐÝã"
|
||||
msgstr "Перемкнути показування інвентарю або значення IQ"
|
||||
|
||||
#: engines/scumm/help.cpp:293
|
||||
msgid "Toggle Keyboard/Mouse Fighting (*)"
|
||||
msgstr ""
|
||||
msgstr "Перемкнути керування бійкою Клавіатура/Миша (*)"
|
||||
|
||||
#: engines/scumm/help.cpp:295
|
||||
msgid "* Keyboard Fighting is always on,"
|
||||
msgstr ""
|
||||
msgstr "* Управління клавіатурою завжди влючене, тому, "
|
||||
|
||||
#: engines/scumm/help.cpp:296
|
||||
msgid " so despite the in-game message this"
|
||||
msgstr ""
|
||||
msgstr " незважаючи на повідомлення гри, це налаштування"
|
||||
|
||||
#: engines/scumm/help.cpp:297
|
||||
msgid " actually toggles Mouse Fighting Off/On"
|
||||
msgstr ""
|
||||
msgstr " насправді включає та виключає управління мишею."
|
||||
|
||||
#: engines/scumm/help.cpp:304
|
||||
msgid "Fighting controls (numpad):"
|
||||
|
@ -3268,7 +3274,7 @@ msgstr "
|
|||
|
||||
#: engines/scumm/help.cpp:315
|
||||
msgid "Sucker punch"
|
||||
msgstr ""
|
||||
msgstr "Бити ззаду"
|
||||
|
||||
#: engines/scumm/help.cpp:318
|
||||
msgid "These are for Indy on left."
|
||||
|
@ -3326,6 +3332,22 @@ msgstr "
|
|||
msgid "Fly to lower right"
|
||||
msgstr "»ÕâöâØ ÔÞÝØ×ã ÝÐßàÐÒÞ"
|
||||
|
||||
#: engines/scumm/input.cpp:572
|
||||
msgid "Snap scroll on"
|
||||
msgstr "Прокрутка стрибками"
|
||||
|
||||
#: engines/scumm/input.cpp:574
|
||||
msgid "Snap scroll off"
|
||||
msgstr "Вмикає прокрутку стрибками"
|
||||
|
||||
#: engines/scumm/input.cpp:587
|
||||
msgid "Music volume: "
|
||||
msgstr "Гучність музики: "
|
||||
|
||||
#: engines/scumm/input.cpp:604
|
||||
msgid "Subtitle speed: "
|
||||
msgstr "Швид. субтитрів: "
|
||||
|
||||
#: engines/scumm/scumm.cpp:1832
|
||||
#, c-format
|
||||
msgid ""
|
||||
|
@ -3336,27 +3358,30 @@ msgstr ""
|
|||
"LucasArts, ßàÞâÕ %s ÒöÔáãâÝöÙ. ¿ÕàÕÜØÚÐîáì ÝÐ AdLib."
|
||||
|
||||
#: engines/scumm/scumm.cpp:2644
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Usually, Maniac Mansion would start now. But for that to work, the game "
|
||||
"files for Maniac Mansion have to be in the 'Maniac' directory inside the "
|
||||
"Tentacle game directory, and the game has to be added to ScummVM."
|
||||
msgstr ""
|
||||
"·Ð×ÒØçÐÙ, ×ÐàÐ× ÑØ ×ÐßãáâØÒáï Maniac Mansion. ¿àÞâÕ ScummVM éÕ æìÞÓÞ ÝÕ "
|
||||
"ÒÜöô. ÉÞÑ ÓàÐâØ ã ÝìÞÓÞ, ÞÑÕàöâì '´ÞÔÐâØ Óàã' ã ßÞçÐâÚÞÒÞÜã ÜÕÝî ScummVM, ö "
|
||||
"ÒØÑÕàöâì ßÐßÚã Maniac ÒáÕàÕÔÕÝö ßÒßÚØ × ÓàÞî Tentacle."
|
||||
"Зазвичай, зараз би запустився Maniac Mansion. Але, щоб це могло працювати, "
|
||||
"вам потрібно переписати файли гри Maniac Manssion у папку Maniac всередині "
|
||||
"пвпки з грою Tentacle, а також додати саму гру у ScummVM."
|
||||
|
||||
#: engines/scumm/players/player_v3m.cpp:129
|
||||
msgid ""
|
||||
"Could not find the 'Loom' Macintosh executable to read the\n"
|
||||
"instruments from. Music will be disabled."
|
||||
msgstr ""
|
||||
"Не вадлося знайти файл програми 'Loom' Macintosh аби прочитати\n"
|
||||
"з нього інструменти. Музику було вимкнено."
|
||||
|
||||
#: engines/scumm/players/player_v5m.cpp:107
|
||||
msgid ""
|
||||
"Could not find the 'Monkey Island' Macintosh executable to read the\n"
|
||||
"instruments from. Music will be disabled."
|
||||
msgstr ""
|
||||
"Не вадлося знайти файл програми 'Monkey Island' Macintosh аби прочитати\n"
|
||||
"з нього інструменти. Музику було вимкнено."
|
||||
|
||||
#: engines/sky/compact.cpp:130
|
||||
msgid ""
|
||||
|
@ -3470,136 +3495,46 @@ msgstr ""
|
|||
|
||||
#: engines/wintermute/detection.cpp:58
|
||||
msgid "Show FPS-counter"
|
||||
msgstr ""
|
||||
msgstr "Показати лічильник кадріи"
|
||||
|
||||
#: engines/wintermute/detection.cpp:59
|
||||
msgid "Show the current number of frames per second in the upper left corner"
|
||||
msgstr ""
|
||||
msgstr "Показує у верньому лівому куті поточну кількість кадрів на секунду"
|
||||
|
||||
#: engines/zvision/detection_tables.h:52
|
||||
#, fuzzy
|
||||
msgid "Use the original save/load screens instead of the ScummVM interface"
|
||||
msgstr ""
|
||||
"²ØÚÞàØáâÞÒãÒÐâØ ÞàØÓöÝÐÛìÝö ×ÑÕàÕÖÕÝÝï/×ÐÒÐÝâÐÖÕÝÝï ÕÚàÐÝØ, ×ÐÜöáâì ScummVM"
|
||||
"Використовувати оригінальні екрани збереження/завантаження замість ScummVM"
|
||||
|
||||
#: engines/zvision/detection_tables.h:61
|
||||
msgid "Double FPS"
|
||||
msgstr ""
|
||||
msgstr "Подвійна FPS"
|
||||
|
||||
#: engines/zvision/detection_tables.h:62
|
||||
msgid "Increase framerate from 30 to 60 FPS"
|
||||
msgstr ""
|
||||
msgstr "Підвищити кількість кадрів на секунду з 30 до 60"
|
||||
|
||||
#: engines/zvision/detection_tables.h:71
|
||||
#, fuzzy
|
||||
msgid "Enable Venus"
|
||||
msgstr "ÃÒöÜÚÝãâØ àÕÖØÜ ³ÕÛöãÜ"
|
||||
msgstr "Увімкнути Venus"
|
||||
|
||||
#: engines/zvision/detection_tables.h:72
|
||||
#, fuzzy
|
||||
msgid "Enable the Venus help system"
|
||||
msgstr "ÃÒöÜÚÝãâØ àÕÖØÜ ³ÕÛöãÜ"
|
||||
msgstr "Увімкнути допоміжну систему Venus"
|
||||
|
||||
#: engines/zvision/detection_tables.h:81
|
||||
msgid "Disable animation while turning"
|
||||
msgstr ""
|
||||
msgstr "Виключити анімацію під час поворотів"
|
||||
|
||||
#: engines/zvision/detection_tables.h:82
|
||||
msgid "Disable animation while turning in panorama mode"
|
||||
msgstr ""
|
||||
msgstr "Виключає анімацію під ча поворотів у режимі панорами"
|
||||
|
||||
#: engines/zvision/detection_tables.h:91
|
||||
msgid "Use high resolution MPEG video"
|
||||
msgstr ""
|
||||
msgstr "Використовувати відео MPEG з підвищеною роздільністю"
|
||||
|
||||
#: engines/zvision/detection_tables.h:92
|
||||
#, fuzzy
|
||||
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
|
||||
msgstr ""
|
||||
"²ØÚÞàØáâÞÒãÒÐâØ ÐÛìâÕàÝÐâØÒÝØÙ ÝÐÑöà áàöÑÝØå ÚãàáÞàöÒ, ×ÐÜöáâì ×ÒØçÐÙÝØå "
|
||||
"×ÞÛÞâØå"
|
||||
|
||||
#~ msgid "EGA undithering"
|
||||
#~ msgstr "EGA ÑÕ× àÐáâàãÒÐÝÝï"
|
||||
|
||||
#~ msgid "Enable undithering in EGA games"
|
||||
#~ msgstr "ÃÒöÜÚÝãâØ ÐÝâØ-×ÓÛÐÔÖãÒÐÝÝï Ò EGA öÓàÐå"
|
||||
|
||||
#~ msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
|
||||
#~ msgstr ""
|
||||
#~ "·ÝÐÙÔÕÝö àÞÛØÚØ MPEG-2, ÐÛÕ ScummVM ÑãÒ ×öÑàÐÝØÙ ÑÕ× ßöÔâàØÜÚØ MPEG-2"
|
||||
|
||||
#~ msgctxt "lowres"
|
||||
#~ msgid "Mass Add..."
|
||||
#~ msgstr "´ÞÔ. ÑÐÓÐâÞ..."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
|
||||
#~ msgstr ""
|
||||
#~ "²ØÜØÚÐô ÜÐßöÝÓ General MIDI ÔÛï öÓÞà ×ö ×ÒãÚÞÒÞî ÔÞàöÖÚÞî ÔÛï Roland MT-32"
|
||||
|
||||
#~ msgid "Standard (16bpp)"
|
||||
#~ msgstr "ÁâÐÝÔÐàâÝØÙ àÐáâÕàØ×ÐâÞà (16bpp)"
|
||||
|
||||
#~ msgid "MPEG2 cutscenes are no longer supported"
|
||||
#~ msgstr "ÀÞÛØÚØ MPEG2 ÑöÛìèÕ ÝÕ ßöÔâàØÜãîâìáï"
|
||||
|
||||
#~ msgid "OpenGL Normal"
|
||||
#~ msgstr "OpenGL ÝÞàÜÐÛìÝØÙ"
|
||||
|
||||
#~ msgid "OpenGL Conserve"
|
||||
#~ msgstr "OpenGL ·ÑÕàÕÖÕÝØÙ"
|
||||
|
||||
#~ msgid "OpenGL Original"
|
||||
#~ msgstr "OpenGL ¾àØÓöÝÐÛìÝØÙ"
|
||||
|
||||
#~ msgid "Current display mode"
|
||||
#~ msgstr "¿ÞâÞçÝØÙ ÒöÔÕÞàÕÖØÜ"
|
||||
|
||||
#~ msgid "Current scale"
|
||||
#~ msgstr "¿ÞâÞçÝØÙ ÜÐáèâÐÑ"
|
||||
|
||||
#~ msgid "Active filter mode: Linear"
|
||||
#~ msgstr "°ÚâØÒÝØÙ àÕÖØÜ äöÛìâàÐæö÷: »öÝöÙÝØÙ"
|
||||
|
||||
#~ msgid "Active filter mode: Nearest"
|
||||
#~ msgstr "°ÚâØÒÝØÙ àÕÖØÜ äöÛìâàÐæö÷: ½ÐÙÑÛØÖçÕ"
|
||||
|
||||
#~ msgid "Enable Roland GS Mode"
|
||||
#~ msgstr "ÃÒöÜÚÝãâØ àÕÖØÜ Roland GS"
|
||||
|
||||
#~ msgid "Hercules Green"
|
||||
#~ msgstr "Hercules ·ÕÛÕÝØÙ"
|
||||
|
||||
#~ msgid "Hercules Amber"
|
||||
#~ msgstr "Hercules ±ãàèâØÝÝØÙ"
|
||||
|
||||
#~ msgctxt "lowres"
|
||||
#~ msgid "Hercules Green"
|
||||
#~ msgstr "Hercules ·ÕÛÕÝØÙ"
|
||||
|
||||
#~ msgctxt "lowres"
|
||||
#~ msgid "Hercules Amber"
|
||||
#~ msgstr "Hercules ±ãàèâØÝÝØÙ"
|
||||
|
||||
#~ msgid "Save game failed!"
|
||||
#~ msgstr "½Õ ÒÔÐÛÞáï ×ÑÕàÕÓâØ Óàã!"
|
||||
|
||||
#~ msgctxt "lowres"
|
||||
#~ msgid "Add Game..."
|
||||
#~ msgstr "´ÞÔÐâØ Óàã..."
|
||||
|
||||
#~ msgid "Add Game..."
|
||||
#~ msgstr "´ÞÔÐâØ Óàã..."
|
||||
|
||||
#~ msgid "Discovered %d new games."
|
||||
#~ msgstr "·ÝÐÙÔÕÝÞ %d ÝÞÒØå öÓÞà."
|
||||
|
||||
#~ msgid "Command line argument not processed"
|
||||
#~ msgstr "°àÓãÜÕÝâØ ÚÞÜÐÝÔÝÞÓÞ àïÔÚã ÝÕ ÞÑàÞÑÛÕÝö"
|
||||
|
||||
#~ msgid "FM Towns Emulator"
|
||||
#~ msgstr "µÜãÛïâÞà FM Towns"
|
||||
|
||||
#~ msgid "Invalid Path"
|
||||
#~ msgstr "½ÕßàÐÒØÛìÝØÙ èÛïå"
|
||||
"Використовувати відео MPEG з DVD-версії, замість файлів AVI з ніжчою роздільною здатністю"
|
||||
|
|
6
ports.mk
6
ports.mk
|
@ -115,12 +115,6 @@ endif
|
|||
cp $(srcdir)/dists/iphone/icon.png $(bundle_name)/
|
||||
cp $(srcdir)/dists/iphone/icon-72.png $(bundle_name)/
|
||||
cp $(srcdir)/dists/iphone/Default.png $(bundle_name)/
|
||||
# Binary patch workaround for Iphone 5/IPad 4 "Illegal instruction: 4" toolchain issue (http://code.google.com/p/iphone-gcc-full/issues/detail?id=6)
|
||||
cp residualvm residualvm-iph5
|
||||
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' residualvm-iph5
|
||||
ldid -S residualvm-iph5
|
||||
chmod 755 residualvm-iph5
|
||||
cp residualvm-iph5 $(bundle_name)/ResidualVM-iph5
|
||||
|
||||
# Location of static libs for the iPhone
|
||||
ifneq ($(BACKEND), iphone)
|
||||
|
|
|
@ -46,11 +46,29 @@ public:
|
|||
}
|
||||
|
||||
void test_pod_sort() {
|
||||
{
|
||||
int dummy;
|
||||
Common::sort(&dummy, &dummy);
|
||||
TS_ASSERT_EQUALS(checkSort(&dummy, &dummy, Common::Less<int>()), true);
|
||||
}
|
||||
{
|
||||
int array[] = { 12 };
|
||||
Common::sort(array, ARRAYEND(array));
|
||||
TS_ASSERT_EQUALS(checkSort(array, ARRAYEND(array), Common::Less<int>()), true);
|
||||
|
||||
// already sorted
|
||||
Common::sort(array, ARRAYEND(array));
|
||||
TS_ASSERT_EQUALS(checkSort(array, ARRAYEND(array), Common::Less<int>()), true);
|
||||
}
|
||||
{
|
||||
int array[] = { 63, 11, 31, 72, 1, 48, 32, 69, 38, 31 };
|
||||
Common::sort(array, ARRAYEND(array));
|
||||
TS_ASSERT_EQUALS(checkSort(array, ARRAYEND(array), Common::Less<int>()), true);
|
||||
|
||||
int sortedArray[] = { 1, 11, 31, 31, 32, 38, 48, 63, 69, 72 };
|
||||
for (size_t i = 0; i < 10; ++i)
|
||||
TS_ASSERT_EQUALS(array[i], sortedArray[i]);
|
||||
|
||||
// already sorted
|
||||
Common::sort(array, ARRAYEND(array));
|
||||
TS_ASSERT_EQUALS(checkSort(array, ARRAYEND(array), Common::Less<int>()), true);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue