mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-20 01:24:18 +00:00
Merge branch 'master' of git://github.com/teeworlds/teeworlds into DDRace
Conflicts: bam.lua scripts/build.py scripts/make_release.py src/engine/server.h src/game/client/gameclient.cpp src/game/server/gamecontext.cpp src/game/server/gamecontext.h src/game/server/gamecontroller.cpp src/game/server/gamecontroller.h src/game/server/player.cpp src/game/version.h
This commit is contained in:
commit
cd4ba53bae
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -18,7 +18,7 @@ mastersrv*
|
|||
packetgen*
|
||||
teeworlds*
|
||||
teeworlds_srv*
|
||||
tileset_borderfix*
|
||||
tileset_border*
|
||||
versionsrv*
|
||||
|
||||
Debug
|
||||
|
|
5
bam.lua
5
bam.lua
|
@ -153,7 +153,10 @@ function build(settings, attributes)
|
|||
if attributes.target == "buildbot" then
|
||||
settings.link.flags:Add("-static-libstdc++")
|
||||
end
|
||||
if platform == "macosx" then
|
||||
if family == "windows" then
|
||||
-- disable visibility attribute support for gcc on windows
|
||||
settings.cc.defines:Add("NO_VIZ")
|
||||
elseif platform == "macosx" then
|
||||
settings.cc.flags:Add("-mmacosx-version-min=10.5")
|
||||
settings.link.flags:Add("-mmacosx-version-min=10.5")
|
||||
elseif config.stackprotector.value == 1 then
|
||||
|
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d байт
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d з %d сервераў, %d гульцоў
|
||||
|
||||
%d%% loaded
|
||||
== %d%% загружана
|
||||
|
||||
%ds left
|
||||
== засталося %d сек.
|
||||
|
||||
%i minute left
|
||||
== Засталася %i хвіліна!
|
||||
|
||||
%i minutes left
|
||||
== Засталося %i хвілін!
|
||||
|
||||
%i second left
|
||||
== Засталася %i секунда!
|
||||
|
||||
%i seconds left
|
||||
== Засталося %i секунд!
|
||||
|
||||
%s wins!
|
||||
== %s перамог!
|
||||
|
||||
-Page %d-
|
||||
== -Старонка %d-
|
||||
|
||||
Abort
|
||||
== Адмена
|
||||
|
||||
Add
|
||||
== Дадаць
|
||||
|
||||
Add Friend
|
||||
== Дадаць сябра
|
||||
|
||||
Address
|
||||
== Адрас
|
||||
|
||||
All
|
||||
== Усё
|
||||
|
||||
Alpha
|
||||
== Празрыст.
|
||||
|
||||
Always show name plates
|
||||
== Заўсёды паказваць нікі гульцоў
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Вы ўпэўнены, што жадаеце выдаліць дэма?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Вы сапраўды жадаеце выйсці?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Вы ўпэўнены, што жадаеце выдаліць гульца з сяброў?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Бо гэта ваш першы запуск гульні, калі ласка, увядзіце свой нік у поле ніжэй. Таксама рекоммендуется праверыць налады гульні і памяняць некаторыя з іх перад тым, як пачаць гуляць.
|
||||
|
||||
Automatically record demos
|
||||
== Аўтаматычна запісваць дэма
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Рабіць здымак вынікаў гульні
|
||||
|
||||
Blue team
|
||||
== Сінія
|
||||
|
||||
Blue team wins!
|
||||
== Сінія перамаглі!
|
||||
|
||||
Body
|
||||
== Цела
|
||||
|
||||
Call vote
|
||||
== Галасаваць
|
||||
|
||||
Change settings
|
||||
== Змяніць налады
|
||||
|
||||
Chat
|
||||
== Чат
|
||||
|
||||
Clan
|
||||
== Клан
|
||||
|
||||
Client
|
||||
== Кліент
|
||||
|
||||
Close
|
||||
== Выйсці
|
||||
|
||||
Compatible version
|
||||
== Сумяшчальная версія
|
||||
|
||||
Connect
|
||||
== Падлучыцца
|
||||
|
||||
Connecting to
|
||||
== Падлучэнне да
|
||||
|
||||
Connection Problems...
|
||||
== Праблемы з сувяззю...
|
||||
|
||||
Console
|
||||
== Кансоль
|
||||
|
||||
Controls
|
||||
== Кіраванне
|
||||
|
||||
Count players only
|
||||
== Лічыць толькі гульцоў
|
||||
|
||||
Country
|
||||
== Сцяг вашай краіны
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Створаны:
|
||||
|
||||
Current
|
||||
== Бягучы
|
||||
|
||||
Current version: %s
|
||||
== Бягучая версія: %s
|
||||
|
||||
Custom colors
|
||||
== Свае колеры
|
||||
|
||||
Delete
|
||||
== Выдаліць
|
||||
|
||||
Delete demo
|
||||
== Выдаліць дэма
|
||||
|
||||
Demo details
|
||||
== Дэталі дэма
|
||||
|
||||
Demofile: %s
|
||||
== Дэма: %s
|
||||
|
||||
Demos
|
||||
== Дэма
|
||||
|
||||
Disconnect
|
||||
== Адключыць
|
||||
|
||||
Disconnected
|
||||
== Адключана
|
||||
|
||||
Display Modes
|
||||
== Дазвол экрана
|
||||
|
||||
Downloading map
|
||||
== Спампоўка карты
|
||||
|
||||
Draw!
|
||||
== Нічыя!
|
||||
|
||||
Dynamic Camera
|
||||
== Дынамічная камера
|
||||
|
||||
Emoticon
|
||||
== Эмоцыі
|
||||
|
||||
Enter
|
||||
== Уваход
|
||||
|
||||
Error
|
||||
== Памылка
|
||||
|
||||
Error loading demo
|
||||
== памылка пры загрузцы дэма
|
||||
|
||||
FSAA samples
|
||||
== Сэмплаў FSAA
|
||||
|
||||
Favorite
|
||||
== Абраны
|
||||
|
||||
Favorites
|
||||
== Абраныя
|
||||
|
||||
Feet
|
||||
== Ногі
|
||||
|
||||
Filter
|
||||
== Фільтр
|
||||
|
||||
Fire
|
||||
== Стрэл
|
||||
|
||||
Folder
|
||||
== Тэчка
|
||||
|
||||
Force vote
|
||||
== Фарсіраваць
|
||||
|
||||
Free-View
|
||||
== Вольны агляд
|
||||
|
||||
Friends
|
||||
== Сябры
|
||||
|
||||
Fullscreen
|
||||
== Поўнаэкранны рэжым
|
||||
|
||||
Game
|
||||
== Гульня
|
||||
|
||||
Game info
|
||||
== Інфа пра гульню
|
||||
|
||||
Game over
|
||||
== Гульня скончана
|
||||
|
||||
Game type
|
||||
== Тып гульні
|
||||
|
||||
Game types:
|
||||
== Тып гульні:
|
||||
|
||||
General
|
||||
== Асноўныя
|
||||
|
||||
Graphics
|
||||
== Графіка
|
||||
|
||||
Grenade
|
||||
== Гранатамёт
|
||||
|
||||
Hammer
|
||||
== Молат
|
||||
|
||||
Has people playing
|
||||
== Не пусты сервер
|
||||
|
||||
High Detail
|
||||
== Высокая дэталізацыя
|
||||
|
||||
Hook
|
||||
== Крук
|
||||
|
||||
Host address
|
||||
== Адрас сервера
|
||||
|
||||
Hue
|
||||
== Адценне
|
||||
|
||||
Info
|
||||
== Інфа
|
||||
|
||||
Internet
|
||||
== Інтэрнэт
|
||||
|
||||
Invalid Demo
|
||||
== Недапушчальнае дэма
|
||||
|
||||
Join blue
|
||||
== За сініх
|
||||
|
||||
Join game
|
||||
== Гуляць
|
||||
|
||||
Join red
|
||||
== За чырвоных
|
||||
|
||||
Jump
|
||||
== Скачок
|
||||
|
||||
Kick player
|
||||
== Забаніць гульца
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Мова
|
||||
|
||||
Length:
|
||||
== Даўжыня
|
||||
|
||||
Lht.
|
||||
== Яркасць
|
||||
|
||||
Loading
|
||||
== Загрузка
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Карта
|
||||
|
||||
Map:
|
||||
== Карта:
|
||||
|
||||
Max Screenshots
|
||||
== Максімальная колькасць здымкаў
|
||||
|
||||
Max demos
|
||||
== Максімальная колькасць дэма
|
||||
|
||||
Maximum ping:
|
||||
== Макс. пінг:
|
||||
|
||||
Miscellaneous
|
||||
== Дадаткова
|
||||
|
||||
Mouse sens.
|
||||
== Адчув. мышы
|
||||
|
||||
Move left
|
||||
== Крок налева
|
||||
|
||||
Move player to spectators
|
||||
== Зрабіць назіральнікам
|
||||
|
||||
Move right
|
||||
== Крок направа
|
||||
|
||||
Movement
|
||||
== Перасоўванне
|
||||
|
||||
Mute when not active
|
||||
== Глушыць гукі, калі гульня неактыўная
|
||||
|
||||
Name
|
||||
== Імя
|
||||
|
||||
Name plates size
|
||||
== Памер
|
||||
|
||||
Netversion:
|
||||
== Версія:
|
||||
|
||||
New name:
|
||||
== Новае імя
|
||||
|
||||
News
|
||||
== Навіны
|
||||
|
||||
Next weapon
|
||||
== След. зброя
|
||||
|
||||
Nickname
|
||||
== Нік
|
||||
|
||||
No
|
||||
== Не
|
||||
|
||||
No password
|
||||
== Без пароля
|
||||
|
||||
No servers found
|
||||
== Сервера не знойдзены
|
||||
|
||||
No servers match your filter criteria
|
||||
== Няма сервераў, падыходных пад ваш фільтр
|
||||
|
||||
Ok
|
||||
== ОК
|
||||
|
||||
Open
|
||||
== Адкрыць
|
||||
|
||||
Parent Folder
|
||||
== Бацькоўскі каталог
|
||||
|
||||
Password
|
||||
== Пароль
|
||||
|
||||
Password incorrect
|
||||
== Пароль
|
||||
|
||||
Ping
|
||||
== Пінг
|
||||
|
||||
Pistol
|
||||
== Пісталет
|
||||
|
||||
Play
|
||||
== Прагляд
|
||||
|
||||
Play background music
|
||||
== Гуляць фонавую музыку
|
||||
|
||||
Player
|
||||
== Гулец
|
||||
|
||||
Player country:
|
||||
== Краіна:
|
||||
|
||||
Player options
|
||||
== Опцыі гульца
|
||||
|
||||
Players
|
||||
== Гульцы
|
||||
|
||||
Please balance teams!
|
||||
== Збалансуйце каманды!
|
||||
|
||||
Prev. weapon
|
||||
== Прад. зброя
|
||||
|
||||
Quality Textures
|
||||
== Якасныя тэкстуры
|
||||
|
||||
Quick search:
|
||||
== Хуткі пошук:
|
||||
|
||||
Quit
|
||||
== Выйсце
|
||||
|
||||
Quit anyway?
|
||||
== Выйсці?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Чыннік:
|
||||
|
||||
Record demo
|
||||
== Запісаць дэма
|
||||
|
||||
Red team
|
||||
== Чырвоныя
|
||||
|
||||
Red team wins!
|
||||
== Чырвоныя перамаглі!
|
||||
|
||||
Refresh
|
||||
== Абнавіць
|
||||
|
||||
Refreshing master servers
|
||||
== Абнаўленне спісу майстар-сервераў
|
||||
|
||||
Remote console
|
||||
== Кансоль сервера
|
||||
|
||||
Remove
|
||||
== Выдаліць
|
||||
|
||||
Remove friend
|
||||
== Выдаліць сябра
|
||||
|
||||
Rename
|
||||
== Пераназв.
|
||||
|
||||
Rename demo
|
||||
== Пераназваць дэма
|
||||
|
||||
Reset filter
|
||||
== Скінуць фільтры
|
||||
|
||||
Reset to defaults
|
||||
== Скінуць налады
|
||||
|
||||
Rifle
|
||||
== Бласцер
|
||||
|
||||
Round
|
||||
== Раўнд
|
||||
|
||||
Sample rate
|
||||
== Чашчыня
|
||||
|
||||
Sat.
|
||||
== Кантраст
|
||||
|
||||
Score
|
||||
== Ачкі
|
||||
|
||||
Score board
|
||||
== Табло
|
||||
|
||||
Score limit
|
||||
== Ліміт ачкоў
|
||||
|
||||
Scoreboard
|
||||
== Табло
|
||||
|
||||
Screenshot
|
||||
== Здымак
|
||||
|
||||
Server address:
|
||||
== Адрас сервера
|
||||
|
||||
Server details
|
||||
== Дэталі сервера
|
||||
|
||||
Server filter
|
||||
== Фільтр сервераў
|
||||
|
||||
Server info
|
||||
== Інфармацыя
|
||||
|
||||
Server not full
|
||||
== Сервер не запоўнены
|
||||
|
||||
Settings
|
||||
== Налады
|
||||
|
||||
Shotgun
|
||||
== Драбавік
|
||||
|
||||
Show chat
|
||||
== Паказаць чат
|
||||
|
||||
Show friends only
|
||||
== Толькі з сябрамі
|
||||
|
||||
Show ingame HUD
|
||||
== Паказваць нутрагульнявы HUD
|
||||
|
||||
Show name plates
|
||||
== Паказваць нікі гульцоў
|
||||
|
||||
Show only supported
|
||||
== Паказваць толькі падтрымоўваныя дазволы экрана
|
||||
|
||||
Size:
|
||||
== Памер:
|
||||
|
||||
Skins
|
||||
== Скіны
|
||||
|
||||
Sound
|
||||
== Гук
|
||||
|
||||
Sound error
|
||||
== Гукавая памылка
|
||||
|
||||
Sound volume
|
||||
== Гучнасць
|
||||
|
||||
Spectate
|
||||
== Назіраць
|
||||
|
||||
Spectate next
|
||||
== Назіраць наст.
|
||||
|
||||
Spectate previous
|
||||
== Назіраць папяр.
|
||||
|
||||
Spectator mode
|
||||
== Назіральнік
|
||||
|
||||
Spectators
|
||||
== Назіральнікі
|
||||
|
||||
Standard gametype
|
||||
== Стандартны тып гульні
|
||||
|
||||
Standard map
|
||||
== Стандартная карта
|
||||
|
||||
Stop record
|
||||
== Стоп
|
||||
|
||||
Strict gametype filter
|
||||
== Строгі фільтр рэжым.
|
||||
|
||||
Sudden Death
|
||||
== Хуткая смерць
|
||||
|
||||
Switch weapon on pickup
|
||||
== Перамыкаць зброю пры падборы
|
||||
|
||||
Team
|
||||
== Каманда
|
||||
|
||||
Team chat
|
||||
== Камандны чат
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Выйшла Teeworlds %s! Спампоўвайце на www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Сціск тэкстур
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Аўдыё прылада не можа быць ініцыялізавана
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Сервер запушчаны з нестандартнымі наладамі на стандартным тыпе гульні.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Ёсць незахаваная карта ў рэдактары, Вы можаце захаваць яе перад тым, як выйсці.
|
||||
|
||||
Time limit
|
||||
== Ліміт часу
|
||||
|
||||
Time limit: %d min
|
||||
== Ліміт часу: %d
|
||||
|
||||
Try again
|
||||
== ОК
|
||||
|
||||
Type
|
||||
== Тып
|
||||
|
||||
Type:
|
||||
== Тып:
|
||||
|
||||
UI Color
|
||||
== Колер інтэрфейсу
|
||||
|
||||
Unable to delete the demo
|
||||
== Немагчыма выдаліць дэма
|
||||
|
||||
Unable to rename the demo
|
||||
== Немагчыма пераназваць дэма
|
||||
|
||||
Use sounds
|
||||
== Выкарыстоўваць гукі
|
||||
|
||||
Use team colors for name plates
|
||||
== Камандныя колеры для нікаў гульцоў
|
||||
|
||||
V-Sync
|
||||
== Вертыкальная сінхранізацыя
|
||||
|
||||
Version
|
||||
== Версія
|
||||
|
||||
Version:
|
||||
== Версія:
|
||||
|
||||
Vote command:
|
||||
== Камманда галасавання:
|
||||
|
||||
Vote description:
|
||||
== Апісанне галасавання:
|
||||
|
||||
Vote no
|
||||
== Супраць
|
||||
|
||||
Vote yes
|
||||
== За
|
||||
|
||||
Voting
|
||||
== Галасаванне
|
||||
|
||||
Warmup
|
||||
== Размінка
|
||||
|
||||
Weapon
|
||||
== Зброя
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Сардэчна запрашаем у Teeworlds!
|
||||
|
||||
Yes
|
||||
== Так
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Перазапусціце гульню для ўжывання змен.
|
||||
|
||||
Your skin
|
||||
== Ваш скін
|
||||
|
||||
no limit
|
||||
== Без ліміту
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d bytes
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d od %d server(a), %d igrač(a)
|
||||
|
||||
%d%% loaded
|
||||
== Učitano %d%%
|
||||
|
||||
%ds left
|
||||
== Još %ds
|
||||
|
||||
%i minute left
|
||||
== Preostalo: %i min.
|
||||
|
||||
%i minutes left
|
||||
== Preostalo: %i min.
|
||||
|
||||
%i second left
|
||||
== Preostalo: %i sek.
|
||||
|
||||
%i seconds left
|
||||
== Preostalo: %i sek.
|
||||
|
||||
%s wins!
|
||||
== %s je pobijedio!
|
||||
|
||||
-Page %d-
|
||||
== -Strana %d-
|
||||
|
||||
Abort
|
||||
== Prekini
|
||||
|
||||
Add
|
||||
== Dodaj
|
||||
|
||||
Add Friend
|
||||
== Dodaj prijatelja
|
||||
|
||||
Address
|
||||
== Adresa
|
||||
|
||||
All
|
||||
== Svi
|
||||
|
||||
Alpha
|
||||
== Provid.
|
||||
|
||||
Always show name plates
|
||||
== Uvijek prikaži imena igrača
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Jeste li sigurni da želite obrisati demo-snimak?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Jeste li sigurni da želite izići?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Da li ste sigurni da želite ukloniti igrača iz vaše liste prijatelja?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Pošto prvi put pokrećete igru, molimo da ispod unesete Vaš nadimak (nick). Preporučujemo da provjerite postavke i podesite ih prema Vašem ukusu prije nego se konektujete na server.
|
||||
|
||||
Automatically record demos
|
||||
== Automatski demo-snimci
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Automatski screenshot po završetku igre
|
||||
|
||||
Blue team
|
||||
== Plavi tim
|
||||
|
||||
Blue team wins!
|
||||
== Plavi tim je pobijedio!
|
||||
|
||||
Body
|
||||
== Tijelo
|
||||
|
||||
Call vote
|
||||
== Glasanje
|
||||
|
||||
Change settings
|
||||
== Izmijeni postavke
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Klan
|
||||
|
||||
Client
|
||||
== Klijent
|
||||
|
||||
Close
|
||||
== Zatvori
|
||||
|
||||
Compatible version
|
||||
== Kompatibilna verzija
|
||||
|
||||
Connect
|
||||
== Konektuj
|
||||
|
||||
Connecting to
|
||||
== Konektujem na
|
||||
|
||||
Connection Problems...
|
||||
== Problemi sa konekcijom...
|
||||
|
||||
Console
|
||||
== Konzola
|
||||
|
||||
Controls
|
||||
== Kontrole
|
||||
|
||||
Count players only
|
||||
== Izbroj samo igrače
|
||||
|
||||
Country
|
||||
== Država
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Kreirano:
|
||||
|
||||
Current
|
||||
== Current
|
||||
|
||||
Current version: %s
|
||||
== Trenutna verzija: %s
|
||||
|
||||
Custom colors
|
||||
== Vlastite boje
|
||||
|
||||
Delete
|
||||
== Obriši
|
||||
|
||||
Delete demo
|
||||
== Brisanje demo-snimka
|
||||
|
||||
Demo details
|
||||
== Podaci o demo-snimku
|
||||
|
||||
Demofile: %s
|
||||
== Demo-snimak: %s
|
||||
|
||||
Demos
|
||||
== Demo
|
||||
|
||||
Disconnect
|
||||
== Diskonektuj
|
||||
|
||||
Disconnected
|
||||
== Diskonektovan
|
||||
|
||||
Display Modes
|
||||
== Rezolucija i način prikaza
|
||||
|
||||
Downloading map
|
||||
== Preuzimam mapu
|
||||
|
||||
Draw!
|
||||
== Neriješeno!
|
||||
|
||||
Dynamic Camera
|
||||
== Dinamička kamera
|
||||
|
||||
Emoticon
|
||||
== Emoticon
|
||||
|
||||
Enter
|
||||
== Započni
|
||||
|
||||
Error
|
||||
== Greška
|
||||
|
||||
Error loading demo
|
||||
== Došlo je do greške pri učitavanju demo-snimka
|
||||
|
||||
FSAA samples
|
||||
== FSAA samples
|
||||
|
||||
Favorite
|
||||
== Omiljeni
|
||||
|
||||
Favorites
|
||||
== Omiljeni
|
||||
|
||||
Feet
|
||||
== Stopala
|
||||
|
||||
Filter
|
||||
== Filter
|
||||
|
||||
Fire
|
||||
== Pucanje
|
||||
|
||||
Folder
|
||||
== Direktorij
|
||||
|
||||
Force vote
|
||||
== Obavezno glasanje
|
||||
|
||||
Free-View
|
||||
== Slobodan pogled
|
||||
|
||||
Friends
|
||||
== Prijatelji
|
||||
|
||||
Fullscreen
|
||||
== Čitav ekran
|
||||
|
||||
Game
|
||||
== Igra
|
||||
|
||||
Game info
|
||||
== O igri
|
||||
|
||||
Game over
|
||||
== Igra je završena
|
||||
|
||||
Game type
|
||||
== Tip igre
|
||||
|
||||
Game types:
|
||||
== Tipovi igre:
|
||||
|
||||
General
|
||||
== Opće
|
||||
|
||||
Graphics
|
||||
== Grafika
|
||||
|
||||
Grenade
|
||||
== Granate
|
||||
|
||||
Hammer
|
||||
== Čekić
|
||||
|
||||
Has people playing
|
||||
== Server nije prazan
|
||||
|
||||
High Detail
|
||||
== Visoki detalji
|
||||
|
||||
Hook
|
||||
== Lanac
|
||||
|
||||
Host address
|
||||
== Adresa servera
|
||||
|
||||
Hue
|
||||
== Nijans.
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Neispravan demo-snimak
|
||||
|
||||
Join blue
|
||||
== U plavi tim
|
||||
|
||||
Join game
|
||||
== Uključi se u igru
|
||||
|
||||
Join red
|
||||
== U crveni tim
|
||||
|
||||
Jump
|
||||
== Skok
|
||||
|
||||
Kick player
|
||||
== Izbaci igrača iz igre
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Jezik
|
||||
|
||||
Length:
|
||||
== Dužina:
|
||||
|
||||
Lht.
|
||||
== Svjetl.
|
||||
|
||||
Loading
|
||||
== Učitavam
|
||||
|
||||
MOTD
|
||||
== Poruka dana
|
||||
|
||||
Map
|
||||
== Mapa
|
||||
|
||||
Map:
|
||||
== Mapa:
|
||||
|
||||
Max Screenshots
|
||||
== Maksimalan broj screenshot-a
|
||||
|
||||
Max demos
|
||||
== Maximalan broj demo-snimaka
|
||||
|
||||
Maximum ping:
|
||||
== Maksimalan ping:
|
||||
|
||||
Miscellaneous
|
||||
== Razno
|
||||
|
||||
Mouse sens.
|
||||
== Osjetljivost miša
|
||||
|
||||
Move left
|
||||
== Nalijevo
|
||||
|
||||
Move player to spectators
|
||||
== Izbaci igrača u posmatrače
|
||||
|
||||
Move right
|
||||
== Nadesno
|
||||
|
||||
Movement
|
||||
== Kretanje
|
||||
|
||||
Mute when not active
|
||||
== Bez zvuka prilikom neaktivnosti
|
||||
|
||||
Name
|
||||
== Ime
|
||||
|
||||
Name plates size
|
||||
== Veličina podloge za ime
|
||||
|
||||
Netversion:
|
||||
== Net-verzija:
|
||||
|
||||
New name:
|
||||
== Novo ime:
|
||||
|
||||
News
|
||||
== Novosti
|
||||
|
||||
Next weapon
|
||||
== Sljedeće oružje
|
||||
|
||||
Nickname
|
||||
== Nadimak
|
||||
|
||||
No
|
||||
== Ne
|
||||
|
||||
No password
|
||||
== Bez lozinke
|
||||
|
||||
No servers found
|
||||
== Nije pronađen nijedan server
|
||||
|
||||
No servers match your filter criteria
|
||||
== Nijedan server ne odgovara zadatom kriteriju
|
||||
|
||||
Ok
|
||||
== OK
|
||||
|
||||
Open
|
||||
== Otvori
|
||||
|
||||
Parent Folder
|
||||
== Prethodni direktorij
|
||||
|
||||
Password
|
||||
== Lozinka
|
||||
|
||||
Password incorrect
|
||||
== Pogrešna lozinka
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pištolj
|
||||
|
||||
Play
|
||||
== Pogledaj
|
||||
|
||||
Play background music
|
||||
== Pozadinska muzika
|
||||
|
||||
Player
|
||||
== Igrač
|
||||
|
||||
Player country:
|
||||
== Država
|
||||
|
||||
Player options
|
||||
== Postavke igrača
|
||||
|
||||
Players
|
||||
== Igrači
|
||||
|
||||
Please balance teams!
|
||||
== Molim uravnotežite timove!
|
||||
|
||||
Prev. weapon
|
||||
== Prethodno oružje
|
||||
|
||||
Quality Textures
|
||||
== Visokokvalitetne teksture
|
||||
|
||||
Quick search:
|
||||
== Brza pretraga:
|
||||
|
||||
Quit
|
||||
== Izlaz
|
||||
|
||||
Quit anyway?
|
||||
== Izlaz?
|
||||
|
||||
REC %3d:%02d
|
||||
== %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Razlog:
|
||||
|
||||
Record demo
|
||||
== Snimi demo
|
||||
|
||||
Red team
|
||||
== Crveni tim
|
||||
|
||||
Red team wins!
|
||||
== Crveni tim je pobijedio!
|
||||
|
||||
Refresh
|
||||
== Osvježi
|
||||
|
||||
Refreshing master servers
|
||||
== Osvježavam glavne servere
|
||||
|
||||
Remote console
|
||||
== Udaljena konzola
|
||||
|
||||
Remove
|
||||
== Ukloni
|
||||
|
||||
Remove friend
|
||||
== Ukloni prijatelja
|
||||
|
||||
Rename
|
||||
== Preimenuj
|
||||
|
||||
Rename demo
|
||||
== Preimenuj demo-snimak
|
||||
|
||||
Reset filter
|
||||
== Poništi filter
|
||||
|
||||
Reset to defaults
|
||||
== Vrati na početne postavke
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Runda
|
||||
|
||||
Sample rate
|
||||
== Frekvencija
|
||||
|
||||
Sat.
|
||||
== Zasić.
|
||||
|
||||
Score
|
||||
== Rezultat
|
||||
|
||||
Score board
|
||||
== Bodovi
|
||||
|
||||
Score limit
|
||||
== Max. bodova
|
||||
|
||||
Scoreboard
|
||||
== Bodovi
|
||||
|
||||
Screenshot
|
||||
== Screenshot
|
||||
|
||||
Server address:
|
||||
== Adresa servera:
|
||||
|
||||
Server details
|
||||
== Podaci o serveru
|
||||
|
||||
Server filter
|
||||
== Filter servera
|
||||
|
||||
Server info
|
||||
== O Serveru
|
||||
|
||||
Server not full
|
||||
== Server nije pun
|
||||
|
||||
Settings
|
||||
== Postavke
|
||||
|
||||
Shotgun
|
||||
== Pumparica
|
||||
|
||||
Show chat
|
||||
== Prikaži chat
|
||||
|
||||
Show friends only
|
||||
== Prikaži prijatelje
|
||||
|
||||
Show ingame HUD
|
||||
== Prikaži HUD
|
||||
|
||||
Show name plates
|
||||
== Prikaži imena igrača
|
||||
|
||||
Show only supported
|
||||
== Prikaži samo podržane
|
||||
|
||||
Size:
|
||||
== Veličina:
|
||||
|
||||
Skins
|
||||
== Izgled
|
||||
|
||||
Sound
|
||||
== Zvuk
|
||||
|
||||
Sound error
|
||||
== Problem sa zvukom
|
||||
|
||||
Sound volume
|
||||
== Jačina zvuka
|
||||
|
||||
Spectate
|
||||
== Posmatraj
|
||||
|
||||
Spectate next
|
||||
== Posmatraj narednog
|
||||
|
||||
Spectate previous
|
||||
== Posmatraj prethodnog
|
||||
|
||||
Spectator mode
|
||||
== Posmatrački mod
|
||||
|
||||
Spectators
|
||||
== Posmatrači
|
||||
|
||||
Standard gametype
|
||||
== Standardni tip igre
|
||||
|
||||
Standard map
|
||||
== Standardna mapa
|
||||
|
||||
Stop record
|
||||
== Prekini snimanje
|
||||
|
||||
Strict gametype filter
|
||||
== Striktan filter tipa igre
|
||||
|
||||
Sudden Death
|
||||
== Iznenadna smrt
|
||||
|
||||
Switch weapon on pickup
|
||||
== Aktiviraj novo oružje prilikom uzimanja
|
||||
|
||||
Team
|
||||
== Tim
|
||||
|
||||
Team chat
|
||||
== Timski chat
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworld %s je objavljen! Preuzmi ga na www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Kompresija tekstura
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Audio-uređaj nije moguće pokrenuti.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Server sadrži nestandardne postavke.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Mapa u editoru nije memorisana, možda je želite memorisati prije nego izađete iz igre.
|
||||
|
||||
Time limit
|
||||
== Max. vremena
|
||||
|
||||
Time limit: %d min
|
||||
== Max. vremena: %d min.
|
||||
|
||||
Try again
|
||||
== Pokušaj ponovo
|
||||
|
||||
Type
|
||||
== Tip
|
||||
|
||||
Type:
|
||||
== Tip:
|
||||
|
||||
UI Color
|
||||
== Boja menija
|
||||
|
||||
Unable to delete the demo
|
||||
== Demo-snimak nije moguće obrisati
|
||||
|
||||
Unable to rename the demo
|
||||
== Demo-snimak nije moguće preimenovati
|
||||
|
||||
Use sounds
|
||||
== Aktiviraj zvuk
|
||||
|
||||
Use team colors for name plates
|
||||
== Koristi timsku boju u prikazu imena
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Verzija
|
||||
|
||||
Version:
|
||||
== Verzija:
|
||||
|
||||
Vote command:
|
||||
== Komanda za glasanje:
|
||||
|
||||
Vote description:
|
||||
== Opis glasanja:
|
||||
|
||||
Vote no
|
||||
== Ne
|
||||
|
||||
Vote yes
|
||||
== Da
|
||||
|
||||
Voting
|
||||
== Glasanje
|
||||
|
||||
Warmup
|
||||
== Zagrijavanje
|
||||
|
||||
Weapon
|
||||
== Oružje
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Dobrodošli u Teeworlds
|
||||
|
||||
Yes
|
||||
== Da
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Morate ponovo pokrenuti igru da bi sve postavke bile primijenjene.
|
||||
|
||||
Your skin
|
||||
== Vaš izgled
|
||||
|
||||
no limit
|
||||
== bez ograničenja
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bytes
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d de %d servidores, %d jogadores
|
||||
|
||||
%d%% loaded
|
||||
== %d%% carregado
|
||||
|
||||
%ds left
|
||||
== Faltam %ds
|
||||
|
||||
%i minute left
|
||||
== Falta %i minuto
|
||||
|
||||
%i minutes left
|
||||
== Faltam %i minutos
|
||||
|
||||
%i second left
|
||||
== Falta %i segundo
|
||||
|
||||
%i seconds left
|
||||
== Faltam %i segundos
|
||||
|
||||
%s wins!
|
||||
== %s vence!
|
||||
|
||||
-Page %d-
|
||||
== -Página %d-
|
||||
|
||||
Abort
|
||||
== Cancelar
|
||||
|
||||
Add
|
||||
== Adicionar
|
||||
|
||||
Add Friend
|
||||
== Adicionar amigo
|
||||
|
||||
Address
|
||||
== Endereço
|
||||
|
||||
All
|
||||
== Todos
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Sempre mostrar apelidos
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Tem certeza que deseja deletar o demo?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Você tem certeza que deseja sair?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Tem certeza que deseja remover o jogador de sua lista de amigos?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Como esta é a primeira vez que você abre o jogo, por favor, coloque seu apelido abaixo. É recomendado que você verifique as configurações e então ajuste-as para suas preferências antes de entrar em um servidor.
|
||||
|
||||
Automatically record demos
|
||||
== Gravar demos automaticamente
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Capturar tela final de jogo automaticamente
|
||||
|
||||
Blue team
|
||||
== Time azul
|
||||
|
||||
Blue team wins!
|
||||
== Vitória do time azul!
|
||||
|
||||
Body
|
||||
== Corpo
|
||||
|
||||
Call vote
|
||||
== Votar
|
||||
|
||||
Change settings
|
||||
== Mudar configurações
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Clã
|
||||
|
||||
Client
|
||||
== Cliente
|
||||
|
||||
Close
|
||||
== Fechar
|
||||
|
||||
Compatible version
|
||||
== Versão compatível
|
||||
|
||||
Connect
|
||||
== Conectar
|
||||
|
||||
Connecting to
|
||||
== Conectando a
|
||||
|
||||
Connection Problems...
|
||||
== Problemas de conexão...
|
||||
|
||||
Console
|
||||
== Console
|
||||
|
||||
Controls
|
||||
== Controles
|
||||
|
||||
Count players only
|
||||
== Contar apenas jogadores
|
||||
|
||||
Country
|
||||
== País
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Criado:
|
||||
|
||||
Current
|
||||
== Atual
|
||||
|
||||
Current version: %s
|
||||
== Versão atual: %s
|
||||
|
||||
Custom colors
|
||||
== Cores personalizadas
|
||||
|
||||
Delete
|
||||
== Deletar
|
||||
|
||||
Delete demo
|
||||
== Deletar demo
|
||||
|
||||
Demo details
|
||||
== Detalhes do demo
|
||||
|
||||
Demofile: %s
|
||||
== Demo: %s
|
||||
|
||||
Demos
|
||||
== Demos
|
||||
|
||||
Disconnect
|
||||
== Desconectar
|
||||
|
||||
Disconnected
|
||||
== Desconectado
|
||||
|
||||
Display Modes
|
||||
== Modos de exibição
|
||||
|
||||
Downloading map
|
||||
== Baixando mapa
|
||||
|
||||
Draw!
|
||||
== Empate!
|
||||
|
||||
Dynamic Camera
|
||||
== Câmera dinâmica
|
||||
|
||||
Emoticon
|
||||
== Emoticon
|
||||
|
||||
Enter
|
||||
== Entrar
|
||||
|
||||
Error
|
||||
== Erro
|
||||
|
||||
Error loading demo
|
||||
== Erro ao carregar demo
|
||||
|
||||
FSAA samples
|
||||
== Amostras FSAA
|
||||
|
||||
Favorite
|
||||
== Favorito
|
||||
|
||||
Favorites
|
||||
== Favoritos
|
||||
|
||||
Feet
|
||||
== Pés
|
||||
|
||||
Filter
|
||||
== Filtro
|
||||
|
||||
Fire
|
||||
== Atirar
|
||||
|
||||
Folder
|
||||
== Pasta
|
||||
|
||||
Force vote
|
||||
== Forçar votação
|
||||
|
||||
Free-View
|
||||
== Visualização livre
|
||||
|
||||
Friends
|
||||
== Amigos
|
||||
|
||||
Fullscreen
|
||||
== Tela cheia
|
||||
|
||||
Game
|
||||
== Jogo
|
||||
|
||||
Game info
|
||||
== Jogo
|
||||
|
||||
Game over
|
||||
== Fim do jogo
|
||||
|
||||
Game type
|
||||
== Tipo de jogo
|
||||
|
||||
Game types:
|
||||
== Tipos de jogo:
|
||||
|
||||
General
|
||||
== Geral
|
||||
|
||||
Graphics
|
||||
== Gráficos
|
||||
|
||||
Grenade
|
||||
== Granada
|
||||
|
||||
Hammer
|
||||
== Martelo
|
||||
|
||||
Has people playing
|
||||
== Há pessoas jogando
|
||||
|
||||
High Detail
|
||||
== Mostrar detalhes
|
||||
|
||||
Hook
|
||||
== Gancho
|
||||
|
||||
Host address
|
||||
== Endereço do servidor
|
||||
|
||||
Hue
|
||||
== Matiz
|
||||
|
||||
Info
|
||||
== Informações
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Demo inválido
|
||||
|
||||
Join blue
|
||||
== Azul
|
||||
|
||||
Join game
|
||||
== Entrar no jogo
|
||||
|
||||
Join red
|
||||
== Vermelho
|
||||
|
||||
Jump
|
||||
== Pular
|
||||
|
||||
Kick player
|
||||
== Expulsar jogador
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Idioma
|
||||
|
||||
Length:
|
||||
== Duração:
|
||||
|
||||
Lht.
|
||||
== Luminos.
|
||||
|
||||
Loading
|
||||
== Carregando
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Mapa
|
||||
|
||||
Map:
|
||||
== Mapa:
|
||||
|
||||
Max Screenshots
|
||||
== Máximo de capturas de tela
|
||||
|
||||
Max demos
|
||||
== Máximo de demos
|
||||
|
||||
Maximum ping:
|
||||
== Ping máximo:
|
||||
|
||||
Miscellaneous
|
||||
== Diversos
|
||||
|
||||
Mouse sens.
|
||||
== Sens. do mouse
|
||||
|
||||
Move left
|
||||
== Esquerda
|
||||
|
||||
Move player to spectators
|
||||
== Mover jogador para espectadores
|
||||
|
||||
Move right
|
||||
== Direita
|
||||
|
||||
Movement
|
||||
== Movimento
|
||||
|
||||
Mute when not active
|
||||
== Silenciar quando inativo
|
||||
|
||||
Name
|
||||
== Nome
|
||||
|
||||
Name plates size
|
||||
== Tamanho dos apelidos
|
||||
|
||||
Netversion:
|
||||
== Netversion
|
||||
|
||||
New name:
|
||||
== Novo nome:
|
||||
|
||||
News
|
||||
== Novidades
|
||||
|
||||
Next weapon
|
||||
== Próxima arma
|
||||
|
||||
Nickname
|
||||
== Apelido
|
||||
|
||||
No
|
||||
== Não
|
||||
|
||||
No password
|
||||
== Sem senha
|
||||
|
||||
No servers found
|
||||
== Nenhum servidor encontrado
|
||||
|
||||
No servers match your filter criteria
|
||||
== Nenhum servidor corresponde aos critérios do filtro
|
||||
|
||||
Ok
|
||||
== Ok
|
||||
|
||||
Open
|
||||
== Abrir
|
||||
|
||||
Parent Folder
|
||||
== Diretório pai
|
||||
|
||||
Password
|
||||
== Senha
|
||||
|
||||
Password incorrect
|
||||
== Senha incorreta
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistola
|
||||
|
||||
Play
|
||||
== Assistir
|
||||
|
||||
Play background music
|
||||
== Tocar música de fundo
|
||||
|
||||
Player
|
||||
== Jogador
|
||||
|
||||
Player country:
|
||||
== País do jogador:
|
||||
|
||||
Player options
|
||||
== Opções do jogador
|
||||
|
||||
Players
|
||||
== Jogadores
|
||||
|
||||
Please balance teams!
|
||||
== Favor balancear os times!
|
||||
|
||||
Prev. weapon
|
||||
== Arma anterior
|
||||
|
||||
Quality Textures
|
||||
== Texturas de qualidade
|
||||
|
||||
Quick search:
|
||||
== Pesquisa rápida:
|
||||
|
||||
Quit
|
||||
== Sair
|
||||
|
||||
Quit anyway?
|
||||
== Sair mesmo assim?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Motivo:
|
||||
|
||||
Record demo
|
||||
== Gravar demo
|
||||
|
||||
Red team
|
||||
== Time vermelho
|
||||
|
||||
Red team wins!
|
||||
== Vitória do time vermelho!
|
||||
|
||||
Refresh
|
||||
== Atualizar
|
||||
|
||||
Refreshing master servers
|
||||
== Atualizando servidores mestres
|
||||
|
||||
Remote console
|
||||
== Console remoto
|
||||
|
||||
Remove
|
||||
== Deletar
|
||||
|
||||
Remove friend
|
||||
== Deletar amigo
|
||||
|
||||
Rename
|
||||
== Renomear
|
||||
|
||||
Rename demo
|
||||
== Renomear demo
|
||||
|
||||
Reset filter
|
||||
== Resetar filtro
|
||||
|
||||
Reset to defaults
|
||||
== Resetar configurações
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Rodada
|
||||
|
||||
Sample rate
|
||||
== Frequência do som
|
||||
|
||||
Sat.
|
||||
== Saturação
|
||||
|
||||
Score
|
||||
== Pontos
|
||||
|
||||
Score board
|
||||
== Placar
|
||||
|
||||
Score limit
|
||||
== Pontuação máx.
|
||||
|
||||
Scoreboard
|
||||
== Placar
|
||||
|
||||
Screenshot
|
||||
== Capturar tela
|
||||
|
||||
Server address:
|
||||
== Endereço:
|
||||
|
||||
Server details
|
||||
== Detalhes do servidor
|
||||
|
||||
Server filter
|
||||
== Filtro de servidores
|
||||
|
||||
Server info
|
||||
== Servidor
|
||||
|
||||
Server not full
|
||||
== Servidor não lotado
|
||||
|
||||
Settings
|
||||
== Configurações
|
||||
|
||||
Shotgun
|
||||
== Espingarda
|
||||
|
||||
Show chat
|
||||
== Mostrar chat
|
||||
|
||||
Show friends only
|
||||
== Mostrar apenas amigos
|
||||
|
||||
Show ingame HUD
|
||||
== Mostrar HUD do jogo
|
||||
|
||||
Show name plates
|
||||
== Mostrar apelidos
|
||||
|
||||
Show only supported
|
||||
== Mostrar apenas modos suportados
|
||||
|
||||
Size:
|
||||
== Tamanho:
|
||||
|
||||
Skins
|
||||
== Skins
|
||||
|
||||
Sound
|
||||
== Som
|
||||
|
||||
Sound error
|
||||
== Erro de som
|
||||
|
||||
Sound volume
|
||||
== Volume do som
|
||||
|
||||
Spectate
|
||||
== Observar
|
||||
|
||||
Spectate next
|
||||
== Observar próximo
|
||||
|
||||
Spectate previous
|
||||
== Observar anterior
|
||||
|
||||
Spectator mode
|
||||
== Modo espectador
|
||||
|
||||
Spectators
|
||||
== Espectadores
|
||||
|
||||
Standard gametype
|
||||
== Tipo de jogo padrão
|
||||
|
||||
Standard map
|
||||
== Mapa padrão
|
||||
|
||||
Stop record
|
||||
== Parar a gravação
|
||||
|
||||
Strict gametype filter
|
||||
== Filtrar tipo de jogo exato
|
||||
|
||||
Sudden Death
|
||||
== Morte Súbita
|
||||
|
||||
Switch weapon on pickup
|
||||
== Equipar arma ao pegá-la
|
||||
|
||||
Team
|
||||
== Time
|
||||
|
||||
Team chat
|
||||
== Chat do time
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s foi lançado! Baixe-o em www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Compressão de textura
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== O dispositivo de áudio não pôde ser inicializado.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== O servidor está rodando com modificações em um tipo de jogo oficial.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Existe um mapa não salvo no editor, você pode querer salvá-lo antes de sair do jogo.
|
||||
|
||||
Time limit
|
||||
== Limite de tempo
|
||||
|
||||
Time limit: %d min
|
||||
== Limite de tempo: %d minutos
|
||||
|
||||
Try again
|
||||
== Tente de novo
|
||||
|
||||
Type
|
||||
== Tipo
|
||||
|
||||
Type:
|
||||
== Tipo:
|
||||
|
||||
UI Color
|
||||
== Cor do menu
|
||||
|
||||
Unable to delete the demo
|
||||
== Não foi possível deletar o demo
|
||||
|
||||
Unable to rename the demo
|
||||
== Não foi possível renomear o demo
|
||||
|
||||
Use sounds
|
||||
== Usar sons
|
||||
|
||||
Use team colors for name plates
|
||||
== Usar cores dos times em apelidos
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Versão
|
||||
|
||||
Version:
|
||||
== Versão
|
||||
|
||||
Vote command:
|
||||
== Comando da votação:
|
||||
|
||||
Vote description:
|
||||
== Descrição da votação:
|
||||
|
||||
Vote no
|
||||
== Votar Não
|
||||
|
||||
Vote yes
|
||||
== Votar Sim
|
||||
|
||||
Voting
|
||||
== Votação
|
||||
|
||||
Warmup
|
||||
== Aquecimento
|
||||
|
||||
Weapon
|
||||
== Arma
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Bem-vindo ao Teeworlds!
|
||||
|
||||
Yes
|
||||
== Sim
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Você deve reiniciar o jogo para que todas as alterações tenham efeito.
|
||||
|
||||
Your skin
|
||||
== Sua skin
|
||||
|
||||
no limit
|
||||
== sem limite
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Байтове
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d/%d сървъри, %d играчи
|
||||
|
||||
%d%% loaded
|
||||
== %d%% заредено
|
||||
|
||||
%ds left
|
||||
== остават %d сек.
|
||||
|
||||
%i minute left
|
||||
== %i минута остава
|
||||
|
||||
%i minutes left
|
||||
== %i минути остават
|
||||
|
||||
%i second left
|
||||
== %i секунда остава
|
||||
|
||||
%i seconds left
|
||||
== %i секунди остават
|
||||
|
||||
%s wins!
|
||||
== %s печели!
|
||||
|
||||
-Page %d-
|
||||
== -Страница %d-
|
||||
|
||||
Abort
|
||||
== Прекрати
|
||||
|
||||
Add
|
||||
== Добави
|
||||
|
||||
Add Friend
|
||||
== Добави Приятел
|
||||
|
||||
Address
|
||||
== Адрес
|
||||
|
||||
All
|
||||
== Всички
|
||||
|
||||
Alpha
|
||||
== Прозрачност
|
||||
|
||||
Always show name plates
|
||||
== Винаги показвай лентите с имената
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Сигуен ли си че искаш да изтриеш това демо?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Сигурен ли си че искаш да напуснеш?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Сигурен ли си че искаш да премахнеш този играч от листа с приятели?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Тъй като стартираш играта за първи път, моля въведи своя ник отдолу. Препоръчително е да провериш и нагласиш настройките по ваш свой избор преди да започнеш игра.
|
||||
|
||||
Automatically record demos
|
||||
== Записвай демота автоматично
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Автоматична снимка в края на играта
|
||||
|
||||
Blue team
|
||||
== Отбор Сини
|
||||
|
||||
Blue team wins!
|
||||
== Отбор Сини печели!
|
||||
|
||||
Body
|
||||
== Тяло
|
||||
|
||||
Call vote
|
||||
== Гласувай
|
||||
|
||||
Change settings
|
||||
== Промени настройките
|
||||
|
||||
Chat
|
||||
== Чат
|
||||
|
||||
Clan
|
||||
== Клан
|
||||
|
||||
Client
|
||||
== Клиент
|
||||
|
||||
Close
|
||||
== Затвори
|
||||
|
||||
Compatible version
|
||||
== Съвместима версия
|
||||
|
||||
Connect
|
||||
== Впиши
|
||||
|
||||
Connecting to
|
||||
== Свързвам се с
|
||||
|
||||
Connection Problems...
|
||||
== Проблеми с Връзката...
|
||||
|
||||
Console
|
||||
== Конзола
|
||||
|
||||
Controls
|
||||
== Контроли
|
||||
|
||||
Count players only
|
||||
== Брой на играчите
|
||||
|
||||
Country
|
||||
== Държава
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Създаден:
|
||||
|
||||
Current
|
||||
== Текущ
|
||||
|
||||
Current version: %s
|
||||
== Текуща версия: %s
|
||||
|
||||
Custom colors
|
||||
== Произволни цветове
|
||||
|
||||
Delete
|
||||
== Изтрий
|
||||
|
||||
Delete demo
|
||||
== Изтрий демото
|
||||
|
||||
Demo details
|
||||
== Детайли за демото
|
||||
|
||||
Demofile: %s
|
||||
== Демофайл: %s
|
||||
|
||||
Demos
|
||||
== Демота
|
||||
|
||||
Disconnect
|
||||
== Отпиши
|
||||
|
||||
Disconnected
|
||||
== Отписан
|
||||
|
||||
Display Modes
|
||||
== Режими на Показване
|
||||
|
||||
Downloading map
|
||||
== Свалям карта
|
||||
|
||||
Draw!
|
||||
== Равни!
|
||||
|
||||
Dynamic Camera
|
||||
== Динамична Камера
|
||||
|
||||
Emoticon
|
||||
== Емотикони
|
||||
|
||||
Enter
|
||||
== Влез
|
||||
|
||||
Error
|
||||
== Грешка
|
||||
|
||||
Error loading demo
|
||||
== Грешка при зареждане на демо файл
|
||||
|
||||
FSAA samples
|
||||
== FSAA семпли
|
||||
|
||||
Favorite
|
||||
== Любим
|
||||
|
||||
Favorites
|
||||
== Любими
|
||||
|
||||
Feet
|
||||
== Крака
|
||||
|
||||
Filter
|
||||
== Филтър
|
||||
|
||||
Fire
|
||||
== Стрелба
|
||||
|
||||
Folder
|
||||
== Папка
|
||||
|
||||
Force vote
|
||||
== Форсирай вот
|
||||
|
||||
Free-View
|
||||
== Свободен Изглед
|
||||
|
||||
Friends
|
||||
== Приятели
|
||||
|
||||
Fullscreen
|
||||
== Цял Екран
|
||||
|
||||
Game
|
||||
== Игра
|
||||
|
||||
Game info
|
||||
== Игра
|
||||
|
||||
Game over
|
||||
== Играта свърши
|
||||
|
||||
Game type
|
||||
== Тип игра
|
||||
|
||||
Game types:
|
||||
== Тип иги:
|
||||
|
||||
General
|
||||
== Основни
|
||||
|
||||
Graphics
|
||||
== Графика
|
||||
|
||||
Grenade
|
||||
== Граната
|
||||
|
||||
Hammer
|
||||
== Чук
|
||||
|
||||
Has people playing
|
||||
== Не показвай празни
|
||||
|
||||
High Detail
|
||||
== Висока Детайлност
|
||||
|
||||
Hook
|
||||
== Верига
|
||||
|
||||
Host address
|
||||
== Адрес на сървъра
|
||||
|
||||
Hue
|
||||
== Оттенък
|
||||
|
||||
Info
|
||||
== Инфо
|
||||
|
||||
Internet
|
||||
== Интернет
|
||||
|
||||
Invalid Demo
|
||||
== Невалидно Демо
|
||||
|
||||
Join blue
|
||||
== Влез син
|
||||
|
||||
Join game
|
||||
== Влез
|
||||
|
||||
Join red
|
||||
== Влез червен
|
||||
|
||||
Jump
|
||||
== Скок
|
||||
|
||||
Kick player
|
||||
== Кикни играч
|
||||
|
||||
LAN
|
||||
== ЛАН
|
||||
|
||||
Language
|
||||
== Език
|
||||
|
||||
Length:
|
||||
== Дължина:
|
||||
|
||||
Lht.
|
||||
== Яркост
|
||||
|
||||
Loading
|
||||
== Зареждам
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Карта
|
||||
|
||||
Map:
|
||||
== Карта:
|
||||
|
||||
Max Screenshots
|
||||
== Максимум Снимки
|
||||
|
||||
Max demos
|
||||
== Максимум Демота
|
||||
|
||||
Maximum ping:
|
||||
== Макс. пинг:
|
||||
|
||||
Miscellaneous
|
||||
== Допълнителни
|
||||
|
||||
Mouse sens.
|
||||
== Мишка
|
||||
|
||||
Move left
|
||||
== На ляво
|
||||
|
||||
Move player to spectators
|
||||
== Премести играча в наблюдатели
|
||||
|
||||
Move right
|
||||
== На дясно
|
||||
|
||||
Movement
|
||||
== Движение
|
||||
|
||||
Mute when not active
|
||||
== Изключвай звука когато играта е неактивна
|
||||
|
||||
Name
|
||||
== Име
|
||||
|
||||
Name plates size
|
||||
== Размер на лентата с имената
|
||||
|
||||
Netversion:
|
||||
== Версия:
|
||||
|
||||
New name:
|
||||
== Ново име:
|
||||
|
||||
News
|
||||
== Новини
|
||||
|
||||
Next weapon
|
||||
== След. оръжие
|
||||
|
||||
Nickname
|
||||
== Ник
|
||||
|
||||
No
|
||||
== Не
|
||||
|
||||
No password
|
||||
== Без парола
|
||||
|
||||
No servers found
|
||||
== Няма намерени сървъри
|
||||
|
||||
No servers match your filter criteria
|
||||
== Няма сървъри съответстващи твоите настройки
|
||||
|
||||
Ok
|
||||
== Добре
|
||||
|
||||
Open
|
||||
== Отвори
|
||||
|
||||
Parent Folder
|
||||
== Предишна Папка
|
||||
|
||||
Password
|
||||
== Парола
|
||||
|
||||
Password incorrect
|
||||
== Грешна Парола
|
||||
|
||||
Ping
|
||||
== Пинг
|
||||
|
||||
Pistol
|
||||
== Пистолет
|
||||
|
||||
Play
|
||||
== Възпроизведи
|
||||
|
||||
Play background music
|
||||
== Пусни музика за фон
|
||||
|
||||
Player
|
||||
== Играч
|
||||
|
||||
Player country:
|
||||
== Страна на играча:
|
||||
|
||||
Player options
|
||||
== Настройки на Играча
|
||||
|
||||
Players
|
||||
== Играчи
|
||||
|
||||
Please balance teams!
|
||||
== Моля уравновесете отборите!
|
||||
|
||||
Prev. weapon
|
||||
== Пред. оръжие
|
||||
|
||||
Quality Textures
|
||||
== Качествени Текстури
|
||||
|
||||
Quick search:
|
||||
== Бързо Търсене:
|
||||
|
||||
Quit
|
||||
== Изход
|
||||
|
||||
Quit anyway?
|
||||
== Излезни все пак?
|
||||
|
||||
REC %3d:%02d
|
||||
== Записани %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Причина:
|
||||
|
||||
Record demo
|
||||
== Запиши демо
|
||||
|
||||
Red team
|
||||
== Отбор Червени
|
||||
|
||||
Red team wins!
|
||||
== Отбор Червени печели!
|
||||
|
||||
Refresh
|
||||
== Обнови
|
||||
|
||||
Refreshing master servers
|
||||
== Обновновявам мастър-сървърите
|
||||
|
||||
Remote console
|
||||
== Сървър Конзола
|
||||
|
||||
Remove
|
||||
== Премахни
|
||||
|
||||
Remove friend
|
||||
== Премахни приятел
|
||||
|
||||
Rename
|
||||
== Преименувай
|
||||
|
||||
Rename demo
|
||||
== Преименувай демо
|
||||
|
||||
Reset filter
|
||||
== Рестартирай филтрите
|
||||
|
||||
Reset to defaults
|
||||
== Рестартирай настройките
|
||||
|
||||
Rifle
|
||||
== Лазер
|
||||
|
||||
Round
|
||||
== Рунд
|
||||
|
||||
Sample rate
|
||||
== Честота
|
||||
|
||||
Sat.
|
||||
== Контраст
|
||||
|
||||
Score
|
||||
== Точки
|
||||
|
||||
Score board
|
||||
== Резултат
|
||||
|
||||
Score limit
|
||||
== Лимит на точките
|
||||
|
||||
Scoreboard
|
||||
== Резултат
|
||||
|
||||
Screenshot
|
||||
== Снимка
|
||||
|
||||
Server address:
|
||||
== Адрес на сървъра:
|
||||
|
||||
Server details
|
||||
== Детайли за Сървъра
|
||||
|
||||
Server filter
|
||||
== Филтър на сървъра
|
||||
|
||||
Server info
|
||||
== Инфо
|
||||
|
||||
Server not full
|
||||
== Не показвай пълните
|
||||
|
||||
Settings
|
||||
== Настройки
|
||||
|
||||
Shotgun
|
||||
== Пушка
|
||||
|
||||
Show chat
|
||||
== Показвай чата
|
||||
|
||||
Show friends only
|
||||
== Покажи приятели
|
||||
|
||||
Show ingame HUD
|
||||
== Показвай детайли в играта
|
||||
|
||||
Show name plates
|
||||
== Показвай лентите с имената
|
||||
|
||||
Show only supported
|
||||
== Показвай само съвместимите
|
||||
|
||||
Size:
|
||||
== Размер
|
||||
|
||||
Skins
|
||||
== Модели
|
||||
|
||||
Sound
|
||||
== Звук
|
||||
|
||||
Sound error
|
||||
== Грешка в звука
|
||||
|
||||
Sound volume
|
||||
== Сила на звука
|
||||
|
||||
Spectate
|
||||
== Наблюдавай
|
||||
|
||||
Spectate next
|
||||
== Наблюдавай след.
|
||||
|
||||
Spectator mode
|
||||
== Наблюдател
|
||||
|
||||
Spectators
|
||||
== Наблюдатели
|
||||
|
||||
Standard gametype
|
||||
== Стандартен тип игри
|
||||
|
||||
Standard map
|
||||
== Стандартна карта
|
||||
|
||||
Stop record
|
||||
== Спри записа
|
||||
|
||||
Strict gametype filter
|
||||
== Стриктен геймтайп филтър
|
||||
|
||||
Sudden Death
|
||||
== Внезапна Смърт
|
||||
|
||||
Switch weapon on pickup
|
||||
== Сменяй оръжието при взимане
|
||||
|
||||
Team
|
||||
== Отбор
|
||||
|
||||
Team chat
|
||||
== Отборен чат
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Излезна Teeworlds %s! Свали новата версия от www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Компресиране на Текстурите
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Аудио устройството не може да бъде стартирано.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Този сървър използва нестандартен тунинг на стандартен тип ига.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Има незапазена карта в редактора, ако напуснете картата няма да бъде запазена.
|
||||
|
||||
Time limit
|
||||
== Лимит на Времето
|
||||
|
||||
Time limit: %d min
|
||||
== Лимит на Времето: %d мин
|
||||
|
||||
Try again
|
||||
== Опитай пак
|
||||
|
||||
Type
|
||||
== Тип
|
||||
|
||||
Type:
|
||||
== Тип:
|
||||
|
||||
UI Color
|
||||
== Цвят на Интерфейса
|
||||
|
||||
Unable to delete the demo
|
||||
== Изтриването неуспешно
|
||||
|
||||
Unable to rename the demo
|
||||
== Преименуването неуспешно
|
||||
|
||||
Use sounds
|
||||
== Използвай Звук
|
||||
|
||||
Use team colors for name plates
|
||||
== Използвай цветове в лентите
|
||||
|
||||
V-Sync
|
||||
== Вертикална Синхронизация
|
||||
|
||||
Version
|
||||
== Версия
|
||||
|
||||
Version:
|
||||
== Версия:
|
||||
|
||||
Vote command:
|
||||
== Вот команда:
|
||||
|
||||
Vote description:
|
||||
== Вот дефиниция:
|
||||
|
||||
Vote no
|
||||
== Против
|
||||
|
||||
Vote yes
|
||||
== За
|
||||
|
||||
Voting
|
||||
== Гласуване
|
||||
|
||||
Warmup
|
||||
== Разгрявка
|
||||
|
||||
Weapon
|
||||
== Оръжия
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Добре дошли в Teeworlds!
|
||||
|
||||
Yes
|
||||
== Да
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Трябва да рестартираш играта за да поемат ефект новите настройки.
|
||||
|
||||
Your skin
|
||||
== Твоят модел
|
||||
|
||||
no limit
|
||||
== Без лимит
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
Spectate previous
|
||||
==
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bajtů
|
||||
|
||||
%d of %d servers, %d players
|
||||
== Serverů: %d z %d, Hráčů: %d
|
||||
|
||||
%d%% loaded
|
||||
== %d%% načteno
|
||||
|
||||
%ds left
|
||||
== zbývá %ds
|
||||
|
||||
%i minute left
|
||||
== Zbývá minut: %i
|
||||
|
||||
%i minutes left
|
||||
== Zbývá minut: %i
|
||||
|
||||
%i second left
|
||||
== Zbývá sekund: %i
|
||||
|
||||
%i seconds left
|
||||
== Zbývá sekund: %i
|
||||
|
||||
%s wins!
|
||||
== Vítězí %s!
|
||||
|
||||
-Page %d-
|
||||
== -Strana %d-
|
||||
|
||||
Abort
|
||||
== Přerušit
|
||||
|
||||
Add
|
||||
== Přidat
|
||||
|
||||
Add Friend
|
||||
== Přidat do přátel
|
||||
|
||||
Address
|
||||
== Adresa
|
||||
|
||||
All
|
||||
== Všem
|
||||
|
||||
Alpha
|
||||
== Alfa
|
||||
|
||||
Always show name plates
|
||||
== Vždy zobrazovat
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Opravdu chcete smazat tento záznam?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Opravdu chcete ukončit Teeworlds?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Chcete odebrat tohoto hráče ze seznamu přátel?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Jelikož je toto Vaše první spuštění hry, zadejte prosím svou přezdívku. Než začnete hrát, doporučujeme si upravit nastavení tak, aby Vám vyhovovalo.
|
||||
|
||||
Automatically record demos
|
||||
== Automaticky nahrávat záznamy
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Na konci kola vyfotit obrazovku
|
||||
|
||||
Blue team
|
||||
== Modří
|
||||
|
||||
Blue team wins!
|
||||
== Modří vyhráli!
|
||||
|
||||
Body
|
||||
== Tělo
|
||||
|
||||
Call vote
|
||||
== Hlasovat
|
||||
|
||||
Change settings
|
||||
== Změna nastavení
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Herní klan
|
||||
|
||||
Client
|
||||
== Klient
|
||||
|
||||
Close
|
||||
== Zavřít
|
||||
|
||||
Compatible version
|
||||
== Kompatibilní verze
|
||||
|
||||
Connect
|
||||
== Připojit
|
||||
|
||||
Connecting to
|
||||
== Připojuji na
|
||||
|
||||
Connection Problems...
|
||||
== Chyba spojení...
|
||||
|
||||
Console
|
||||
== Konzola
|
||||
|
||||
Controls
|
||||
== Ovládání
|
||||
|
||||
Count players only
|
||||
== Započítat hrající hráče
|
||||
|
||||
Country
|
||||
== Národnost
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Vytvořeno:
|
||||
|
||||
Current
|
||||
== Aktuálně
|
||||
|
||||
Current version: %s
|
||||
== Aktuální verze: %s
|
||||
|
||||
Custom colors
|
||||
== Vlastní barvy
|
||||
|
||||
Delete
|
||||
== Smazat
|
||||
|
||||
Delete demo
|
||||
== Smazat záznam
|
||||
|
||||
Demo details
|
||||
== Detaily záznamu:
|
||||
|
||||
Demofile: %s
|
||||
== Soubor záznamu: %s
|
||||
|
||||
Demos
|
||||
== Záznamy
|
||||
|
||||
Disconnect
|
||||
== Odpojit
|
||||
|
||||
Disconnected
|
||||
== Odpojeno
|
||||
|
||||
Display Modes
|
||||
== Režimy zobrazení
|
||||
|
||||
Downloading map
|
||||
== Stahování mapy
|
||||
|
||||
Draw!
|
||||
== Remíza!
|
||||
|
||||
Dynamic Camera
|
||||
== Pohyblivá kamera
|
||||
|
||||
Emoticon
|
||||
== Emotikony
|
||||
|
||||
Enter
|
||||
== Vstoupit
|
||||
|
||||
Error
|
||||
== Chyba
|
||||
|
||||
Error loading demo
|
||||
== Chyba načítání záznamu
|
||||
|
||||
FSAA samples
|
||||
== FSAA vzorkování
|
||||
|
||||
Favorite
|
||||
== Oblíbený
|
||||
|
||||
Favorites
|
||||
== Oblíbené
|
||||
|
||||
Feet
|
||||
== Nohy
|
||||
|
||||
Filter
|
||||
== Filtr
|
||||
|
||||
Fire
|
||||
== Střelba
|
||||
|
||||
Folder
|
||||
== Složka
|
||||
|
||||
Force vote
|
||||
== Zvolit
|
||||
|
||||
Free-View
|
||||
== Volný pohled
|
||||
|
||||
Friends
|
||||
== Přátelé
|
||||
|
||||
Fullscreen
|
||||
== Celá obrazovka
|
||||
|
||||
Game
|
||||
== Hra
|
||||
|
||||
Game info
|
||||
== Hra
|
||||
|
||||
Game over
|
||||
== Konec hry
|
||||
|
||||
Game type
|
||||
== Herní mód
|
||||
|
||||
Game types:
|
||||
== Herní mód:
|
||||
|
||||
General
|
||||
== Hlavní
|
||||
|
||||
Graphics
|
||||
== Video
|
||||
|
||||
Grenade
|
||||
== Granátomet
|
||||
|
||||
Hammer
|
||||
== Kladivo
|
||||
|
||||
Has people playing
|
||||
== Hráči na serveru
|
||||
|
||||
High Detail
|
||||
== Vysoké detaily
|
||||
|
||||
Hook
|
||||
== Hák
|
||||
|
||||
Host address
|
||||
== Adresa serveru
|
||||
|
||||
Hue
|
||||
== Tón
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Neplatný záznam
|
||||
|
||||
Join blue
|
||||
== Modří
|
||||
|
||||
Join game
|
||||
== Do hry
|
||||
|
||||
Join red
|
||||
== Červení
|
||||
|
||||
Jump
|
||||
== Skok
|
||||
|
||||
Kick player
|
||||
== Vyhodit hráče
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Jazyk
|
||||
|
||||
Length:
|
||||
== Délka:
|
||||
|
||||
Lht.
|
||||
== Jas
|
||||
|
||||
Loading
|
||||
== Načítání
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Mapa
|
||||
|
||||
Map:
|
||||
== Mapa:
|
||||
|
||||
Max Screenshots
|
||||
== Maximální počet vyfocených obrazovek
|
||||
|
||||
Max demos
|
||||
== Maximální počet záznamů
|
||||
|
||||
Maximum ping:
|
||||
== Maximální ping:
|
||||
|
||||
Miscellaneous
|
||||
== Ostatní
|
||||
|
||||
Mouse sens.
|
||||
== Citlivost myši
|
||||
|
||||
Move left
|
||||
== Pohyb doleva
|
||||
|
||||
Move player to spectators
|
||||
== Poslat hráče pozorovat
|
||||
|
||||
Move right
|
||||
== Pohyb doprava
|
||||
|
||||
Movement
|
||||
== Pohyb
|
||||
|
||||
Mute when not active
|
||||
== Při nečinnosti ztlumit zvuk
|
||||
|
||||
Name
|
||||
== Jméno
|
||||
|
||||
Name plates size
|
||||
== Velikost jmen
|
||||
|
||||
Netversion:
|
||||
== Netversion:
|
||||
|
||||
New name:
|
||||
== Nové jméno:
|
||||
|
||||
News
|
||||
== Novinky
|
||||
|
||||
Next weapon
|
||||
== Další zbraň
|
||||
|
||||
Nickname
|
||||
== Přezdívka
|
||||
|
||||
No
|
||||
== Ne
|
||||
|
||||
No password
|
||||
== Bez hesla
|
||||
|
||||
No servers found
|
||||
== Žádný server nenalezen
|
||||
|
||||
No servers match your filter criteria
|
||||
== Žádný server neodpovídá požadavkům filtru
|
||||
|
||||
Ok
|
||||
== OK
|
||||
|
||||
Open
|
||||
== Otevřít
|
||||
|
||||
Parent Folder
|
||||
== Nadřazená složka
|
||||
|
||||
Password
|
||||
== Heslo
|
||||
|
||||
Password incorrect
|
||||
== Špatné heslo
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistolka
|
||||
|
||||
Play
|
||||
== Přehrát
|
||||
|
||||
Play background music
|
||||
== Přehrávat hudbu na pozadí
|
||||
|
||||
Player
|
||||
== Hráč
|
||||
|
||||
Player country:
|
||||
== Národnost:
|
||||
|
||||
Player options
|
||||
== Nastavení hráčů
|
||||
|
||||
Players
|
||||
== Hráči
|
||||
|
||||
Please balance teams!
|
||||
== Prosím vyrovnejte týmy!
|
||||
|
||||
Prev. weapon
|
||||
== Předchozí zbraň
|
||||
|
||||
Quality Textures
|
||||
== Kvalitní textury
|
||||
|
||||
Quick search:
|
||||
== Vyhledávání:
|
||||
|
||||
Quit
|
||||
== Konec
|
||||
|
||||
Quit anyway?
|
||||
== Opravdu odejít?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Důvod:
|
||||
|
||||
Record demo
|
||||
== Zaznamenat
|
||||
|
||||
Red team
|
||||
== Červení
|
||||
|
||||
Red team wins!
|
||||
== Červení vyhráli!
|
||||
|
||||
Refresh
|
||||
== Obnovit
|
||||
|
||||
Refreshing master servers
|
||||
== Aktualizování hlavních serverů
|
||||
|
||||
Remote console
|
||||
== Vzdálená konzola
|
||||
|
||||
Remove
|
||||
== Odstranit
|
||||
|
||||
Remove friend
|
||||
== Odebrat přítele
|
||||
|
||||
Rename
|
||||
== Přejmenovat
|
||||
|
||||
Rename demo
|
||||
== Přejmenovat záznam
|
||||
|
||||
Reset filter
|
||||
== Vymazat filtr
|
||||
|
||||
Reset to defaults
|
||||
== Obnovit výchozí
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Kolo
|
||||
|
||||
Sample rate
|
||||
== Vzorkování:
|
||||
|
||||
Sat.
|
||||
== Barva
|
||||
|
||||
Score
|
||||
== Skóre
|
||||
|
||||
Score board
|
||||
== Tabulka výsledků
|
||||
|
||||
Score limit
|
||||
== Skóre limit
|
||||
|
||||
Scoreboard
|
||||
== Tabulka výsledků
|
||||
|
||||
Screenshot
|
||||
== Vyfotit obrazovku
|
||||
|
||||
Server address:
|
||||
== Adresa serveru:
|
||||
|
||||
Server details
|
||||
== Detaily serveru
|
||||
|
||||
Server filter
|
||||
== Filtr serverů
|
||||
|
||||
Server info
|
||||
== Informace
|
||||
|
||||
Server not full
|
||||
== Možnost připojit se
|
||||
|
||||
Settings
|
||||
== Nastavení
|
||||
|
||||
Shotgun
|
||||
== Brokovnice
|
||||
|
||||
Show chat
|
||||
== Zobrazit chat
|
||||
|
||||
Show friends only
|
||||
== Zobrazit přátele
|
||||
|
||||
Show ingame HUD
|
||||
== Zobrazit HUD
|
||||
|
||||
Show name plates
|
||||
== Zobrazovat jména hráčů
|
||||
|
||||
Show only supported
|
||||
== Zobrazit pouze podporované
|
||||
|
||||
Size:
|
||||
== Velikost:
|
||||
|
||||
Skins
|
||||
== Vzhledy
|
||||
|
||||
Sound
|
||||
== Zvuk
|
||||
|
||||
Sound error
|
||||
== Chyba zvuku
|
||||
|
||||
Sound volume
|
||||
== Hlasitost
|
||||
|
||||
Spectate
|
||||
== Pozorovat
|
||||
|
||||
Spectate next
|
||||
== Pozorovat dalšího
|
||||
|
||||
Spectate previous
|
||||
== Pozorovat minulého
|
||||
|
||||
Spectator mode
|
||||
== Nastavit pozorování
|
||||
|
||||
Spectators
|
||||
== Pozorovatelé
|
||||
|
||||
Standard gametype
|
||||
== Základní herní módy
|
||||
|
||||
Standard map
|
||||
== Základní mapy
|
||||
|
||||
Stop record
|
||||
== Ukončit záznam
|
||||
|
||||
Strict gametype filter
|
||||
== Pouze tento herní mód
|
||||
|
||||
Sudden Death
|
||||
== Náhlá smrt
|
||||
|
||||
Switch weapon on pickup
|
||||
== Přehazovat zbraň na nově sebranou
|
||||
|
||||
Team
|
||||
== Týmu
|
||||
|
||||
Team chat
|
||||
== Týmový chat
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Stáhněte si nové Teeworlds %s na www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Komprimované textury
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Zvukové zařízení nelze inicializovat.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Server používá nestandartní nastavení (tuning) pro základní módy.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== V editoru map je neuložená mapa, možná ji chcete před ukončením hry uložit.
|
||||
|
||||
Time limit
|
||||
== Časový limit
|
||||
|
||||
Time limit: %d min
|
||||
== Časový limit: %d min
|
||||
|
||||
Try again
|
||||
== Zkusit znovu
|
||||
|
||||
Type
|
||||
== Mód
|
||||
|
||||
Type:
|
||||
== Typ:
|
||||
|
||||
UI Color
|
||||
== Barvy uživatelského rozhraní
|
||||
|
||||
Unable to delete the demo
|
||||
== Záznam se nepodařilo smazat
|
||||
|
||||
Unable to rename the demo
|
||||
== Záznam nelze přejmenovat
|
||||
|
||||
Use sounds
|
||||
== Povolit zvuk
|
||||
|
||||
Use team colors for name plates
|
||||
== Obarvit jména hráčů podle týmu
|
||||
|
||||
V-Sync
|
||||
== Vertikální synchronizace
|
||||
|
||||
Version
|
||||
== Verze
|
||||
|
||||
Version:
|
||||
== Verze:
|
||||
|
||||
Vote command:
|
||||
== Příkaz:
|
||||
|
||||
Vote description:
|
||||
== Popisek hlasování:
|
||||
|
||||
Vote no
|
||||
== NE
|
||||
|
||||
Vote yes
|
||||
== ANO
|
||||
|
||||
Voting
|
||||
== Hlasování
|
||||
|
||||
Warmup
|
||||
== Zahřívací kolo
|
||||
|
||||
Weapon
|
||||
== Zbraně
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Vítejte v Teeworlds
|
||||
|
||||
Yes
|
||||
== Ano
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Změna nastavení se projeví až po restartu hry.
|
||||
|
||||
Your skin
|
||||
== Zvolený vzhled
|
||||
|
||||
no limit
|
||||
== neomezeno
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,678 +0,0 @@
|
|||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bytes
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d af %d servere, %d spillere
|
||||
|
||||
%d%% loaded
|
||||
== %d%% indlæst
|
||||
|
||||
%ds left
|
||||
== %d sekunder tilbage
|
||||
|
||||
%i minute left
|
||||
== %i minut tilbage
|
||||
|
||||
%i minutes left
|
||||
== %i minutter tilbage
|
||||
|
||||
%i second left
|
||||
== %i sekund tilbage
|
||||
|
||||
%i seconds left
|
||||
== %i sekunder tilbage
|
||||
|
||||
%s wins!
|
||||
== %s vinder!
|
||||
|
||||
-Page %d-
|
||||
== -Side %d-
|
||||
|
||||
Abort
|
||||
== Afbryd
|
||||
|
||||
Add
|
||||
== Tilføj
|
||||
|
||||
Add Friend
|
||||
== Tilføj ven
|
||||
|
||||
Address
|
||||
== Adresse
|
||||
|
||||
All
|
||||
== Alle
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Vis altid navneskilte
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Er du sikker på at du vil slette denne demo?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Er du sikker på at du vil afslutte?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Er du sikker på at du vil fjerne denne spiller fra din venneliste?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Siden dette er første gang du starter spillet, så vær så venlig at skrive dit navn nedenunder. Det anbefales at du kigger på indstillingerne så du kan tilpasse dem inden du kobler dig på en server.
|
||||
|
||||
Automatically record demos
|
||||
== Optag automatisk demoer
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Tag automatisk et game over screenshot
|
||||
|
||||
Blue team
|
||||
== Blå hold
|
||||
|
||||
Blue team wins!
|
||||
== Blåt hold vinder!
|
||||
|
||||
Body
|
||||
== Krop
|
||||
|
||||
Call vote
|
||||
== Lav afstemning
|
||||
|
||||
Change settings
|
||||
== Ændre indstillinger
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Klan
|
||||
|
||||
Client
|
||||
== Klient
|
||||
|
||||
Close
|
||||
== Luk
|
||||
|
||||
Compatible version
|
||||
== Kompatibel version
|
||||
|
||||
Connect
|
||||
== Tilslut
|
||||
|
||||
Connecting to
|
||||
== Forbinder til
|
||||
|
||||
Connection Problems...
|
||||
== Forbindelsesproblemer...
|
||||
|
||||
Console
|
||||
== Konsol
|
||||
|
||||
Controls
|
||||
== Taster
|
||||
|
||||
Count players only
|
||||
== Tæl kun spillere
|
||||
|
||||
Country
|
||||
== Land
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Lavet:
|
||||
|
||||
Current
|
||||
== Nuværende
|
||||
|
||||
Current version: %s
|
||||
== Nuværende version: %s
|
||||
|
||||
Custom colors
|
||||
== Brugerdefinerede farver
|
||||
|
||||
Delete
|
||||
== Slet
|
||||
|
||||
Delete demo
|
||||
== Slet demo
|
||||
|
||||
Demo details
|
||||
== Demoinformation
|
||||
|
||||
Demos
|
||||
== Demoer
|
||||
|
||||
Disconnect
|
||||
== Frakoble
|
||||
|
||||
Disconnected
|
||||
== Frakoblet
|
||||
|
||||
Display Modes
|
||||
== Skærmopløsning
|
||||
|
||||
Downloading map
|
||||
== Downloader bane
|
||||
|
||||
Draw!
|
||||
== Uafgjort!
|
||||
|
||||
Dynamic Camera
|
||||
== Dynamisk kamera
|
||||
|
||||
Emoticon
|
||||
== Humørikoner
|
||||
|
||||
Enter
|
||||
== Fortsæt
|
||||
|
||||
Error
|
||||
== Fejl
|
||||
|
||||
Error loading demo
|
||||
== Kunne ikke ikke indlæse demoen
|
||||
|
||||
FSAA samples
|
||||
== FSAA samples
|
||||
|
||||
Favorite
|
||||
== Favorit
|
||||
|
||||
Favorites
|
||||
== Favoritter
|
||||
|
||||
Feet
|
||||
== Fødder
|
||||
|
||||
Filter
|
||||
== Filter
|
||||
|
||||
Fire
|
||||
== Skyd
|
||||
|
||||
Folder
|
||||
== Mappe
|
||||
|
||||
Force vote
|
||||
== Tving afstemning
|
||||
|
||||
Free-View
|
||||
== Free-View
|
||||
|
||||
Friends
|
||||
== Venner
|
||||
|
||||
Fullscreen
|
||||
== Fuldskærm
|
||||
|
||||
Game
|
||||
== Spil
|
||||
|
||||
Game info
|
||||
== Spil info
|
||||
|
||||
Game over
|
||||
== Game over
|
||||
|
||||
Game type
|
||||
== Spiltype
|
||||
|
||||
Game types:
|
||||
== Spiltyper:
|
||||
|
||||
General
|
||||
== Generelt
|
||||
|
||||
Graphics
|
||||
== Grafik
|
||||
|
||||
Grenade
|
||||
== Granatkaster
|
||||
|
||||
Hammer
|
||||
== Hammer
|
||||
|
||||
Has people playing
|
||||
== Har folk som spiller
|
||||
|
||||
High Detail
|
||||
== Extra detaljer
|
||||
|
||||
Hook
|
||||
== Krog
|
||||
|
||||
Host address
|
||||
== Værtsadresse
|
||||
|
||||
Hue
|
||||
== Farve
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Ugyldig demo
|
||||
|
||||
Join blue
|
||||
== Spil for blå
|
||||
|
||||
Join game
|
||||
== Start spil
|
||||
|
||||
Join red
|
||||
== Spil for rød
|
||||
|
||||
Jump
|
||||
== Hop
|
||||
|
||||
Kick player
|
||||
== Udsmid spiller
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Sprog
|
||||
|
||||
Length:
|
||||
== Længde
|
||||
|
||||
Lht.
|
||||
== Lys
|
||||
|
||||
Loading
|
||||
== Indlæser
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Kort
|
||||
|
||||
Map:
|
||||
== Bane
|
||||
|
||||
Max Screenshots
|
||||
== Max antal screenshots
|
||||
|
||||
Max demos
|
||||
== Max antal demoer
|
||||
|
||||
Maximum ping:
|
||||
== Højeste ping:
|
||||
|
||||
Miscellaneous
|
||||
== Diverse
|
||||
|
||||
Mouse sens.
|
||||
== Musfølsomhed
|
||||
|
||||
Move left
|
||||
== Gå til venstre
|
||||
|
||||
Move player to spectators
|
||||
== Flyt spilleren til tilskuerne
|
||||
|
||||
Move right
|
||||
== Gå til højre
|
||||
|
||||
Movement
|
||||
== Bevægelse
|
||||
|
||||
Mute when not active
|
||||
== Ingen lyd når du ikke er aktiv
|
||||
|
||||
Name
|
||||
== Navn
|
||||
|
||||
Name plates size
|
||||
== Størrelse på navneskilte
|
||||
|
||||
Netversion:
|
||||
== Netversion:
|
||||
|
||||
New name:
|
||||
== Nyt navn:
|
||||
|
||||
News
|
||||
== Nyheder
|
||||
|
||||
Next weapon
|
||||
== Næste våben
|
||||
|
||||
Nickname
|
||||
== Navn
|
||||
|
||||
No
|
||||
== Nej
|
||||
|
||||
No password
|
||||
== Ingen adgangskode
|
||||
|
||||
No servers found
|
||||
== Ingen servere fundet
|
||||
|
||||
No servers match your filter criteria
|
||||
== Ingen servere matcher din filterkriterier
|
||||
|
||||
Ok
|
||||
== Ok
|
||||
|
||||
Open
|
||||
== Åben
|
||||
|
||||
Parent Folder
|
||||
== Overmappe
|
||||
|
||||
Password
|
||||
== Adgangskode
|
||||
|
||||
Password incorrect
|
||||
== Forkert adgangskode
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistol
|
||||
|
||||
Play
|
||||
== Spil
|
||||
|
||||
Player
|
||||
== Spiller
|
||||
|
||||
Player options
|
||||
== Spillermuligheder
|
||||
|
||||
Players
|
||||
== Spillere
|
||||
|
||||
Please balance teams!
|
||||
== Balancer venligst holdet!
|
||||
|
||||
Prev. weapon
|
||||
== Foregående våben
|
||||
|
||||
Quality Textures
|
||||
== Kvalitetsteksturer
|
||||
|
||||
Quick search:
|
||||
== Hurtig søg:
|
||||
|
||||
Quit
|
||||
== Afslut
|
||||
|
||||
Quit anyway?
|
||||
== Afslut alligevel?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Grund:
|
||||
|
||||
Record demo
|
||||
== Optag demo
|
||||
|
||||
Red team
|
||||
== Rødt hold
|
||||
|
||||
Red team wins!
|
||||
== Rødt hold vinder!
|
||||
|
||||
Refresh
|
||||
== Opdater
|
||||
|
||||
Refreshing master servers
|
||||
== Opdaterer masterservere
|
||||
|
||||
Remote console
|
||||
== Serverkonsol
|
||||
|
||||
Remove
|
||||
== Fjern
|
||||
|
||||
Remove friend
|
||||
== Fjern ven
|
||||
|
||||
Rename
|
||||
== Omdøb navn
|
||||
|
||||
Rename demo
|
||||
== Omdøb navn på demoen
|
||||
|
||||
Reset filter
|
||||
== Nulstil filter
|
||||
|
||||
Reset to defaults
|
||||
== Sæt til standard
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Runde
|
||||
|
||||
Sample rate
|
||||
== Sample frekvens
|
||||
|
||||
Sat.
|
||||
== Mætning
|
||||
|
||||
Score
|
||||
== Score
|
||||
|
||||
Score board
|
||||
== Resultatliste
|
||||
|
||||
Score limit
|
||||
== Score grænse
|
||||
|
||||
Scoreboard
|
||||
== Resultatliste
|
||||
|
||||
Screenshot
|
||||
== Skærmbillede
|
||||
|
||||
Server address:
|
||||
== Serveradresse
|
||||
|
||||
Server details
|
||||
== Serverdetaljer
|
||||
|
||||
Server filter
|
||||
== Serverfilter
|
||||
|
||||
Server info
|
||||
== Serverinfo
|
||||
|
||||
Server not full
|
||||
== Ikke fuld server
|
||||
|
||||
Settings
|
||||
== Indstillinger
|
||||
|
||||
Shotgun
|
||||
== Haglgevær
|
||||
|
||||
Show chat
|
||||
== Vis chat
|
||||
|
||||
Show friends only
|
||||
== Vis venner
|
||||
|
||||
Show ingame HUD
|
||||
== Vis HUD i spillet
|
||||
|
||||
Show name plates
|
||||
== Vis navneskilte
|
||||
|
||||
Show only supported
|
||||
== Vis kun understøttede
|
||||
|
||||
Size:
|
||||
== Størrelse:
|
||||
|
||||
Skins
|
||||
== Udseende
|
||||
|
||||
Sound
|
||||
== Lyd
|
||||
|
||||
Sound error
|
||||
== Lyd fejl
|
||||
|
||||
Sound volume
|
||||
== Lydstyrke
|
||||
|
||||
Spectate
|
||||
== Kig på
|
||||
|
||||
Spectator mode
|
||||
== Tilskuer mode
|
||||
|
||||
Spectators
|
||||
== Tilskuer
|
||||
|
||||
Standard gametype
|
||||
== Standard spilletype
|
||||
|
||||
Standard map
|
||||
== Standard map
|
||||
|
||||
Stop record
|
||||
== Stop optagelse
|
||||
|
||||
Sudden Death
|
||||
== Sudden Death
|
||||
|
||||
Switch weapon on pickup
|
||||
== Byt våben ved anskafning
|
||||
|
||||
Team
|
||||
== Hold
|
||||
|
||||
Team chat
|
||||
== Holdchat
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworld %s er ude nu! Download den på www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Teksturkompression
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Lydenheden kunne ikke startes
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Denne server kører på en ikke-standard tuning på en ren spilletype.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Der er en ikke-gemt bane i editoren, vil du gemme den før du afslutter?
|
||||
|
||||
Time limit
|
||||
== Tidsbegrænsning
|
||||
|
||||
Time limit: %d min
|
||||
== Tidsbegrænsning: %d min
|
||||
|
||||
Try again
|
||||
== Forsøg igen
|
||||
|
||||
Type
|
||||
== Type
|
||||
|
||||
Type:
|
||||
== Type:
|
||||
|
||||
UI Color
|
||||
== Brugergrænseflade farve
|
||||
|
||||
Unable to delete the demo
|
||||
== Kunne ikke slette demoen
|
||||
|
||||
Unable to rename the demo
|
||||
== Kunne ikke omdøbe demoen
|
||||
|
||||
Use sounds
|
||||
== Anvend lydeffekter
|
||||
|
||||
Use team colors for name plates
|
||||
== Anvend holdfarver til navneskilte
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Version
|
||||
|
||||
Version:
|
||||
== Version:
|
||||
|
||||
Vote command:
|
||||
== Afstemningsordre:
|
||||
|
||||
Vote description:
|
||||
== Afstemningsbeskrivelse:
|
||||
|
||||
Vote no
|
||||
== Stem nej
|
||||
|
||||
Vote yes
|
||||
== Stem ja
|
||||
|
||||
Voting
|
||||
== Afstemning
|
||||
|
||||
Warmup
|
||||
== Opvarmning
|
||||
|
||||
Weapon
|
||||
== Våben
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Velkommen til Teeworlds
|
||||
|
||||
Yes
|
||||
== Ja
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Du skal genstarte spillet før alle indstillingerne virker.
|
||||
|
||||
Your skin
|
||||
== Dit udseende
|
||||
|
||||
no limit
|
||||
== Ingen grænse
|
||||
|
||||
Demofile: %s
|
||||
== Demo fil: %s
|
||||
|
||||
Play background music
|
||||
== Spil baggrunds musik
|
||||
|
||||
Player country:
|
||||
== Spillernes land:
|
||||
|
||||
Spectate next
|
||||
== Kig på næste
|
||||
|
||||
Spectate previous
|
||||
== Kig på forrige
|
||||
|
||||
Strict gametype filter
|
||||
== Streng spiltype filter
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bytes
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d van %d Servers, %d spelers
|
||||
|
||||
%d%% loaded
|
||||
== %d%% is geladen
|
||||
|
||||
%ds left
|
||||
== %ds over
|
||||
|
||||
%i minute left
|
||||
== nog %i minuut
|
||||
|
||||
%i minutes left
|
||||
== nog %i minuten
|
||||
|
||||
%i second left
|
||||
== nog %i seconde
|
||||
|
||||
%i seconds left
|
||||
== nog %i seconden
|
||||
|
||||
%s wins!
|
||||
== %s wint!
|
||||
|
||||
-Page %d-
|
||||
== -Pagina %d-
|
||||
|
||||
Abort
|
||||
== Afbreken
|
||||
|
||||
Add
|
||||
== Toevoegen
|
||||
|
||||
Add Friend
|
||||
== Voeg vriend toe
|
||||
|
||||
Address
|
||||
== Adres
|
||||
|
||||
All
|
||||
== Alle
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Altijd naamplaten laten zien
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Weet je zeker dat je de demo wil verwijderen?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Weet je zeker dat je wil stoppen?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Weet je zeker dat je deze speler uit je vriendenlijst wilt verwijderen?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Omdat dit de eerste keer is dat je het spel opstart, moet je een bijnaam kiezen. Doe dat hieronder. Het is aanbevolen om de instellingen te controleren voordat je een spel start.
|
||||
|
||||
Automatically record demos
|
||||
== Automatisch demo's opnemen
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Automatisch schermafbeeldingen nemen
|
||||
|
||||
Blue team
|
||||
== Blauwe team
|
||||
|
||||
Blue team wins!
|
||||
== Blauwe team wint!
|
||||
|
||||
Body
|
||||
== Lichaam
|
||||
|
||||
Call vote
|
||||
== Stem
|
||||
|
||||
Change settings
|
||||
== Verander instellingen
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Clan
|
||||
|
||||
Client
|
||||
== Client
|
||||
|
||||
Close
|
||||
== Sluiten
|
||||
|
||||
Compatible version
|
||||
== Samenwerkende versie
|
||||
|
||||
Connect
|
||||
== Verbinden
|
||||
|
||||
Connecting to
|
||||
== Verbinden met
|
||||
|
||||
Connection Problems...
|
||||
== Verbindingsproblemen...
|
||||
|
||||
Console
|
||||
== Console
|
||||
|
||||
Controls
|
||||
== Besturing
|
||||
|
||||
Count players only
|
||||
== Tel alleen spelers
|
||||
|
||||
Country
|
||||
== Land
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Gemaakt:
|
||||
|
||||
Current
|
||||
== Huidig
|
||||
|
||||
Current version: %s
|
||||
== Huidige versie: %s
|
||||
|
||||
Custom colors
|
||||
== Aangepaste kleuren
|
||||
|
||||
Delete
|
||||
== Verwijder
|
||||
|
||||
Delete demo
|
||||
== Verwijder demo
|
||||
|
||||
Demo details
|
||||
== Demo details
|
||||
|
||||
Demofile: %s
|
||||
== Demobestand: %s
|
||||
|
||||
Demos
|
||||
== Demo's
|
||||
|
||||
Disconnect
|
||||
== Stoppen
|
||||
|
||||
Disconnected
|
||||
== Verbinding verbroken
|
||||
|
||||
Display Modes
|
||||
== Laat modes zien
|
||||
|
||||
Downloading map
|
||||
== Kaart downloaden
|
||||
|
||||
Draw!
|
||||
== Gelijkspel!
|
||||
|
||||
Dynamic Camera
|
||||
== Dynamische camera
|
||||
|
||||
Emoticon
|
||||
== Emoticon
|
||||
|
||||
Enter
|
||||
== Starten
|
||||
|
||||
Error
|
||||
== Fout
|
||||
|
||||
Error loading demo
|
||||
== Fout bij laden demo
|
||||
|
||||
FSAA samples
|
||||
== FSAA samples
|
||||
|
||||
Favorite
|
||||
== Favoriet
|
||||
|
||||
Favorites
|
||||
== Favorieten
|
||||
|
||||
Feet
|
||||
== Voeten
|
||||
|
||||
Filter
|
||||
== Filter
|
||||
|
||||
Fire
|
||||
== Schieten
|
||||
|
||||
Folder
|
||||
== Map
|
||||
|
||||
Force vote
|
||||
== Forceer stem
|
||||
|
||||
Free-View
|
||||
== Vrij bewegen
|
||||
|
||||
Friends
|
||||
== Vrienden
|
||||
|
||||
Fullscreen
|
||||
== Volledig scherm
|
||||
|
||||
Game
|
||||
== Spel
|
||||
|
||||
Game info
|
||||
== Spelinfo
|
||||
|
||||
Game over
|
||||
== Spel afgelopen
|
||||
|
||||
Game type
|
||||
== Speltype
|
||||
|
||||
Game types:
|
||||
== Speltypes:
|
||||
|
||||
General
|
||||
== Algemeen
|
||||
|
||||
Graphics
|
||||
== Beeld
|
||||
|
||||
Grenade
|
||||
== Granaat
|
||||
|
||||
Hammer
|
||||
== Hamer
|
||||
|
||||
Has people playing
|
||||
== Mensen in server
|
||||
|
||||
High Detail
|
||||
== Veel details
|
||||
|
||||
Hook
|
||||
== Haak
|
||||
|
||||
Host address
|
||||
== Server adres
|
||||
|
||||
Hue
|
||||
== Tint
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Ongeldige demo
|
||||
|
||||
Join blue
|
||||
== Ga bij blauw
|
||||
|
||||
Join game
|
||||
== Binnenkomen
|
||||
|
||||
Join red
|
||||
== Ga bij rood
|
||||
|
||||
Jump
|
||||
== Springen
|
||||
|
||||
Kick player
|
||||
== Kick speler
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Taal
|
||||
|
||||
Length:
|
||||
== Lengte:
|
||||
|
||||
Lht.
|
||||
== Licht
|
||||
|
||||
Loading
|
||||
== Laden
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Kaart
|
||||
|
||||
Map:
|
||||
== Kaart:
|
||||
|
||||
Max Screenshots
|
||||
== Maximaal aantal schermafbeeldingen
|
||||
|
||||
Max demos
|
||||
== Maximaal aantal demo's
|
||||
|
||||
Maximum ping:
|
||||
== Hoogste ping:
|
||||
|
||||
Miscellaneous
|
||||
== Diverse
|
||||
|
||||
Mouse sens.
|
||||
== Muis resolutie
|
||||
|
||||
Move left
|
||||
== Naar links
|
||||
|
||||
Move player to spectators
|
||||
== Verplaats speler naar toeschouwers
|
||||
|
||||
Move right
|
||||
== Naar rechts
|
||||
|
||||
Movement
|
||||
== Bewegen
|
||||
|
||||
Mute when not active
|
||||
== Dempen wanneer inactief
|
||||
|
||||
Name
|
||||
== Naam
|
||||
|
||||
Name plates size
|
||||
== Grootte naamplaat
|
||||
|
||||
Netversion:
|
||||
== Netversie:
|
||||
|
||||
New name:
|
||||
== Nieuwe naam:
|
||||
|
||||
News
|
||||
== Nieuws
|
||||
|
||||
Next weapon
|
||||
== Volgend wapen
|
||||
|
||||
Nickname
|
||||
== Bijnaam
|
||||
|
||||
No
|
||||
== Nee
|
||||
|
||||
No password
|
||||
== Geen wachtwoord
|
||||
|
||||
No servers found
|
||||
== Geen servers gevonden
|
||||
|
||||
No servers match your filter criteria
|
||||
== Geen servers gevonden op zoekopdracht
|
||||
|
||||
Ok
|
||||
== Oké
|
||||
|
||||
Open
|
||||
== Open
|
||||
|
||||
Parent Folder
|
||||
== Bovenliggende map
|
||||
|
||||
Password
|
||||
== Wachtwoord
|
||||
|
||||
Password incorrect
|
||||
== Wachtwoord verkeerd
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistool
|
||||
|
||||
Play
|
||||
== Spelen
|
||||
|
||||
Play background music
|
||||
== Speel achtergrondmuziek
|
||||
|
||||
Player
|
||||
== Speler
|
||||
|
||||
Player country:
|
||||
== Speler land:
|
||||
|
||||
Player options
|
||||
== Speler opties
|
||||
|
||||
Players
|
||||
== Spelers
|
||||
|
||||
Please balance teams!
|
||||
== Balanceer teams!
|
||||
|
||||
Prev. weapon
|
||||
== Vorig wapen
|
||||
|
||||
Quality Textures
|
||||
== Structuurkwaliteit
|
||||
|
||||
Quick search:
|
||||
== Snel zoeken:
|
||||
|
||||
Quit
|
||||
== Afsluiten
|
||||
|
||||
Quit anyway?
|
||||
== Toch afsluiten?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Reden:
|
||||
|
||||
Record demo
|
||||
== Neem demo op
|
||||
|
||||
Red team
|
||||
== Rode team
|
||||
|
||||
Red team wins!
|
||||
== Rode team wint!
|
||||
|
||||
Refresh
|
||||
== Vernieuwen
|
||||
|
||||
Refreshing master servers
|
||||
== Masterservers vernieuwen
|
||||
|
||||
Remote console
|
||||
== Remote console
|
||||
|
||||
Remove
|
||||
== Verwijderen
|
||||
|
||||
Remove friend
|
||||
== Verwijder vriend
|
||||
|
||||
Rename
|
||||
== Hernoem
|
||||
|
||||
Rename demo
|
||||
== Hernoem demo
|
||||
|
||||
Reset filter
|
||||
== Herstel filter
|
||||
|
||||
Reset to defaults
|
||||
== Standaardinstellingen
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Ronde
|
||||
|
||||
Sample rate
|
||||
== Voorbeeldssnelheid
|
||||
|
||||
Sat.
|
||||
== Verz.
|
||||
|
||||
Score
|
||||
== Score
|
||||
|
||||
Score board
|
||||
== Score bord
|
||||
|
||||
Score limit
|
||||
== Score limiet
|
||||
|
||||
Scoreboard
|
||||
== Scorebord
|
||||
|
||||
Screenshot
|
||||
== Schermafbeelding
|
||||
|
||||
Server address:
|
||||
== Serveradres:
|
||||
|
||||
Server details
|
||||
== Serverdetails
|
||||
|
||||
Server filter
|
||||
== Serverfilter
|
||||
|
||||
Server info
|
||||
== Serverinfo
|
||||
|
||||
Server not full
|
||||
== Server niet vol
|
||||
|
||||
Settings
|
||||
== Instellingen
|
||||
|
||||
Shotgun
|
||||
== Geweer
|
||||
|
||||
Show chat
|
||||
== Laat chat zien
|
||||
|
||||
Show friends only
|
||||
== Laat vrienden zien
|
||||
|
||||
Show ingame HUD
|
||||
== Laat ingame HUD zien
|
||||
|
||||
Show name plates
|
||||
== Laat naamplaat zien
|
||||
|
||||
Show only supported
|
||||
== Laat alleen compatibele servers zien
|
||||
|
||||
Size:
|
||||
== Grootte:
|
||||
|
||||
Skins
|
||||
== Skins
|
||||
|
||||
Sound
|
||||
== Geluid
|
||||
|
||||
Sound error
|
||||
== Geluidsfout
|
||||
|
||||
Sound volume
|
||||
== Volume
|
||||
|
||||
Spectate
|
||||
== Toekijken
|
||||
|
||||
Spectate next
|
||||
== Volg volgende speler
|
||||
|
||||
Spectate previous
|
||||
== Volg vorige speler
|
||||
|
||||
Spectator mode
|
||||
== Toeschouwer modus
|
||||
|
||||
Spectators
|
||||
== Toeschouwers
|
||||
|
||||
Standard gametype
|
||||
== Standaard speltype
|
||||
|
||||
Standard map
|
||||
== Standaard kaart
|
||||
|
||||
Stop record
|
||||
== Stop met opnemen
|
||||
|
||||
Strict gametype filter
|
||||
== Strikt speltype filter
|
||||
|
||||
Sudden Death
|
||||
== Sudden Death
|
||||
|
||||
Switch weapon on pickup
|
||||
== Verander wapen bij het oppakken
|
||||
|
||||
Team
|
||||
== Team
|
||||
|
||||
Team chat
|
||||
== Team chat
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s is uit! Download het op www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Structuurscompressie
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Het geluid kon niet worden geladen.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== The server draait geen standaard spel type.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Er is een onopgeslagen kaart in de editor, misschien wil je deze opslaan voordat je stopt.
|
||||
|
||||
Time limit
|
||||
== Tijdslimiet
|
||||
|
||||
Time limit: %d min
|
||||
== Tijdslimiet: %d minuten
|
||||
|
||||
Try again
|
||||
== Probeer opnieuw
|
||||
|
||||
Type
|
||||
== Type
|
||||
|
||||
Type:
|
||||
== Type:
|
||||
|
||||
UI Color
|
||||
== UI kleur
|
||||
|
||||
Unable to delete the demo
|
||||
== Demo kon niet worden verwijderd
|
||||
|
||||
Unable to rename the demo
|
||||
== Niet mogelijk om de demo te hernoemen
|
||||
|
||||
Use sounds
|
||||
== Gebruik geluid
|
||||
|
||||
Use team colors for name plates
|
||||
== Gebruik teamkleuren voor naamplaten
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Versie
|
||||
|
||||
Version:
|
||||
== Versie:
|
||||
|
||||
Vote command:
|
||||
== Stem commando:
|
||||
|
||||
Vote description:
|
||||
== Stem omschrijving:
|
||||
|
||||
Vote no
|
||||
== Stem nee
|
||||
|
||||
Vote yes
|
||||
== Stem ja
|
||||
|
||||
Voting
|
||||
== Stemmen
|
||||
|
||||
Warmup
|
||||
== Opwarmen
|
||||
|
||||
Weapon
|
||||
== Wapen
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Welkom bij Teeworlds
|
||||
|
||||
Yes
|
||||
== Ja
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== U moet het spel herstarten voordat de veranderingen effect hebben.
|
||||
|
||||
Your skin
|
||||
== Jouw skin
|
||||
|
||||
no limit
|
||||
== ongelimiteerd
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d tavua
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d/%d palvelinta, %d pelaajaa
|
||||
|
||||
%d%% loaded
|
||||
== %d%% ladattu
|
||||
|
||||
%ds left
|
||||
== %ds jäljellä
|
||||
|
||||
%i minute left
|
||||
== %i minuutti jäljellä
|
||||
|
||||
%i minutes left
|
||||
== %i minuuttia jäljellä
|
||||
|
||||
%i second left
|
||||
== %i sekunti jäljellä
|
||||
|
||||
%i seconds left
|
||||
== %i sekuntia jäljellä
|
||||
|
||||
%s wins!
|
||||
== %s voitti!
|
||||
|
||||
-Page %d-
|
||||
== -Sivu %d-
|
||||
|
||||
Abort
|
||||
== Keskeytä
|
||||
|
||||
Add
|
||||
== Lisää
|
||||
|
||||
Add Friend
|
||||
== Lisää ystävä
|
||||
|
||||
Address
|
||||
== Osoite
|
||||
|
||||
All
|
||||
== Kaikki
|
||||
|
||||
Alpha
|
||||
== Alfa
|
||||
|
||||
Always show name plates
|
||||
== Näytä nimikyltit aina
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Oletko varma, että haluat poistaa demon?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Oletko varma, että haluat lopettaa?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Oletko varma, että haluat poistaa pelaajan ystävälistaltasi?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Tämä on ensimmäinen kerta kun käynnistät pelin, ole hyvä ja kirjoita nimimerkkisi alle. On suositeltua, että tarkistat asetukset ja muutat niitä mielesi mukaan ennen kuin liityt palvelimille.
|
||||
|
||||
Automatically record demos
|
||||
== Nauhoita demot automaattisesti
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Ota pelin jälkeinen kuvankaappaus autom.
|
||||
|
||||
Blue team
|
||||
== Sininen joukkue
|
||||
|
||||
Blue team wins!
|
||||
== Sininen joukkue voitti!
|
||||
|
||||
Body
|
||||
== Vartalo
|
||||
|
||||
Call vote
|
||||
== Aloita äänestys
|
||||
|
||||
Change settings
|
||||
== Muuta asetuksia
|
||||
|
||||
Chat
|
||||
== Chatti
|
||||
|
||||
Clan
|
||||
== Klaani
|
||||
|
||||
Client
|
||||
== Asiakasohjelma
|
||||
|
||||
Close
|
||||
== Sulje
|
||||
|
||||
Compatible version
|
||||
== Yhteensopiva versio
|
||||
|
||||
Connect
|
||||
== Yhdistä
|
||||
|
||||
Connecting to
|
||||
== Yhdistetään
|
||||
|
||||
Connection Problems...
|
||||
== Yhteysongelmia...
|
||||
|
||||
Console
|
||||
== Konsoli
|
||||
|
||||
Controls
|
||||
== Kontrollit
|
||||
|
||||
Count players only
|
||||
== Laske vain pelaajat
|
||||
|
||||
Country
|
||||
== Maa
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Luotu:
|
||||
|
||||
Current
|
||||
== Nykyinen
|
||||
|
||||
Current version: %s
|
||||
== Nykyinen versio: %s
|
||||
|
||||
Custom colors
|
||||
== Omat värit
|
||||
|
||||
Delete
|
||||
== Poista
|
||||
|
||||
Delete demo
|
||||
== Poista demo
|
||||
|
||||
Demo details
|
||||
== Demon tiedot
|
||||
|
||||
Demofile: %s
|
||||
== Demotiedosto: %s
|
||||
|
||||
Demos
|
||||
== Demot
|
||||
|
||||
Disconnect
|
||||
== Katk. yhteys
|
||||
|
||||
Disconnected
|
||||
== Yhteys katkaistu
|
||||
|
||||
Display Modes
|
||||
== Näyttötilat
|
||||
|
||||
Downloading map
|
||||
== Ladataan kenttää
|
||||
|
||||
Draw!
|
||||
== Tasapeli!
|
||||
|
||||
Dynamic Camera
|
||||
== Dynaaminen kamera
|
||||
|
||||
Emoticon
|
||||
== Hymiö
|
||||
|
||||
Enter
|
||||
== Jatka
|
||||
|
||||
Error
|
||||
== Virhe
|
||||
|
||||
Error loading demo
|
||||
== Virhe ladattaessa demoa
|
||||
|
||||
FSAA samples
|
||||
== FSAA näytteet
|
||||
|
||||
Favorite
|
||||
== Suosikki
|
||||
|
||||
Favorites
|
||||
== Suosikit
|
||||
|
||||
Feet
|
||||
== Jalat
|
||||
|
||||
Filter
|
||||
== Suotimet
|
||||
|
||||
Fire
|
||||
== Ammu
|
||||
|
||||
Folder
|
||||
== Kansio
|
||||
|
||||
Force vote
|
||||
== Päätä äänestys
|
||||
|
||||
Free-View
|
||||
== Vapaa näkymä
|
||||
|
||||
Friends
|
||||
== Ystävät
|
||||
|
||||
Fullscreen
|
||||
== Koko näyttö
|
||||
|
||||
Game
|
||||
== Peli
|
||||
|
||||
Game info
|
||||
== Pelin tiedot
|
||||
|
||||
Game over
|
||||
== Peli loppui
|
||||
|
||||
Game type
|
||||
== Pelityyppi
|
||||
|
||||
Game types:
|
||||
== Pelityypit:
|
||||
|
||||
General
|
||||
== Yleinen
|
||||
|
||||
Graphics
|
||||
== Grafiikat
|
||||
|
||||
Grenade
|
||||
== Kranaatti
|
||||
|
||||
Hammer
|
||||
== Nuija
|
||||
|
||||
Has people playing
|
||||
== Ihmisiä pelaamassa
|
||||
|
||||
High Detail
|
||||
== Korkea yksityiskohtataso
|
||||
|
||||
Hook
|
||||
== Koukku
|
||||
|
||||
Host address
|
||||
== Palvelimen osoite
|
||||
|
||||
Hue
|
||||
== Värisävy
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Epäkelpo demo
|
||||
|
||||
Join blue
|
||||
== Liity sinisiin
|
||||
|
||||
Join game
|
||||
== Liity peliin
|
||||
|
||||
Join red
|
||||
== Liity punaisiin
|
||||
|
||||
Jump
|
||||
== Hyppää
|
||||
|
||||
Kick player
|
||||
== Potkaise pelaaja
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Kieli
|
||||
|
||||
Length:
|
||||
== Pituus:
|
||||
|
||||
Lht.
|
||||
== Valoisuus
|
||||
|
||||
Loading
|
||||
== Ladataan
|
||||
|
||||
MOTD
|
||||
== Palvelimen viesti
|
||||
|
||||
Map
|
||||
== Kenttä
|
||||
|
||||
Map:
|
||||
== Kenttä:
|
||||
|
||||
Max Screenshots
|
||||
== Kuvankaappausmaksimi
|
||||
|
||||
Max demos
|
||||
== Demomaksimi
|
||||
|
||||
Maximum ping:
|
||||
== Maksimiping:
|
||||
|
||||
Miscellaneous
|
||||
== Sekalaista
|
||||
|
||||
Mouse sens.
|
||||
== Hiiren herkkyys
|
||||
|
||||
Move left
|
||||
== Liiku vasemmalle
|
||||
|
||||
Move player to spectators
|
||||
== Siirrä pelaaja katsojaksi
|
||||
|
||||
Move right
|
||||
== Liiku oikealle
|
||||
|
||||
Movement
|
||||
== Liike
|
||||
|
||||
Mute when not active
|
||||
== Mykistä, kun ei aktiivinen
|
||||
|
||||
Name
|
||||
== Nimi
|
||||
|
||||
Name plates size
|
||||
== Nimikylttien koko
|
||||
|
||||
Netversion:
|
||||
== Yhteysversio:
|
||||
|
||||
New name:
|
||||
== Uusi nimi:
|
||||
|
||||
News
|
||||
== Uutiset
|
||||
|
||||
Next weapon
|
||||
== Seuraava ase
|
||||
|
||||
Nickname
|
||||
== Nimimerkki
|
||||
|
||||
No
|
||||
== Ei
|
||||
|
||||
No password
|
||||
== Ei salasanaa
|
||||
|
||||
No servers found
|
||||
== Palvelimia ei löytynyt
|
||||
|
||||
No servers match your filter criteria
|
||||
== Yksikään palvelin ei täyttänyt suodinkriteerejäsi
|
||||
|
||||
Ok
|
||||
== Ok
|
||||
|
||||
Open
|
||||
== Avaa
|
||||
|
||||
Parent Folder
|
||||
== Yläkansio
|
||||
|
||||
Password
|
||||
== Salasana
|
||||
|
||||
Password incorrect
|
||||
== Väärä salasana
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistooli
|
||||
|
||||
Play
|
||||
== Toista
|
||||
|
||||
Play background music
|
||||
== Soita taustamusiikki
|
||||
|
||||
Player
|
||||
== Pelaaja
|
||||
|
||||
Player country:
|
||||
== Pelaajan maa:
|
||||
|
||||
Player options
|
||||
== Pelaajavalinnat
|
||||
|
||||
Players
|
||||
== Pelaajat
|
||||
|
||||
Please balance teams!
|
||||
== Ole hyvä ja tasoita joukkueita!
|
||||
|
||||
Prev. weapon
|
||||
== Edellinen ase
|
||||
|
||||
Quality Textures
|
||||
== Hyvälaatuiset tekstuurit
|
||||
|
||||
Quick search:
|
||||
== Pikahaku:
|
||||
|
||||
Quit
|
||||
== Lopeta
|
||||
|
||||
Quit anyway?
|
||||
== Lopeta siitä huolimatta?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Syy:
|
||||
|
||||
Record demo
|
||||
== Nauhoita demo
|
||||
|
||||
Red team
|
||||
== Punainen joukkue
|
||||
|
||||
Red team wins!
|
||||
== Punainen joukkue voitti!
|
||||
|
||||
Refresh
|
||||
== Päivitä
|
||||
|
||||
Refreshing master servers
|
||||
== Päivitetään isäntäpalvelimia
|
||||
|
||||
Remote console
|
||||
== Etäkonsoli
|
||||
|
||||
Remove
|
||||
== Poista
|
||||
|
||||
Remove friend
|
||||
== Poista ystävä
|
||||
|
||||
Rename
|
||||
== Nimeä
|
||||
|
||||
Rename demo
|
||||
== Uudelleennimeä demo
|
||||
|
||||
Reset filter
|
||||
== Nollaa suotimet
|
||||
|
||||
Reset to defaults
|
||||
== Palaa oletusasetuksiin
|
||||
|
||||
Rifle
|
||||
== Kivääri
|
||||
|
||||
Round
|
||||
== Kierros
|
||||
|
||||
Sample rate
|
||||
== Näytteenottotaajuus
|
||||
|
||||
Sat.
|
||||
== Kyllästys
|
||||
|
||||
Score
|
||||
== Pisteet
|
||||
|
||||
Score board
|
||||
== Tulostaulu
|
||||
|
||||
Score limit
|
||||
== Pisteraja
|
||||
|
||||
Scoreboard
|
||||
== Tuloslista
|
||||
|
||||
Screenshot
|
||||
== Kuvankaappaus
|
||||
|
||||
Server address:
|
||||
== Palvelimen osoite:
|
||||
|
||||
Server details
|
||||
== Palvelimen yksityiskohdat
|
||||
|
||||
Server filter
|
||||
== Palvelinsuotimet
|
||||
|
||||
Server info
|
||||
== Palvelintiedot
|
||||
|
||||
Server not full
|
||||
== Palvelin ei täysi
|
||||
|
||||
Settings
|
||||
== Asetukset
|
||||
|
||||
Shotgun
|
||||
== Haulikko
|
||||
|
||||
Show chat
|
||||
== Näytä chatti
|
||||
|
||||
Show friends only
|
||||
== Näytä vain ystävät
|
||||
|
||||
Show ingame HUD
|
||||
== Näytä peli-HUD
|
||||
|
||||
Show name plates
|
||||
== Näytä nimikyltit
|
||||
|
||||
Show only supported
|
||||
== Näytä vain tuetut
|
||||
|
||||
Size:
|
||||
== Koko:
|
||||
|
||||
Skins
|
||||
== Ulkonäkö
|
||||
|
||||
Sound
|
||||
== Äänet
|
||||
|
||||
Sound error
|
||||
== Äänivirhe
|
||||
|
||||
Sound volume
|
||||
== Äänenvoimakkuus
|
||||
|
||||
Spectate
|
||||
== Katso
|
||||
|
||||
Spectate next
|
||||
== Katso seuraavaa
|
||||
|
||||
Spectate previous
|
||||
== Katso edellistä
|
||||
|
||||
Spectator mode
|
||||
== Katsojatila
|
||||
|
||||
Spectators
|
||||
== Katsojat
|
||||
|
||||
Standard gametype
|
||||
== Standardipelityyppi
|
||||
|
||||
Standard map
|
||||
== Standardikenttä
|
||||
|
||||
Stop record
|
||||
== Lopeta nauhoit.
|
||||
|
||||
Strict gametype filter
|
||||
== Tarkka pelityyppisuodin
|
||||
|
||||
Sudden Death
|
||||
== Äkkikuolema
|
||||
|
||||
Switch weapon on pickup
|
||||
== Vaihda asetta nostaessasi uuden
|
||||
|
||||
Team
|
||||
== Joukkue
|
||||
|
||||
Team chat
|
||||
== Joukkuechatti
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s on julkaistu! Lataa se osoitteesta www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Tekstuuripakkaus
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Äänilaitteen alustaminen ei onnistunut.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Tämä palvelin ajaa ei-standardeja virityksiä standardipelityypillä.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Editorissa on tallentamaton kenttä, saatat haluta tallentaa sen ennen kuin lopetat pelin.
|
||||
|
||||
Time limit
|
||||
== Aikaraja
|
||||
|
||||
Time limit: %d min
|
||||
== Aikaraja: %d min
|
||||
|
||||
Try again
|
||||
== Yritä uudelleen
|
||||
|
||||
Type
|
||||
== Tyyppi
|
||||
|
||||
Type:
|
||||
== Tyyppi:
|
||||
|
||||
UI Color
|
||||
== Käyttöliittymäväri
|
||||
|
||||
Unable to delete the demo
|
||||
== Demon poistaminen ei onnistunut
|
||||
|
||||
Unable to rename the demo
|
||||
== Demon nimeäminen ei onnistunut
|
||||
|
||||
Use sounds
|
||||
== Käytä ääniefektejä
|
||||
|
||||
Use team colors for name plates
|
||||
== Käytä joukkueiden värejä nimikylteissä
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Versio
|
||||
|
||||
Version:
|
||||
== Versio:
|
||||
|
||||
Vote command:
|
||||
== Äänestyskäsky:
|
||||
|
||||
Vote description:
|
||||
== Äänestyksen kuvaus:
|
||||
|
||||
Vote no
|
||||
== Äänestä ei
|
||||
|
||||
Vote yes
|
||||
== Äänestä kyllä
|
||||
|
||||
Voting
|
||||
== Äänestys
|
||||
|
||||
Warmup
|
||||
== Lämmittely
|
||||
|
||||
Weapon
|
||||
== Ase
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Tervetuloa Teeworldsiin
|
||||
|
||||
Yes
|
||||
== Kyllä
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Sinun täytyy uudelleenkäynnistää peli, jotta kaikki asetukset tulisivat voimaan.
|
||||
|
||||
Your skin
|
||||
== Sinun ulkonäkösi
|
||||
|
||||
no limit
|
||||
== ei rajaa
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d octets
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d/%d serveurs, %d joueurs
|
||||
|
||||
%d%% loaded
|
||||
== %d%% chargé
|
||||
|
||||
%ds left
|
||||
== %ds restantes
|
||||
|
||||
%i minute left
|
||||
== %i minute restante
|
||||
|
||||
%i minutes left
|
||||
== %i minutes restantes
|
||||
|
||||
%i second left
|
||||
== %i seconde restante
|
||||
|
||||
%i seconds left
|
||||
== %i secondes restantes
|
||||
|
||||
%s wins!
|
||||
== %s gagne !
|
||||
|
||||
-Page %d-
|
||||
== -Page %d-
|
||||
|
||||
Abort
|
||||
== Annuler
|
||||
|
||||
Add
|
||||
== Ajouter
|
||||
|
||||
Add Friend
|
||||
== Ajouter aux amis
|
||||
|
||||
Address
|
||||
== Adresse
|
||||
|
||||
All
|
||||
== Tout le monde
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Toujours afficher les pseudonymes
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Êtes-vous sûr de vouloir supprimer cette démo ?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Êtes-vous sûr de vouloir quitter ?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Êtes-vous sûr de vouloir enlever le joueur de votre liste d'amis ?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Comme c'est la première fois que vous lancez le jeu, veuillez entrer votre pseudonyme ci-dessous. Vous devriez vérifier les réglages et les ajuster avant de rejoindre un serveur.
|
||||
|
||||
Automatically record demos
|
||||
== Enregistrer automatiquement une démo
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Sauvegarder les résultats à la fin de la partie
|
||||
|
||||
Blue team
|
||||
== Équipe bleue
|
||||
|
||||
Blue team wins!
|
||||
== L'équipe bleue gagne !
|
||||
|
||||
Body
|
||||
== Corps
|
||||
|
||||
Call vote
|
||||
== Voter
|
||||
|
||||
Change settings
|
||||
== Changer les options
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Clan
|
||||
|
||||
Client
|
||||
== Client
|
||||
|
||||
Close
|
||||
== Fermer
|
||||
|
||||
Compatible version
|
||||
== Version compatible
|
||||
|
||||
Connect
|
||||
== Connecter
|
||||
|
||||
Connecting to
|
||||
== Connexion à
|
||||
|
||||
Connection Problems...
|
||||
== Problèmes de connexion...
|
||||
|
||||
Console
|
||||
== Console
|
||||
|
||||
Controls
|
||||
== Contrôles
|
||||
|
||||
Count players only
|
||||
== Seulement les joueurs
|
||||
|
||||
Country
|
||||
== Pays
|
||||
|
||||
Crc:
|
||||
== Crc :
|
||||
|
||||
Created:
|
||||
== Créé le :
|
||||
|
||||
Current
|
||||
== Actuellement
|
||||
|
||||
Current version: %s
|
||||
== Version actuelle : %s
|
||||
|
||||
Custom colors
|
||||
== Couleurs personnalisées
|
||||
|
||||
Delete
|
||||
== Supprimer
|
||||
|
||||
Delete demo
|
||||
== Supprimer la démo
|
||||
|
||||
Demo details
|
||||
== Détails de la démo
|
||||
|
||||
Demofile: %s
|
||||
== Démo : %s
|
||||
|
||||
Demos
|
||||
== Démos
|
||||
|
||||
Disconnect
|
||||
== Partir
|
||||
|
||||
Disconnected
|
||||
== Déconnecté
|
||||
|
||||
Display Modes
|
||||
== Résolutions
|
||||
|
||||
Downloading map
|
||||
== Téléchargement de la carte
|
||||
|
||||
Draw!
|
||||
== Égalité !
|
||||
|
||||
Dynamic Camera
|
||||
== Caméra dynamique
|
||||
|
||||
Emoticon
|
||||
== Émoticônes
|
||||
|
||||
Enter
|
||||
== Démarrer
|
||||
|
||||
Error
|
||||
== Erreur
|
||||
|
||||
Error loading demo
|
||||
== Erreur pendant le chargement de la démo
|
||||
|
||||
FSAA samples
|
||||
== Échantillons FSAA
|
||||
|
||||
Favorite
|
||||
== Favori
|
||||
|
||||
Favorites
|
||||
== Favoris
|
||||
|
||||
Feet
|
||||
== Pieds
|
||||
|
||||
Filter
|
||||
== Filtre
|
||||
|
||||
Fire
|
||||
== Tirer
|
||||
|
||||
Folder
|
||||
== Dossier
|
||||
|
||||
Force vote
|
||||
== Forcer le vote
|
||||
|
||||
Free-View
|
||||
== Vue libre
|
||||
|
||||
Friends
|
||||
== Amis
|
||||
|
||||
Fullscreen
|
||||
== Plein écran
|
||||
|
||||
Game
|
||||
== Jeu
|
||||
|
||||
Game info
|
||||
== Info. jeu
|
||||
|
||||
Game over
|
||||
== Fin de la partie
|
||||
|
||||
Game type
|
||||
== Type de jeu
|
||||
|
||||
Game types:
|
||||
== Types de jeu :
|
||||
|
||||
General
|
||||
== Général
|
||||
|
||||
Graphics
|
||||
== Affichage
|
||||
|
||||
Grenade
|
||||
== Lance-grenade
|
||||
|
||||
Hammer
|
||||
== Maillet
|
||||
|
||||
Has people playing
|
||||
== Au moins un joueur
|
||||
|
||||
High Detail
|
||||
== Tous les détails
|
||||
|
||||
Hook
|
||||
== Grappin
|
||||
|
||||
Host address
|
||||
== Adresse hôte
|
||||
|
||||
Hue
|
||||
== Teinte
|
||||
|
||||
Info
|
||||
== Info.
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Démo invalide
|
||||
|
||||
Join blue
|
||||
== Rej. Bleus
|
||||
|
||||
Join game
|
||||
== Rejoindre
|
||||
|
||||
Join red
|
||||
== Rej. Rouges
|
||||
|
||||
Jump
|
||||
== Sauter
|
||||
|
||||
Kick player
|
||||
== Éjecter un joueur
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Langue
|
||||
|
||||
Length:
|
||||
== Longueur :
|
||||
|
||||
Lht.
|
||||
== Luminosité
|
||||
|
||||
Loading
|
||||
== Chargement
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Carte
|
||||
|
||||
Map:
|
||||
== Carte :
|
||||
|
||||
Max Screenshots
|
||||
== Nombre maximum de captures d'écran
|
||||
|
||||
Max demos
|
||||
== Nombre maximum de démos
|
||||
|
||||
Maximum ping:
|
||||
== Ping maximum :
|
||||
|
||||
Miscellaneous
|
||||
== Divers
|
||||
|
||||
Mouse sens.
|
||||
== Sensib. souris
|
||||
|
||||
Move left
|
||||
== Aller à gauche
|
||||
|
||||
Move player to spectators
|
||||
== Déplacer le joueur dans les spectateurs
|
||||
|
||||
Move right
|
||||
== Aller à droite
|
||||
|
||||
Movement
|
||||
== Mouvement
|
||||
|
||||
Mute when not active
|
||||
== Rendre muet en cas d'inactivité
|
||||
|
||||
Name
|
||||
== Nom
|
||||
|
||||
Name plates size
|
||||
== Taille
|
||||
|
||||
Netversion:
|
||||
== Netversion :
|
||||
|
||||
New name:
|
||||
== Nouveau nom :
|
||||
|
||||
News
|
||||
== Nouvelles
|
||||
|
||||
Next weapon
|
||||
== Arme suivante
|
||||
|
||||
Nickname
|
||||
== Pseudonyme
|
||||
|
||||
No
|
||||
== Non
|
||||
|
||||
No password
|
||||
== Pas de mot de passe
|
||||
|
||||
No servers found
|
||||
== Aucun serveur trouvé
|
||||
|
||||
No servers match your filter criteria
|
||||
== Aucun serveur ne correspond à vos critères
|
||||
|
||||
Ok
|
||||
== Ok
|
||||
|
||||
Open
|
||||
== Ouvrir
|
||||
|
||||
Parent Folder
|
||||
== Dossier parent
|
||||
|
||||
Password
|
||||
== Mot de passe
|
||||
|
||||
Password incorrect
|
||||
== Mot de passe incorrect
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistolet
|
||||
|
||||
Play
|
||||
== Jouer
|
||||
|
||||
Play background music
|
||||
== Jouer la musique de fond
|
||||
|
||||
Player
|
||||
== Joueur
|
||||
|
||||
Player country:
|
||||
== Nation joueurs :
|
||||
|
||||
Player options
|
||||
== Joueurs
|
||||
|
||||
Players
|
||||
== Joueurs
|
||||
|
||||
Please balance teams!
|
||||
== Équilibrez les équipes !
|
||||
|
||||
Prev. weapon
|
||||
== Arme précédente
|
||||
|
||||
Quality Textures
|
||||
== Textures haute qualité
|
||||
|
||||
Quick search:
|
||||
== Recherche rapide :
|
||||
|
||||
Quit
|
||||
== Quitter
|
||||
|
||||
Quit anyway?
|
||||
== Quitter quand même ?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Raison :
|
||||
|
||||
Record demo
|
||||
== Enregistrer
|
||||
|
||||
Red team
|
||||
== Équipe rouge
|
||||
|
||||
Red team wins!
|
||||
== L'équipe rouge gagne !
|
||||
|
||||
Refresh
|
||||
== Rafraîchir
|
||||
|
||||
Refreshing master servers
|
||||
== Rafraîchissement des serveurs maîtres
|
||||
|
||||
Remote console
|
||||
== Console serveur
|
||||
|
||||
Remove
|
||||
== Enlever
|
||||
|
||||
Remove friend
|
||||
== Enlever des amis
|
||||
|
||||
Rename
|
||||
== Renommer
|
||||
|
||||
Rename demo
|
||||
== Renommer la démo
|
||||
|
||||
Reset filter
|
||||
== Filtres par défaut
|
||||
|
||||
Reset to defaults
|
||||
== Réinitialiser
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Round
|
||||
|
||||
Sample rate
|
||||
== Fréquence
|
||||
|
||||
Sat.
|
||||
== Saturation
|
||||
|
||||
Score
|
||||
== Score
|
||||
|
||||
Score board
|
||||
== Scores
|
||||
|
||||
Score limit
|
||||
== Score limite
|
||||
|
||||
Scoreboard
|
||||
== Scores
|
||||
|
||||
Screenshot
|
||||
== Capture d'écran
|
||||
|
||||
Server address:
|
||||
== Addresse :
|
||||
|
||||
Server details
|
||||
== Détails du serveur
|
||||
|
||||
Server filter
|
||||
== Filtres
|
||||
|
||||
Server info
|
||||
== Info. serveur
|
||||
|
||||
Server not full
|
||||
== Pas de serveurs pleins
|
||||
|
||||
Settings
|
||||
== Options
|
||||
|
||||
Shotgun
|
||||
== Fusil à pompe
|
||||
|
||||
Show chat
|
||||
== Montrer le chat
|
||||
|
||||
Show friends only
|
||||
== Montrer les amis
|
||||
|
||||
Show ingame HUD
|
||||
== Afficher l'interface du jeu
|
||||
|
||||
Show name plates
|
||||
== Montrer les pseudonymes
|
||||
|
||||
Show only supported
|
||||
== Ne montrer que les résolutions supportées
|
||||
|
||||
Size:
|
||||
== Taille :
|
||||
|
||||
Skins
|
||||
== Skins
|
||||
|
||||
Sound
|
||||
== Son
|
||||
|
||||
Sound error
|
||||
== Erreur de son
|
||||
|
||||
Sound volume
|
||||
== Volume du son
|
||||
|
||||
Spectate
|
||||
== Regarder
|
||||
|
||||
Spectate next
|
||||
== Suivre suivant
|
||||
|
||||
Spectate previous
|
||||
== Suivre précédent
|
||||
|
||||
Spectator mode
|
||||
== Menu spectateur
|
||||
|
||||
Spectators
|
||||
== Spectateurs
|
||||
|
||||
Standard gametype
|
||||
== Types de jeu standards
|
||||
|
||||
Standard map
|
||||
== Cartes standards
|
||||
|
||||
Stop record
|
||||
== Arrêter
|
||||
|
||||
Strict gametype filter
|
||||
== Types de jeu exacts
|
||||
|
||||
Sudden Death
|
||||
== Mort Subite
|
||||
|
||||
Switch weapon on pickup
|
||||
== Sélectionner l'arme ramassée
|
||||
|
||||
Team
|
||||
== Équipe
|
||||
|
||||
Team chat
|
||||
== Chat équipe
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s est sorti ! Téléchargez-le sur www.teeworlds.com !
|
||||
|
||||
Texture Compression
|
||||
== Compression des textures
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Le périphérique audio n'a pas pu être initialisé.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Le serveur utilise des paramètres non standards sur un type de jeu standard.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Il y a une carte non-enregistrée dans l'éditeur, vous voulez peut-être l'enregistrer avant de quitter le jeu.
|
||||
|
||||
Time limit
|
||||
== Temps limite
|
||||
|
||||
Time limit: %d min
|
||||
== Temps limite : %d min
|
||||
|
||||
Try again
|
||||
== Réessayer
|
||||
|
||||
Type
|
||||
== Type
|
||||
|
||||
Type:
|
||||
== Type :
|
||||
|
||||
UI Color
|
||||
== Couleur du menu
|
||||
|
||||
Unable to delete the demo
|
||||
== Impossible de supprimer la démo
|
||||
|
||||
Unable to rename the demo
|
||||
== Impossible de renommer la démo
|
||||
|
||||
Use sounds
|
||||
== Jouer les sons
|
||||
|
||||
Use team colors for name plates
|
||||
== Utiliser la couleur des équipes
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Version
|
||||
|
||||
Version:
|
||||
== Version :
|
||||
|
||||
Vote command:
|
||||
== Commande :
|
||||
|
||||
Vote description:
|
||||
== Description :
|
||||
|
||||
Vote no
|
||||
== Voter non
|
||||
|
||||
Vote yes
|
||||
== Voter oui
|
||||
|
||||
Voting
|
||||
== Vote
|
||||
|
||||
Warmup
|
||||
== Échauffement
|
||||
|
||||
Weapon
|
||||
== Arme
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Bienvenue dans Teeworlds
|
||||
|
||||
Yes
|
||||
== Oui
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Les changements prendront effet au prochain redémarrage.
|
||||
|
||||
Your skin
|
||||
== Votre skin
|
||||
|
||||
no limit
|
||||
== pas de limite
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bytes
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d von %d Servern, %d Spieler
|
||||
|
||||
%d%% loaded
|
||||
== %d%% geladen
|
||||
|
||||
%ds left
|
||||
== Noch %ds
|
||||
|
||||
%i minute left
|
||||
== Noch %i Minute
|
||||
|
||||
%i minutes left
|
||||
== Noch %i Minuten
|
||||
|
||||
%i second left
|
||||
== Noch %i Sekunde
|
||||
|
||||
%i seconds left
|
||||
== Noch %i Sekunden
|
||||
|
||||
%s wins!
|
||||
== %s gewinnt!
|
||||
|
||||
-Page %d-
|
||||
== -Seite %d-
|
||||
|
||||
Abort
|
||||
== Abbrechen
|
||||
|
||||
Add
|
||||
== Hinzufügen
|
||||
|
||||
Add Friend
|
||||
== Freund hinzufügen
|
||||
|
||||
Address
|
||||
== Adresse
|
||||
|
||||
All
|
||||
== Alle
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Spielernamen immer anzeigen
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Möchtest du die Aufnahme wirklich löschen?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Bist du sicher, dass du beenden möchtest?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Bist du sicher, dass du diesen Spieler aus deiner Freundesliste entfernen möchtest?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Da dies der erste Start des Spiels ist, gib bitte unten deinen Namen ein. Es wird empfohlen die Einstellungen zu überprüfen, um sie deinen Vorstellungen anzupassen, bevor du einem Server beitrittst.
|
||||
|
||||
Automatically record demos
|
||||
== Automatisch Aufnahmen erstellen
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Autom. ein Bild vom Spielergebnis erstellen
|
||||
|
||||
Blue team
|
||||
== Blaues Team
|
||||
|
||||
Blue team wins!
|
||||
== Blaues Team gewinnt!
|
||||
|
||||
Body
|
||||
== Körper
|
||||
|
||||
Call vote
|
||||
== Abstimmen
|
||||
|
||||
Change settings
|
||||
== Einstellungen ändern
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Clan
|
||||
|
||||
Client
|
||||
== Client
|
||||
|
||||
Close
|
||||
== Schließ.
|
||||
|
||||
Compatible version
|
||||
== Kompatible Version
|
||||
|
||||
Connect
|
||||
== Verbinden
|
||||
|
||||
Connecting to
|
||||
== Verbinden mit
|
||||
|
||||
Connection Problems...
|
||||
== Verbindungsprobleme...
|
||||
|
||||
Console
|
||||
== Konsole
|
||||
|
||||
Controls
|
||||
== Steuerung
|
||||
|
||||
Count players only
|
||||
== Nur Spieler zählen
|
||||
|
||||
Country
|
||||
== Land
|
||||
|
||||
Crc:
|
||||
== Prüfsumme:
|
||||
|
||||
Created:
|
||||
== Erstellt:
|
||||
|
||||
Current
|
||||
== Aktuell
|
||||
|
||||
Current version: %s
|
||||
== Aktuelle Version: %s
|
||||
|
||||
Custom colors
|
||||
== Eigene Farben
|
||||
|
||||
Delete
|
||||
== Löschen
|
||||
|
||||
Delete demo
|
||||
== Aufnahme löschen
|
||||
|
||||
Demo details
|
||||
== Aufnahmendetails:
|
||||
|
||||
Demofile: %s
|
||||
== Demodatei: %s
|
||||
|
||||
Demos
|
||||
== Aufnahm.
|
||||
|
||||
Disconnect
|
||||
== Trennen
|
||||
|
||||
Disconnected
|
||||
== Verbindung getrennt
|
||||
|
||||
Display Modes
|
||||
== Auflösungen
|
||||
|
||||
Downloading map
|
||||
== Karte herunterladen
|
||||
|
||||
Draw!
|
||||
== Unentschieden!
|
||||
|
||||
Dynamic Camera
|
||||
== Dynamische Kamera
|
||||
|
||||
Emoticon
|
||||
== Emoticon
|
||||
|
||||
Enter
|
||||
== Starten
|
||||
|
||||
Error
|
||||
== Fehlgeschlagen
|
||||
|
||||
Error loading demo
|
||||
== Fehler beim Laden der Aufnahme, die Datei ist ungültig.
|
||||
|
||||
FSAA samples
|
||||
== Vollbild Anti-Aliasing
|
||||
|
||||
Favorite
|
||||
== Favorit
|
||||
|
||||
Favorites
|
||||
== Favoriten
|
||||
|
||||
Feet
|
||||
== Füße
|
||||
|
||||
Filter
|
||||
== Filter
|
||||
|
||||
Fire
|
||||
== Feuern
|
||||
|
||||
Folder
|
||||
== Ordner
|
||||
|
||||
Force vote
|
||||
== Erzwingen
|
||||
|
||||
Free-View
|
||||
== Freie Ansicht
|
||||
|
||||
Friends
|
||||
== Freunde
|
||||
|
||||
Fullscreen
|
||||
== Vollbild
|
||||
|
||||
Game
|
||||
== Spiel
|
||||
|
||||
Game info
|
||||
== Spielinfo
|
||||
|
||||
Game over
|
||||
== Spiel vorbei
|
||||
|
||||
Game type
|
||||
== Spieltyp
|
||||
|
||||
Game types:
|
||||
== Spieltypen:
|
||||
|
||||
General
|
||||
== Allgemein
|
||||
|
||||
Graphics
|
||||
== Grafik
|
||||
|
||||
Grenade
|
||||
== Granate
|
||||
|
||||
Hammer
|
||||
== Hammer
|
||||
|
||||
Has people playing
|
||||
== Server nicht leer
|
||||
|
||||
High Detail
|
||||
== Hohe Details
|
||||
|
||||
Hook
|
||||
== Haken
|
||||
|
||||
Host address
|
||||
== Serveradresse
|
||||
|
||||
Hue
|
||||
== Farb.
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Ungültige Aufnahme
|
||||
|
||||
Join blue
|
||||
== zu Blau
|
||||
|
||||
Join game
|
||||
== Beitreten
|
||||
|
||||
Join red
|
||||
== zu Rot
|
||||
|
||||
Jump
|
||||
== Springen
|
||||
|
||||
Kick player
|
||||
== Spieler kicken
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Sprache
|
||||
|
||||
Length:
|
||||
== Länge
|
||||
|
||||
Lht.
|
||||
== Hell.
|
||||
|
||||
Loading
|
||||
== Laden
|
||||
|
||||
MOTD
|
||||
== Nachricht des Tages
|
||||
|
||||
Map
|
||||
== Karte
|
||||
|
||||
Map:
|
||||
== Karte:
|
||||
|
||||
Max Screenshots
|
||||
== Maximale Anzahl an Bildschirmfotos
|
||||
|
||||
Max demos
|
||||
== Maximale Anzahl an Aufnahmen
|
||||
|
||||
Maximum ping:
|
||||
== Maximaler Ping:
|
||||
|
||||
Miscellaneous
|
||||
== Verschiedenes
|
||||
|
||||
Mouse sens.
|
||||
== Maus-Empfindl.
|
||||
|
||||
Move left
|
||||
== Nach links
|
||||
|
||||
Move player to spectators
|
||||
== Spieler zu Zuschauer machen
|
||||
|
||||
Move right
|
||||
== Nach rechts
|
||||
|
||||
Movement
|
||||
== Bewegungen
|
||||
|
||||
Mute when not active
|
||||
== Stumm, wenn inaktiv
|
||||
|
||||
Name
|
||||
== Name
|
||||
|
||||
Name plates size
|
||||
== Größe der Spielernamen
|
||||
|
||||
Netversion:
|
||||
== Netversion:
|
||||
|
||||
New name:
|
||||
== Neuer Name:
|
||||
|
||||
News
|
||||
== News
|
||||
|
||||
Next weapon
|
||||
== Nächste Waffe
|
||||
|
||||
Nickname
|
||||
== Spitzname
|
||||
|
||||
No
|
||||
== Nein
|
||||
|
||||
No password
|
||||
== Kein Passwort
|
||||
|
||||
No servers found
|
||||
== Keine Server gefunden
|
||||
|
||||
No servers match your filter criteria
|
||||
== Kein Server entspricht den Kriterien
|
||||
|
||||
Ok
|
||||
== OK
|
||||
|
||||
Open
|
||||
== Öffnen
|
||||
|
||||
Parent Folder
|
||||
== Übergeordneter Ordner
|
||||
|
||||
Password
|
||||
== Passwort
|
||||
|
||||
Password incorrect
|
||||
== Passwort falsch
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistole
|
||||
|
||||
Play
|
||||
== Abspielen
|
||||
|
||||
Play background music
|
||||
== Hintergrundmusik abspielen
|
||||
|
||||
Player
|
||||
== Spieler
|
||||
|
||||
Player country:
|
||||
== Spielerland:
|
||||
|
||||
Player options
|
||||
== Spieleroptionen
|
||||
|
||||
Players
|
||||
== Spieler
|
||||
|
||||
Please balance teams!
|
||||
== Bitte Teams ausgleichen!
|
||||
|
||||
Prev. weapon
|
||||
== Vorherige Waffe
|
||||
|
||||
Quality Textures
|
||||
== Hochauflösende Texturen
|
||||
|
||||
Quick search:
|
||||
== Schnellsuche:
|
||||
|
||||
Quit
|
||||
== Beenden
|
||||
|
||||
Quit anyway?
|
||||
== Trotzdem beenden?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Grund:
|
||||
|
||||
Record demo
|
||||
== Aufnahme sta.
|
||||
|
||||
Red team
|
||||
== Rotes team
|
||||
|
||||
Red team wins!
|
||||
== Rotes Team gewinnt!
|
||||
|
||||
Refresh
|
||||
== Erneuern
|
||||
|
||||
Refreshing master servers
|
||||
== Aktualisiere Masterserver
|
||||
|
||||
Remote console
|
||||
== Remotekonsole
|
||||
|
||||
Remove
|
||||
== Löschen
|
||||
|
||||
Remove friend
|
||||
== Freund entfernen
|
||||
|
||||
Rename
|
||||
== Umbenennen
|
||||
|
||||
Rename demo
|
||||
== Aufnahme umbenennen
|
||||
|
||||
Reset filter
|
||||
== Standardfilter
|
||||
|
||||
Reset to defaults
|
||||
== Standardeinstellung
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Runde
|
||||
|
||||
Sample rate
|
||||
== Abtastrate
|
||||
|
||||
Sat.
|
||||
== Sätt.
|
||||
|
||||
Score
|
||||
== Score
|
||||
|
||||
Score board
|
||||
== Punktetafel
|
||||
|
||||
Score limit
|
||||
== Punktelimit
|
||||
|
||||
Scoreboard
|
||||
== Punktetafel
|
||||
|
||||
Screenshot
|
||||
== Bildschirmfoto
|
||||
|
||||
Server address:
|
||||
== Serveradresse:
|
||||
|
||||
Server details
|
||||
== Serverdetails
|
||||
|
||||
Server filter
|
||||
== Filter
|
||||
|
||||
Server info
|
||||
== Serverinfo
|
||||
|
||||
Server not full
|
||||
== Server nicht voll
|
||||
|
||||
Settings
|
||||
== Optionen
|
||||
|
||||
Shotgun
|
||||
== Schrotflinte
|
||||
|
||||
Show chat
|
||||
== Chat anzeigen
|
||||
|
||||
Show friends only
|
||||
== Nur Freunde zeigen
|
||||
|
||||
Show ingame HUD
|
||||
== Spielanzeigen
|
||||
|
||||
Show name plates
|
||||
== Zeige Namen
|
||||
|
||||
Show only supported
|
||||
== Zeige nur unterstützte
|
||||
|
||||
Size:
|
||||
== Größe:
|
||||
|
||||
Skins
|
||||
== Skins
|
||||
|
||||
Sound
|
||||
== Ton
|
||||
|
||||
Sound error
|
||||
== Audiofehler
|
||||
|
||||
Sound volume
|
||||
== Lautstärke
|
||||
|
||||
Spectate
|
||||
== Zuschauen
|
||||
|
||||
Spectate next
|
||||
== Nächstem zusehen
|
||||
|
||||
Spectate previous
|
||||
== Vorherigem zusehen
|
||||
|
||||
Spectator mode
|
||||
== Zuschaueroptionen
|
||||
|
||||
Spectators
|
||||
== Zuschauer
|
||||
|
||||
Standard gametype
|
||||
== Standard-Spieltyp
|
||||
|
||||
Standard map
|
||||
== Standardkarte
|
||||
|
||||
Stop record
|
||||
== Aufnahme be.
|
||||
|
||||
Strict gametype filter
|
||||
== Genauer Spieltyp
|
||||
|
||||
Sudden Death
|
||||
== Sudden Death
|
||||
|
||||
Switch weapon on pickup
|
||||
== Waffe beim Aufnehmen wechseln
|
||||
|
||||
Team
|
||||
== Team
|
||||
|
||||
Team chat
|
||||
== Teamchat
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworld %s ist da! Lade es unter www.teeworlds.com runter!
|
||||
|
||||
Texture Compression
|
||||
== Texturkompression
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Das Audiosystem konnte nicht gestartet werden.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Der Server läuft nicht mit Standardeinstellungen.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Im Editor ist noch eine ungespeicherte Karte. Vielleicht möchtest du sie speichern.
|
||||
|
||||
Time limit
|
||||
== Zeitlimit
|
||||
|
||||
Time limit: %d min
|
||||
== Zeitlimit: %d min
|
||||
|
||||
Try again
|
||||
== Nochmal versuchen
|
||||
|
||||
Type
|
||||
== Typ
|
||||
|
||||
Type:
|
||||
== Typ:
|
||||
|
||||
UI Color
|
||||
== Menüfarbe
|
||||
|
||||
Unable to delete the demo
|
||||
== Aufnahme konnte nicht gelöscht werden
|
||||
|
||||
Unable to rename the demo
|
||||
== Aufnahme konnte nicht umbenannt werden
|
||||
|
||||
Use sounds
|
||||
== Aktiviere Ton
|
||||
|
||||
Use team colors for name plates
|
||||
== Nutze Teamfarben für Spielernamen
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Version
|
||||
|
||||
Version:
|
||||
== Version:
|
||||
|
||||
Vote command:
|
||||
== Kommando:
|
||||
|
||||
Vote description:
|
||||
== Beschreibung:
|
||||
|
||||
Vote no
|
||||
== Nein
|
||||
|
||||
Vote yes
|
||||
== Ja
|
||||
|
||||
Voting
|
||||
== Abstimmung
|
||||
|
||||
Warmup
|
||||
== Aufwärmen
|
||||
|
||||
Weapon
|
||||
== Waffe
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Willkommen bei Teeworlds
|
||||
|
||||
Yes
|
||||
== Ja
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Du musst das Spiel neustarten um die Änderungen zu übernehmen.
|
||||
|
||||
Your skin
|
||||
== Dein Skin
|
||||
|
||||
no limit
|
||||
== Keine Begrenzung
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bit
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d Szerver, %d Játékos
|
||||
|
||||
%d%% loaded
|
||||
== %d%% betöltve
|
||||
|
||||
%ds left
|
||||
== %ds vissza
|
||||
|
||||
%i minute left
|
||||
== %i perc vissza
|
||||
|
||||
%i minutes left
|
||||
== %i perc vissza
|
||||
|
||||
%i second left
|
||||
== %i másodperc vissza
|
||||
|
||||
%i seconds left
|
||||
== %i másodperc vissza
|
||||
|
||||
%s wins!
|
||||
== %s nyert!
|
||||
|
||||
-Page %d-
|
||||
== -oldal %d-
|
||||
|
||||
Abort
|
||||
== Mégse
|
||||
|
||||
Add
|
||||
== Hozzáad
|
||||
|
||||
Add Friend
|
||||
== Hozzáad barátot
|
||||
|
||||
Address
|
||||
== Cím
|
||||
|
||||
All
|
||||
== Mindenki
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Mindig mutassa a névtáblát
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Biztos hogy le akarod törölni a demót?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Biztos hogy ki akarsz lépni?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Biztos vagy benne hogy ki akarod törölni a játékost a barátok listájáról?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Mivel ez az első alkalom hogy elindítottad ezt a játékot, kérlekk add meg a neved!
|
||||
|
||||
Automatically record demos
|
||||
== Magától rögzítse a demókat
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Magától készítsen a játék végén képet
|
||||
|
||||
Blue team
|
||||
== Kék csapat
|
||||
|
||||
Blue team wins!
|
||||
== A kék csapat nyert!
|
||||
|
||||
Body
|
||||
== Test
|
||||
|
||||
Call vote
|
||||
== Szavazás
|
||||
|
||||
Change settings
|
||||
== Beállítások átállítása
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Klán
|
||||
|
||||
Client
|
||||
== Kliens
|
||||
|
||||
Close
|
||||
== Bezárás
|
||||
|
||||
Compatible version
|
||||
== Kompatibilis Verzió
|
||||
|
||||
Connect
|
||||
== Csatlakozás
|
||||
|
||||
Connecting to
|
||||
== Csatlakozás a
|
||||
|
||||
Connection Problems...
|
||||
== Csatlakozási problémák...
|
||||
|
||||
Console
|
||||
== Konzol
|
||||
|
||||
Controls
|
||||
== Irányítás
|
||||
|
||||
Count players only
|
||||
== Csak számontartott játékosok
|
||||
|
||||
Country
|
||||
== Ország
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Készítette:
|
||||
|
||||
Current
|
||||
== Aktuális
|
||||
|
||||
Current version: %s
|
||||
== Aktuális verzió: %s
|
||||
|
||||
Custom colors
|
||||
== Egyéni színek
|
||||
|
||||
Delete
|
||||
== Törlés
|
||||
|
||||
Delete demo
|
||||
== Demó törlése
|
||||
|
||||
Demo details
|
||||
== Információk a demóról
|
||||
|
||||
Demos
|
||||
== Demók
|
||||
|
||||
Disconnect
|
||||
== Szerver elhagyása
|
||||
|
||||
Disconnected
|
||||
== Kilépett
|
||||
|
||||
Display Modes
|
||||
== Kijelző módok
|
||||
|
||||
Downloading map
|
||||
== Pálya letöltése
|
||||
|
||||
Draw!
|
||||
== Rajzolj!
|
||||
|
||||
Dynamic Camera
|
||||
== Dinamikus kamera
|
||||
|
||||
Emoticon
|
||||
== Hangulatjel
|
||||
|
||||
Enter
|
||||
== Belépés
|
||||
|
||||
Error
|
||||
== Hiba
|
||||
|
||||
Error loading demo
|
||||
== Hiba a demó betöltésében
|
||||
|
||||
FSAA samples
|
||||
== FSAA mintáku
|
||||
|
||||
Favorite
|
||||
== Kedvenc
|
||||
|
||||
Favorites
|
||||
== Kedvencek
|
||||
|
||||
Feet
|
||||
== Láb
|
||||
|
||||
Filter
|
||||
== Szűrő
|
||||
|
||||
Fire
|
||||
== Tűz
|
||||
|
||||
Folder
|
||||
== Mappa
|
||||
|
||||
Force vote
|
||||
== Különleges szavazás
|
||||
|
||||
Free-View
|
||||
== Szabad-nézet
|
||||
|
||||
Friends
|
||||
== Barátok
|
||||
|
||||
Fullscreen
|
||||
== Teljesképernyő
|
||||
|
||||
Game
|
||||
== Játék
|
||||
|
||||
Game info
|
||||
== Játék infó
|
||||
|
||||
Game over
|
||||
== Játék vége
|
||||
|
||||
Game type
|
||||
== Játék fajtája
|
||||
|
||||
Game types:
|
||||
== Játék fajtái:
|
||||
|
||||
General
|
||||
== Általános
|
||||
|
||||
Graphics
|
||||
== Grafika
|
||||
|
||||
Grenade
|
||||
== Gránát
|
||||
|
||||
Hammer
|
||||
== Kalapács
|
||||
|
||||
Has people playing
|
||||
== Játékos játszik
|
||||
|
||||
High Detail
|
||||
== Jó részletek
|
||||
|
||||
Hook
|
||||
== Horog
|
||||
|
||||
Host address
|
||||
== Szerver címe
|
||||
|
||||
Hue
|
||||
== Színárnyalat
|
||||
|
||||
Info
|
||||
== Infó
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Érvénytelen demó
|
||||
|
||||
Join blue
|
||||
== Kékhez lépés
|
||||
|
||||
Join game
|
||||
== Csatlakozás a játékhoz
|
||||
|
||||
Join red
|
||||
== Piroshoz lépés
|
||||
|
||||
Jump
|
||||
== Ugrás
|
||||
|
||||
Kick player
|
||||
== Játékos kirúgása
|
||||
|
||||
LAN
|
||||
== Helyi
|
||||
|
||||
Language
|
||||
== Nyelv
|
||||
|
||||
Length:
|
||||
== Hossza:
|
||||
|
||||
Lht.
|
||||
== Lht.
|
||||
|
||||
Loading
|
||||
== Betöltés
|
||||
|
||||
MOTD
|
||||
== Napi üzenet
|
||||
|
||||
Map
|
||||
== Pálya
|
||||
|
||||
Map:
|
||||
== Pálya:
|
||||
|
||||
Max Screenshots
|
||||
== Maximum Fotó
|
||||
|
||||
Max demos
|
||||
== Maximum Demó
|
||||
|
||||
Maximum ping:
|
||||
== Maximum Ping:
|
||||
|
||||
Miscellaneous
|
||||
== Vegyes
|
||||
|
||||
Mouse sens.
|
||||
== Egér érzékenysége
|
||||
|
||||
Move left
|
||||
== Balra lépés
|
||||
|
||||
Move player to spectators
|
||||
== Megfigyelő lett
|
||||
|
||||
Move right
|
||||
== Jobbra lépés
|
||||
|
||||
Movement
|
||||
== Mozgás
|
||||
|
||||
Mute when not active
|
||||
== Letiltás ha nem aktív
|
||||
|
||||
Name
|
||||
== Név
|
||||
|
||||
Name plates size
|
||||
== Névtáblák mérete
|
||||
|
||||
Netversion:
|
||||
== Netes verzió:
|
||||
|
||||
New name:
|
||||
== Új Név:
|
||||
|
||||
News
|
||||
== Hírek
|
||||
|
||||
Next weapon
|
||||
== Következő fegyver
|
||||
|
||||
Nickname
|
||||
== Becenév
|
||||
|
||||
No
|
||||
== Nem
|
||||
|
||||
No password
|
||||
== Jelszó nélküli
|
||||
|
||||
No servers found
|
||||
== Nem talált szervereket
|
||||
|
||||
No servers match your filter criteria
|
||||
== Nincs szerver a szűrőfeltételeidhez
|
||||
|
||||
Ok
|
||||
== Oké
|
||||
|
||||
Open
|
||||
== Megnyit
|
||||
|
||||
Parent Folder
|
||||
== Szülői mappa
|
||||
|
||||
Password
|
||||
== Jelszó
|
||||
|
||||
Password incorrect
|
||||
== Helytelen jelszó
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pisztoly
|
||||
|
||||
Play
|
||||
== Játék
|
||||
|
||||
Player
|
||||
== Játékos
|
||||
|
||||
Player options
|
||||
== Játékos beállításai
|
||||
|
||||
Players
|
||||
== Játékosok
|
||||
|
||||
Please balance teams!
|
||||
== Kérlek egyenlítsd ki a csapatokat!
|
||||
|
||||
Prev. weapon
|
||||
== Előző fegyver
|
||||
|
||||
Quality Textures
|
||||
== Minőségi kidolgozás
|
||||
|
||||
Quick search:
|
||||
== Gyors keresés:
|
||||
|
||||
Quit
|
||||
== Kilépés
|
||||
|
||||
Quit anyway?
|
||||
== Mindenképpen kilép?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Indok:
|
||||
|
||||
Record demo
|
||||
== Demó felvétele
|
||||
|
||||
Red team
|
||||
== Piros csapat
|
||||
|
||||
Red team wins!
|
||||
== A piros csapat nyert!
|
||||
|
||||
Refresh
|
||||
== Újratöltés
|
||||
|
||||
Refreshing master servers
|
||||
== A master szerverek frissítése
|
||||
|
||||
Remote console
|
||||
== Távoli konzol
|
||||
|
||||
Remove
|
||||
== Eltávolítás
|
||||
|
||||
Remove friend
|
||||
== Barát eltávolítása
|
||||
|
||||
Rename
|
||||
== Átnevezés
|
||||
|
||||
Rename demo
|
||||
== Demó átnevezése
|
||||
|
||||
Reset filter
|
||||
== Szűrő visszaállítása
|
||||
|
||||
Reset to defaults
|
||||
== Visszaállítás az alapértelmezettre
|
||||
|
||||
Rifle
|
||||
== Lézer
|
||||
|
||||
Round
|
||||
== Menet
|
||||
|
||||
Sample rate
|
||||
== Mintavételi frekvencia
|
||||
|
||||
Sat.
|
||||
== Sat.
|
||||
|
||||
Score
|
||||
== Pontszám
|
||||
|
||||
Score board
|
||||
== Pontszám tábla
|
||||
|
||||
Score limit
|
||||
== Ponthatár
|
||||
|
||||
Scoreboard
|
||||
== Pontszámtábla
|
||||
|
||||
Screenshot
|
||||
== Pillanatkép
|
||||
|
||||
Server address:
|
||||
== Szerver címe:
|
||||
|
||||
Server details
|
||||
== Szerver részletei
|
||||
|
||||
Server filter
|
||||
== Szerver szűrő
|
||||
|
||||
Server info
|
||||
== Szerver infó
|
||||
|
||||
Server not full
|
||||
== Szerver nincs tele
|
||||
|
||||
Settings
|
||||
== Beállítások
|
||||
|
||||
Shotgun
|
||||
== Sörétes puska
|
||||
|
||||
Show chat
|
||||
== Chat mutatása
|
||||
|
||||
Show friends only
|
||||
== Barátok mutatása
|
||||
|
||||
Show ingame HUD
|
||||
== Játék közbeni HUD mutatása
|
||||
|
||||
Show name plates
|
||||
== Név táblák mutatása
|
||||
|
||||
Show only supported
|
||||
== Csak támogatott mutatása
|
||||
|
||||
Size:
|
||||
== Méret:
|
||||
|
||||
Skins
|
||||
== Skinek
|
||||
|
||||
Sound
|
||||
== Hang
|
||||
|
||||
Sound error
|
||||
== Hang hiba
|
||||
|
||||
Sound volume
|
||||
== Hangerő
|
||||
|
||||
Spectate
|
||||
== Megfigyelés
|
||||
|
||||
Spectator mode
|
||||
== Néző mód
|
||||
|
||||
Spectators
|
||||
== Megfigyelők
|
||||
|
||||
Standard gametype
|
||||
== Általános játékfajta
|
||||
|
||||
Standard map
|
||||
== Általános pálya
|
||||
|
||||
Stop record
|
||||
== Felvétel megállítása
|
||||
|
||||
Sudden Death
|
||||
== Gyors halál
|
||||
|
||||
Switch weapon on pickup
|
||||
== Fegyverváltás felvételnél
|
||||
|
||||
Team
|
||||
== Csapat
|
||||
|
||||
Team chat
|
||||
== Csapat chat
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s kint van! Töltsd le www.teeworlds.com oldalon!
|
||||
|
||||
Texture Compression
|
||||
== Textúra tömörítés
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== A hangeszköz nem kezdeményezhető.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== A szerver egy nem szabványos hangolást futtat a tiszta játék típuson.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Van egy mentett térkép a szerkesztőben, talán akarod menteni, mielőtt kilépsz a játékból.
|
||||
|
||||
Time limit
|
||||
== Időhatár
|
||||
|
||||
Time limit: %d min
|
||||
== Időhatár: %d perc
|
||||
|
||||
Try again
|
||||
== Próbáld újra
|
||||
|
||||
Type
|
||||
== Típus
|
||||
|
||||
Type:
|
||||
== Típus:
|
||||
|
||||
UI Color
|
||||
== UI Szín
|
||||
|
||||
Unable to delete the demo
|
||||
== Nem sikerült törölni a demó
|
||||
|
||||
Unable to rename the demo
|
||||
== Nem sikerült átnevezni a demó
|
||||
|
||||
Use sounds
|
||||
== Hangok használata
|
||||
|
||||
Use team colors for name plates
|
||||
== Csapat szín használata név tábláknál
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Verzió
|
||||
|
||||
Version:
|
||||
== Verzió:
|
||||
|
||||
Vote command:
|
||||
== Szavazás parancsa:
|
||||
|
||||
Vote description:
|
||||
== Szavazás leírása:
|
||||
|
||||
Vote no
|
||||
== Nem
|
||||
|
||||
Vote yes
|
||||
== Igen
|
||||
|
||||
Voting
|
||||
== Szavazás
|
||||
|
||||
Warmup
|
||||
== Kezdés
|
||||
|
||||
Weapon
|
||||
== Fegyver
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Üdvözöljük a Teeworlds-ben
|
||||
|
||||
Yes
|
||||
== Igen
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Újra kell indítani a játékot, a beállítások érvénybe lépéséhez.
|
||||
|
||||
Your skin
|
||||
== Te skined
|
||||
|
||||
no limit
|
||||
== Nincs korlát
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
Demofile: %s
|
||||
==
|
||||
|
||||
Play background music
|
||||
==
|
||||
|
||||
Player country:
|
||||
==
|
||||
|
||||
Spectate next
|
||||
==
|
||||
|
||||
Spectate previous
|
||||
==
|
||||
|
||||
Strict gametype filter
|
||||
==
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
|
||||
##### language indices #####
|
||||
|
||||
belarusian
|
||||
== Беларуская
|
||||
== 112
|
||||
|
||||
bosnian
|
||||
== Bosanski
|
||||
== 70
|
||||
|
||||
brazilian_portuguese
|
||||
== Português brasileiro
|
||||
== 76
|
||||
|
||||
bulgarian
|
||||
== Български
|
||||
== 100
|
||||
|
||||
czech
|
||||
== Česky
|
||||
== 203
|
||||
|
||||
danish
|
||||
== Dansk
|
||||
== 208
|
||||
|
||||
dutch
|
||||
== Nederlands
|
||||
== 528
|
||||
|
||||
finnish
|
||||
== Suomi
|
||||
== 246
|
||||
|
||||
french
|
||||
== Français
|
||||
== 250
|
||||
|
||||
german
|
||||
== Deutsch
|
||||
== 276
|
||||
|
||||
hungarian
|
||||
== Magyar
|
||||
== 348
|
||||
|
||||
italian
|
||||
== Italiano
|
||||
== 380
|
||||
|
||||
norwegian
|
||||
== Norsk
|
||||
== 578
|
||||
|
||||
polish
|
||||
== Polski
|
||||
== 616
|
||||
|
||||
portuguese
|
||||
== Português
|
||||
== 620
|
||||
|
||||
romanian
|
||||
== Română
|
||||
== 642
|
||||
|
||||
russian
|
||||
== Русский
|
||||
== 643
|
||||
|
||||
serbian
|
||||
== Srpski
|
||||
== 688
|
||||
|
||||
slovak
|
||||
== Slovensky
|
||||
== 703
|
||||
|
||||
spanish
|
||||
== Español
|
||||
== 724
|
||||
|
||||
swedish
|
||||
== Svenska
|
||||
== 752
|
||||
|
||||
turkish
|
||||
== Türkçe
|
||||
== 792
|
||||
|
||||
ukrainian
|
||||
== Українська
|
||||
== 804
|
|
@ -1,682 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d byte
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d di %d server, %d giocatori
|
||||
|
||||
%d%% loaded
|
||||
== %d%% caricato
|
||||
|
||||
%ds left
|
||||
== %ds sec.
|
||||
|
||||
%i minute left
|
||||
== %i minuto rimanente
|
||||
|
||||
%i minutes left
|
||||
== %i minuti rimanenti
|
||||
|
||||
%i second left
|
||||
== %i secondo rimanente
|
||||
|
||||
%i seconds left
|
||||
== %i secondi rimanenti
|
||||
|
||||
%s wins!
|
||||
== %s ha vinto!
|
||||
|
||||
-Page %d-
|
||||
== -Pagina %d-
|
||||
|
||||
Abort
|
||||
== Annulla
|
||||
|
||||
Add
|
||||
== Aggiungi
|
||||
|
||||
Add Friend
|
||||
== Aggiungi amico
|
||||
|
||||
Address
|
||||
== Indirizzo
|
||||
|
||||
All
|
||||
== Tutti
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Mostra sempre i nomi
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Sicuro di voler eliminare la demo?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Sicuro di voler chiudere il gioco?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Sicuro di voler rimuovere il giocatore dalla lista di amici?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Essendo la prima volta che avvii il gioco, ti preghiamo di inserire il tuo nickname qui sotto. Puoi cambiare le impostazioni in base alle tue preferenze prima di entrare in gioco.
|
||||
|
||||
Automatically record demos
|
||||
== Registra automaticamente demo
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Cattura schermata alla fine di ogni partita
|
||||
|
||||
Blue team
|
||||
== Squadra blu
|
||||
|
||||
Blue team wins!
|
||||
== La squadra blu ha vinto!
|
||||
|
||||
Body
|
||||
== Corpo
|
||||
|
||||
Call vote
|
||||
== Vota
|
||||
|
||||
Change settings
|
||||
== Cambia opzioni
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Clan
|
||||
|
||||
Client
|
||||
== Client
|
||||
|
||||
Close
|
||||
== Chiudi
|
||||
|
||||
Compatible version
|
||||
== Versione compatibile
|
||||
|
||||
Connect
|
||||
== Connetti
|
||||
|
||||
Connecting to
|
||||
== Connessione a
|
||||
|
||||
Connection Problems...
|
||||
== Problemi di connessione...
|
||||
|
||||
Console
|
||||
== Console
|
||||
|
||||
Controls
|
||||
== Comandi
|
||||
|
||||
Count players only
|
||||
== Conta solo giocatori
|
||||
|
||||
Country
|
||||
== Paese
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Creata:
|
||||
|
||||
Current
|
||||
== Attuale
|
||||
|
||||
Current version: %s
|
||||
== Versione attuale: %s
|
||||
|
||||
Custom colors
|
||||
== Colori personalizzati
|
||||
|
||||
Delete
|
||||
== Elimina
|
||||
|
||||
Delete demo
|
||||
== Elimina demo
|
||||
|
||||
Demo details
|
||||
== Dettagli demo
|
||||
|
||||
Demofile: %s
|
||||
== Demo: %s
|
||||
|
||||
Demos
|
||||
== Demo
|
||||
|
||||
Disconnect
|
||||
== Disconnetti
|
||||
|
||||
Disconnected
|
||||
== Disconnesso
|
||||
|
||||
Display Modes
|
||||
== Risoluzioni schermo
|
||||
|
||||
Downloading map
|
||||
== Scaricamento mappa in corso
|
||||
|
||||
Draw!
|
||||
== Pareggio!
|
||||
|
||||
Dynamic Camera
|
||||
== Camera dinamica
|
||||
|
||||
Emoticon
|
||||
== Emoticon
|
||||
|
||||
Enter
|
||||
== Entra
|
||||
|
||||
Error
|
||||
== Errore
|
||||
|
||||
Error loading demo
|
||||
== Errore caricamento demo
|
||||
|
||||
FSAA samples
|
||||
== Campioni FSAA
|
||||
|
||||
Favorite
|
||||
== Preferito
|
||||
|
||||
Favorites
|
||||
== Preferiti
|
||||
|
||||
Feet
|
||||
== Piedi
|
||||
|
||||
Filter
|
||||
== Filtro
|
||||
|
||||
Fire
|
||||
== Fuoco
|
||||
|
||||
Folder
|
||||
== Cartella
|
||||
|
||||
Force vote
|
||||
== Forza voto
|
||||
|
||||
Free-View
|
||||
== Visione libera
|
||||
|
||||
Friends
|
||||
== Amici
|
||||
|
||||
Fullscreen
|
||||
== Schermo intero
|
||||
|
||||
Game
|
||||
== Partita
|
||||
|
||||
Game info
|
||||
== Info partita
|
||||
|
||||
Game over
|
||||
== Partita finita
|
||||
|
||||
Game type
|
||||
== Tipo
|
||||
|
||||
Game types:
|
||||
== Tipo di gioco:
|
||||
|
||||
General
|
||||
== Generale
|
||||
|
||||
Graphics
|
||||
== Aspetto
|
||||
|
||||
Grenade
|
||||
== Lanciagranate
|
||||
|
||||
Hammer
|
||||
== Martello
|
||||
|
||||
Has people playing
|
||||
== Con giocatori
|
||||
|
||||
High Detail
|
||||
== Alta qualità
|
||||
|
||||
Hook
|
||||
== Rampino
|
||||
|
||||
Host address
|
||||
== Indirizzo host
|
||||
|
||||
Hue
|
||||
== Tinta
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Demo non valida
|
||||
|
||||
Join blue
|
||||
== Vai ai blu
|
||||
|
||||
Join game
|
||||
== Entra
|
||||
|
||||
Join red
|
||||
== Vai ai rossi
|
||||
|
||||
Jump
|
||||
== Salta
|
||||
|
||||
Kick player
|
||||
== Caccia giocatore
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Lingua
|
||||
|
||||
Length:
|
||||
== Durata:
|
||||
|
||||
Lht.
|
||||
== Luminosità
|
||||
|
||||
Loading
|
||||
== Caricamento
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Mappa
|
||||
|
||||
Map:
|
||||
== Mappa:
|
||||
|
||||
Max Screenshots
|
||||
== Numero massimo di catture
|
||||
|
||||
Max demos
|
||||
== Numero massimo di demo
|
||||
|
||||
Maximum ping:
|
||||
== Ping massimo:
|
||||
|
||||
Miscellaneous
|
||||
== Altro
|
||||
|
||||
Mouse sens.
|
||||
== Sensibilità
|
||||
|
||||
Move left
|
||||
== Sinistra
|
||||
|
||||
Move player to spectators
|
||||
== Fai osservare il giocatore
|
||||
|
||||
Move right
|
||||
== Destra
|
||||
|
||||
Movement
|
||||
== Movimento
|
||||
|
||||
Mute when not active
|
||||
== Silenzioso quanto inattivo
|
||||
|
||||
Name
|
||||
== Nome
|
||||
|
||||
Name plates size
|
||||
== Dimensione nomi
|
||||
|
||||
Netversion:
|
||||
== Versione net
|
||||
|
||||
New name:
|
||||
== Nuovo nome:
|
||||
|
||||
News
|
||||
== Novità
|
||||
|
||||
Next weapon
|
||||
== Arma seguente
|
||||
|
||||
Nickname
|
||||
== Nickname
|
||||
|
||||
No
|
||||
== No
|
||||
|
||||
No password
|
||||
== Senza password
|
||||
|
||||
No servers found
|
||||
== Nessun server trovato
|
||||
|
||||
No servers match your filter criteria
|
||||
== Nessun server corrisponde ai tuoi criteri di ricerca
|
||||
|
||||
Ok
|
||||
== Ok
|
||||
|
||||
Open
|
||||
== Apri
|
||||
|
||||
Parent Folder
|
||||
== Cartella superiore
|
||||
|
||||
Password
|
||||
== Password
|
||||
|
||||
Password incorrect
|
||||
== Password errata
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistola
|
||||
|
||||
Play
|
||||
== Riproduci
|
||||
|
||||
Play background music
|
||||
== Riproduci musica di sottofondo
|
||||
|
||||
Player
|
||||
== Giocatore
|
||||
|
||||
Player country:
|
||||
== Filtra per paese:
|
||||
|
||||
Player options
|
||||
== Opzioni giocatore
|
||||
|
||||
Players
|
||||
== Giocatori
|
||||
|
||||
Please balance teams!
|
||||
== Equilibra le squadre!
|
||||
|
||||
Prev. weapon
|
||||
== Arma precedente
|
||||
|
||||
Quality Textures
|
||||
== Texture di qualità
|
||||
|
||||
Quick search:
|
||||
== Ricerca rapida:
|
||||
|
||||
Quit
|
||||
== Chiudi
|
||||
|
||||
Quit anyway?
|
||||
== Vuoi chiudere comunque?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Motivo:
|
||||
|
||||
Record demo
|
||||
== Registra demo
|
||||
|
||||
Red team
|
||||
== Squadra rossa
|
||||
|
||||
Red team wins!
|
||||
== La squadra rossa ha vinto!
|
||||
|
||||
Refresh
|
||||
== Aggiorna
|
||||
|
||||
Refreshing master servers
|
||||
== Aggiornamento server principali
|
||||
|
||||
Remote console
|
||||
== Console remota
|
||||
|
||||
Remove
|
||||
== Elimina
|
||||
|
||||
Remove friend
|
||||
== Elimina amico
|
||||
|
||||
Rename
|
||||
== Rinomina
|
||||
|
||||
Rename demo
|
||||
== Rinomina demo
|
||||
|
||||
Reset filter
|
||||
== Azzera filtri
|
||||
|
||||
Reset to defaults
|
||||
== Reimposta
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Turno
|
||||
|
||||
Sample rate
|
||||
== Frequenza
|
||||
|
||||
Sat.
|
||||
== Saturazione
|
||||
|
||||
Score
|
||||
== Punti
|
||||
|
||||
Score board
|
||||
== Punteggio
|
||||
|
||||
Score limit
|
||||
== Limite punti
|
||||
|
||||
Scoreboard
|
||||
== Punteggi
|
||||
|
||||
Screenshot
|
||||
== Cattura schermata
|
||||
|
||||
Server address:
|
||||
== Indirizzo server:
|
||||
|
||||
Server details
|
||||
== Dettagli server
|
||||
|
||||
Server filter
|
||||
== Filtro server
|
||||
|
||||
Server info
|
||||
== Info server
|
||||
|
||||
Server not full
|
||||
== Server non pieno
|
||||
|
||||
Settings
|
||||
== Opzioni
|
||||
|
||||
Shotgun
|
||||
== Fucile
|
||||
|
||||
Show chat
|
||||
== Mostra chat
|
||||
|
||||
Show friends only
|
||||
== Mostra solo amici
|
||||
|
||||
Show ingame HUD
|
||||
== Mostra HUD in gioco
|
||||
|
||||
Show name plates
|
||||
== Mostra nomi
|
||||
|
||||
Show only supported
|
||||
== Mostra solo supportati
|
||||
|
||||
Size:
|
||||
== Dimensione:
|
||||
|
||||
Skins
|
||||
== Skin
|
||||
|
||||
Sound
|
||||
== Suono
|
||||
|
||||
Sound error
|
||||
== Errore suono
|
||||
|
||||
Sound volume
|
||||
== Volume suono
|
||||
|
||||
Spectate
|
||||
== Osserva
|
||||
|
||||
Spectate next
|
||||
== Osserva succ.
|
||||
|
||||
Spectate previous
|
||||
== Osserva prec.
|
||||
|
||||
Spectator mode
|
||||
== Menu osservazione
|
||||
|
||||
Spectators
|
||||
== Spettatori
|
||||
|
||||
Standard gametype
|
||||
== Tipo di gioco normale
|
||||
|
||||
Standard map
|
||||
== Mappa normale
|
||||
|
||||
Stop record
|
||||
== Ferma reg.
|
||||
|
||||
Strict gametype filter
|
||||
== Tipo di gioco preciso
|
||||
|
||||
Sudden Death
|
||||
== Tempo supplementare
|
||||
|
||||
Switch weapon on pickup
|
||||
== Cambia arma ad ogni raccolta
|
||||
|
||||
Team
|
||||
== Squadra
|
||||
|
||||
Team chat
|
||||
== Chat di squadra
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== È uscito Teeworld %s! Scaricalo su www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Compressione texture
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Il dispositivo audio non può essere inizializzato.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Il server presenta impostazioni non standard in un tipo di gioco normale.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== C'è una mappa non salvata nell'editor, probabilmente vuoi salvarla prima di uscire.
|
||||
|
||||
Time limit
|
||||
== Limite di tempo
|
||||
|
||||
Time limit: %d min
|
||||
== Limite di tempo: %d min
|
||||
|
||||
Try again
|
||||
== Ritenta
|
||||
|
||||
Type
|
||||
== Tipo
|
||||
|
||||
Type:
|
||||
== Tipo:
|
||||
|
||||
UI Color
|
||||
== Color interfaccia
|
||||
|
||||
Unable to delete the demo
|
||||
== Impossibile eliminare la demo
|
||||
|
||||
Unable to rename the demo
|
||||
== Impossibile rinominare la demo
|
||||
|
||||
Use sounds
|
||||
== Attiva suoni
|
||||
|
||||
Use team colors for name plates
|
||||
== Usa i colori della squadra nei nomi
|
||||
|
||||
V-Sync
|
||||
== Sincronizzazione verticale
|
||||
|
||||
Version
|
||||
== Versione
|
||||
|
||||
Version:
|
||||
== Versione:
|
||||
|
||||
Vote command:
|
||||
== Comando di voto:
|
||||
|
||||
Vote description:
|
||||
== Descrizione voto:
|
||||
|
||||
Vote no
|
||||
== Vota no
|
||||
|
||||
Vote yes
|
||||
== Vota sì
|
||||
|
||||
Voting
|
||||
== Votazione
|
||||
|
||||
Warmup
|
||||
== Riscaldamento
|
||||
|
||||
Weapon
|
||||
== Arma
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Benvenuto su Teeworlds
|
||||
|
||||
Yes
|
||||
== Sì
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Devi riavviare il gioco per rendere effettive le modifiche.
|
||||
|
||||
Your skin
|
||||
== La tua skin
|
||||
|
||||
no limit
|
||||
== senza limiti
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
||||
|
||||
== ## translated strings #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bytes
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d av %d servere, %d spillere
|
||||
|
||||
%d%% loaded
|
||||
== %d%% lastet
|
||||
|
||||
%ds left
|
||||
== %d sekunder igjen
|
||||
|
||||
%i minute left
|
||||
== %i minutt igjen
|
||||
|
||||
%i minutes left
|
||||
== %i minutter igjen
|
||||
|
||||
%i second left
|
||||
== %i sekund igjen
|
||||
|
||||
%i seconds left
|
||||
== %i sekunder igjen
|
||||
|
||||
%s wins!
|
||||
== %s Vinner!
|
||||
|
||||
-Page %d-
|
||||
== -Side %d-
|
||||
|
||||
Abort
|
||||
== Avbryt
|
||||
|
||||
Add
|
||||
== Legg til
|
||||
|
||||
Add Friend
|
||||
== Legg til venn
|
||||
|
||||
Address
|
||||
== Adresse
|
||||
|
||||
All
|
||||
== Alle
|
||||
|
||||
Alpha
|
||||
== Synlighet
|
||||
|
||||
Always show name plates
|
||||
== Vis alltid navnskilt
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Er du sikker på at du vil slette denne demoen?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Er du sikker på at du vil avslutte?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Er du sikker på at du vil fjerne denne spilleren fra vennelisten?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Siden dette er første gang du starter spillet, må du skrive inn et kallenavn nedenfor. Det anbefales at du sjekker innstillingene for å justere dem slik du ønsker før du kobler til en server.
|
||||
|
||||
Automatically record demos
|
||||
== Spill inn demoer automatisk
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Ta skjermbilder når runden er over
|
||||
|
||||
Blue team
|
||||
== Blått lag
|
||||
|
||||
Blue team wins!
|
||||
== Blått lag vant!
|
||||
|
||||
Body
|
||||
== Kropp
|
||||
|
||||
Call vote
|
||||
== Stem
|
||||
|
||||
Change settings
|
||||
== Endre innstillinger
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Klan
|
||||
|
||||
Client
|
||||
== Klient
|
||||
|
||||
Close
|
||||
== Lukk
|
||||
|
||||
Compatible version
|
||||
== Kompitabel versjon
|
||||
|
||||
Connect
|
||||
== Koble til
|
||||
|
||||
Connecting to
|
||||
== Kobler til
|
||||
|
||||
Connection Problems...
|
||||
== Tilkoblingsproblemer...
|
||||
|
||||
Console
|
||||
== Konsoll
|
||||
|
||||
Controls
|
||||
== Kontroller
|
||||
|
||||
Count players only
|
||||
== Tell bare spillere
|
||||
|
||||
Country
|
||||
== Land
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Opprettet:
|
||||
|
||||
Current
|
||||
== Nåværende
|
||||
|
||||
Current version: %s
|
||||
== Nåværende versjon: %s
|
||||
|
||||
Custom colors
|
||||
== Egendefinerte farger
|
||||
|
||||
Delete
|
||||
== Slett
|
||||
|
||||
Delete demo
|
||||
== Slett demo
|
||||
|
||||
Demo details
|
||||
== Demo detaljer
|
||||
|
||||
Demofile: %s
|
||||
== Demo fil: %s
|
||||
|
||||
Demos
|
||||
== Demoer
|
||||
|
||||
Disconnect
|
||||
== Koble fra
|
||||
|
||||
Disconnected
|
||||
== Frakoblet
|
||||
|
||||
Display Modes
|
||||
== Skjerm moduser
|
||||
|
||||
Downloading map
|
||||
== Laster ned banen
|
||||
|
||||
Draw!
|
||||
== Uavgjort!
|
||||
|
||||
Dynamic Camera
|
||||
== Dynamisk kamera
|
||||
|
||||
Emoticon
|
||||
== Uttrykksikoner
|
||||
|
||||
Enter
|
||||
== Enter
|
||||
|
||||
Error
|
||||
== Feil
|
||||
|
||||
Error loading demo
|
||||
== Kunne ikke laste in Demo`en
|
||||
|
||||
FSAA samples
|
||||
== FSAA prøver
|
||||
|
||||
Favorite
|
||||
== Favoritt
|
||||
|
||||
Favorites
|
||||
== Favoritter
|
||||
|
||||
Feet
|
||||
== Føtter
|
||||
|
||||
Filter
|
||||
== Filter
|
||||
|
||||
Fire
|
||||
== Skyt
|
||||
|
||||
Folder
|
||||
== Mappe
|
||||
|
||||
Force vote
|
||||
== Tvungen valg
|
||||
|
||||
Free-View
|
||||
== fri-visning
|
||||
|
||||
Friends
|
||||
== Venner
|
||||
|
||||
Fullscreen
|
||||
== Fullskjerm
|
||||
|
||||
Game
|
||||
== Spill
|
||||
|
||||
Game info
|
||||
== Spill info
|
||||
|
||||
Game over
|
||||
== Spill avsluttet
|
||||
|
||||
Game type
|
||||
== Spilltype
|
||||
|
||||
Game types:
|
||||
== Spilletyper:
|
||||
|
||||
General
|
||||
== Generelt
|
||||
|
||||
Graphics
|
||||
== Grafikk
|
||||
|
||||
Grenade
|
||||
== Granat
|
||||
|
||||
Hammer
|
||||
== Hammer
|
||||
|
||||
Has people playing
|
||||
== Har folk som spiller
|
||||
|
||||
High Detail
|
||||
== Ekstra detaljer
|
||||
|
||||
Hook
|
||||
== Gripe tang
|
||||
|
||||
Host address
|
||||
== Serveradresse
|
||||
|
||||
Hue
|
||||
== Farge
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internett
|
||||
|
||||
Invalid Demo
|
||||
== Ugyldig Demo
|
||||
|
||||
Join blue
|
||||
== Bli med blå
|
||||
|
||||
Join game
|
||||
== Bli med i spillet
|
||||
|
||||
Join red
|
||||
== Bli med rød
|
||||
|
||||
Jump
|
||||
== Hopp
|
||||
|
||||
Kick player
|
||||
== Kast ut spiller
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Språk
|
||||
|
||||
Length:
|
||||
== Lengde
|
||||
|
||||
Lht.
|
||||
== Lysstyrke
|
||||
|
||||
Loading
|
||||
== Laster inn
|
||||
|
||||
MOTD
|
||||
== Dagens melding
|
||||
|
||||
Map
|
||||
== Bane
|
||||
|
||||
Map:
|
||||
== Bane:
|
||||
|
||||
Max Screenshots
|
||||
== Maks antall skjermbilder
|
||||
|
||||
Max demos
|
||||
== Maks antall demoer
|
||||
|
||||
Maximum ping:
|
||||
== Maks ping:
|
||||
|
||||
Miscellaneous
|
||||
== Diverse
|
||||
|
||||
Mouse sens.
|
||||
== Mushastighet
|
||||
|
||||
Move left
|
||||
== Gå til venstre
|
||||
|
||||
Move player to spectators
|
||||
== Gjør spiller til tilskuer
|
||||
|
||||
Move right
|
||||
== Gå til høyre
|
||||
|
||||
Movement
|
||||
== Beveglighet
|
||||
|
||||
Mute when not active
|
||||
== Slå av lyd når spillet ikke er aktivt
|
||||
|
||||
Name
|
||||
== Navn
|
||||
|
||||
Name plates size
|
||||
== Størrelse på navnskilt
|
||||
|
||||
Netversion:
|
||||
== Net versjon:
|
||||
|
||||
New name:
|
||||
== Nytt navn:
|
||||
|
||||
News
|
||||
== Nyheter
|
||||
|
||||
Next weapon
|
||||
== Neste Våpen
|
||||
|
||||
Nickname
|
||||
== Kallenavn
|
||||
|
||||
No
|
||||
== Nei
|
||||
|
||||
No password
|
||||
== ikke passord
|
||||
|
||||
No servers found
|
||||
== Ingen servere funnet
|
||||
|
||||
No servers match your filter criteria
|
||||
== Ingen servere tilsvarer dine filter kriterier
|
||||
|
||||
Ok
|
||||
== Ok
|
||||
|
||||
Open
|
||||
== Åpne
|
||||
|
||||
Parent Folder
|
||||
== Forrige mappe
|
||||
|
||||
Password
|
||||
== Passord
|
||||
|
||||
Password incorrect
|
||||
== Feil passord
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistol
|
||||
|
||||
Play
|
||||
== Spill
|
||||
|
||||
Play background music
|
||||
== Spill bakrunds musikk
|
||||
|
||||
Player
|
||||
== Spiller
|
||||
|
||||
Player country:
|
||||
== spiller landet
|
||||
|
||||
Player options
|
||||
== Spillerinstillinger
|
||||
|
||||
Players
|
||||
== Spillere
|
||||
|
||||
Please balance teams!
|
||||
== Balanser lagene!
|
||||
|
||||
Prev. weapon
|
||||
== Forrige våpen
|
||||
|
||||
Quality Textures
|
||||
== Teksturkvalitet
|
||||
|
||||
Quick search:
|
||||
== Raskt Søk:
|
||||
|
||||
Quit
|
||||
== Avslutt
|
||||
|
||||
Quit anyway?
|
||||
== Avslutt uansett?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Grunn:
|
||||
|
||||
Record demo
|
||||
== Ta opp demo
|
||||
|
||||
Red team
|
||||
== Rødt lag
|
||||
|
||||
Red team wins!
|
||||
== Rødt lag vant!
|
||||
|
||||
Refresh
|
||||
== Oppdater
|
||||
|
||||
Refreshing master servers
|
||||
== Opdaterer master servere
|
||||
|
||||
Remote console
|
||||
== Server konsoll
|
||||
|
||||
Remove
|
||||
== Ta bort
|
||||
|
||||
Remove friend
|
||||
== Ta bort venn
|
||||
|
||||
Rename
|
||||
== Gi nytt navn
|
||||
|
||||
Rename demo
|
||||
== Gi nytt navn på Demo
|
||||
|
||||
Reset filter
|
||||
== Tilbakestill filteret
|
||||
|
||||
Reset to defaults
|
||||
== Tilbakestill standardinstillinger
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Runde
|
||||
|
||||
Sample rate
|
||||
== Enkel frekvens
|
||||
|
||||
Sat.
|
||||
== Metning
|
||||
|
||||
Score
|
||||
== Poeng
|
||||
|
||||
Score board
|
||||
== Poengliste
|
||||
|
||||
Score limit
|
||||
== Poenggrense
|
||||
|
||||
Scoreboard
|
||||
== Poengliste
|
||||
|
||||
Screenshot
|
||||
== Skjermbilde
|
||||
|
||||
Server address:
|
||||
== Serveradresse
|
||||
|
||||
Server details
|
||||
== Serverdetaljer
|
||||
|
||||
Server filter
|
||||
== Serverfilter
|
||||
|
||||
Server info
|
||||
== Serverinfo
|
||||
|
||||
Server not full
|
||||
== Serveren er ikke full
|
||||
|
||||
Settings
|
||||
== Instillinger
|
||||
|
||||
Shotgun
|
||||
== Hagle
|
||||
|
||||
Show chat
|
||||
== Vis samtale
|
||||
|
||||
Show friends only
|
||||
== Vis venner
|
||||
|
||||
Show ingame HUD
|
||||
== Vis HUD i spillet
|
||||
|
||||
Show name plates
|
||||
== Vis navnskilt
|
||||
|
||||
Show only supported
|
||||
== Vis kompatible
|
||||
|
||||
Size:
|
||||
== Størrelse:
|
||||
|
||||
Skins
|
||||
== Utseender
|
||||
|
||||
Sound
|
||||
== Lyd
|
||||
|
||||
Sound error
|
||||
== Lydfeil
|
||||
|
||||
Sound volume
|
||||
== Lydvolum
|
||||
|
||||
Spectate
|
||||
== Se på
|
||||
|
||||
Spectate next
|
||||
== Se på neste
|
||||
|
||||
Spectate previous
|
||||
== Se på forige
|
||||
|
||||
Spectator mode
|
||||
== Tilhenger modus
|
||||
|
||||
Spectators
|
||||
== Tilskuere:
|
||||
|
||||
Standard gametype
|
||||
== Standard spilletyper
|
||||
|
||||
Standard map
|
||||
== Standard bane
|
||||
|
||||
Stop record
|
||||
== Stopp inspilling
|
||||
|
||||
Strict gametype filter
|
||||
== spilltype-filter
|
||||
|
||||
Sudden Death
|
||||
== Brå død
|
||||
|
||||
Switch weapon on pickup
|
||||
== Bytt våpen ved innsamling
|
||||
|
||||
Team
|
||||
== Lag
|
||||
|
||||
Team chat
|
||||
== Lagsamtale
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s er ute! Last ned på www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Teksturkompressjon
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Lydenheten kunne ikke initialiseres.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Denne serveren kjører ikke standard-innstillinger på standard spilltype.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Det er en ulagret bane i baneredigereren, du vil kanskje lagre den før du avslutter.
|
||||
|
||||
Time limit
|
||||
== Tidsbegrensning
|
||||
|
||||
Time limit: %d min
|
||||
== Tidsgrense: %d min
|
||||
|
||||
Try again
|
||||
== Prøv igjen
|
||||
|
||||
Type
|
||||
== Type
|
||||
|
||||
Type:
|
||||
== Type:
|
||||
|
||||
UI Color
|
||||
== Menyfarge
|
||||
|
||||
Unable to delete the demo
|
||||
== Kunne ikke slette demoen
|
||||
|
||||
Unable to rename the demo
|
||||
== Kunne ikke endre navn på demoen
|
||||
|
||||
Use sounds
|
||||
== Lyd på
|
||||
|
||||
Use team colors for name plates
|
||||
== Bruk lagfarger for navnskilt
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Versjon
|
||||
|
||||
Version:
|
||||
== Versjon:
|
||||
|
||||
Vote command:
|
||||
== Stemmingskommando:
|
||||
|
||||
Vote description:
|
||||
== Stemmebeskrivelse:
|
||||
|
||||
Vote no
|
||||
== Stem Nei
|
||||
|
||||
Vote yes
|
||||
== Stem Ja
|
||||
|
||||
Voting
|
||||
== Stemming
|
||||
|
||||
Warmup
|
||||
== Oppvarming
|
||||
|
||||
Weapon
|
||||
== Våpen
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Velkommen til Teeworlds
|
||||
|
||||
Yes
|
||||
== Ja
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Du må starte spillet på nytt før alle endringene tar effekt.
|
||||
|
||||
Your skin
|
||||
== Ditt utseende
|
||||
|
||||
no limit
|
||||
== Ingen begrensninger
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,682 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bajtów
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d z %d serwerów, %d graczy
|
||||
|
||||
%d%% loaded
|
||||
== Załadowano %d%%
|
||||
|
||||
%ds left
|
||||
== Pozostało %ds
|
||||
|
||||
%i minute left
|
||||
== Pozostało minut: %i
|
||||
|
||||
%i minutes left
|
||||
== Pozostało minut: %i
|
||||
|
||||
%i second left
|
||||
== Pozostało sekund: %i
|
||||
|
||||
%i seconds left
|
||||
== Pozostało sekund: %i
|
||||
|
||||
%s wins!
|
||||
== Wygrał %d!
|
||||
|
||||
-Page %d-
|
||||
== -Strona %d-
|
||||
|
||||
Abort
|
||||
== Anuluj
|
||||
|
||||
Add
|
||||
== Dodaj
|
||||
|
||||
Add Friend
|
||||
== Dodaj znajomego
|
||||
|
||||
Address
|
||||
== Adres
|
||||
|
||||
All
|
||||
== Wszyscy
|
||||
|
||||
Alpha
|
||||
== Alfa
|
||||
|
||||
Always show name plates
|
||||
== Zawsze pokazuj nicki graczy
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Czy na pewno chcesz usunąć to demo?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Czy na pewno chcesz opuścić grę?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Czy na pewno chcesz usunąć tego gracza z listy znajomych?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== To pierwsze uruchomienie gry, podaj swój nick poniżej. Zalecane jest też sprawdzenie ustawień i dopasowanie ich do swoich upodobań przed dołączeniem do gry.
|
||||
|
||||
Automatically record demos
|
||||
== Automatycznie rejestruj dema
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Automatycznie zrób zrzut ekranu końca gry
|
||||
|
||||
Blue team
|
||||
== Niebiescy
|
||||
|
||||
Blue team wins!
|
||||
== Niebiescy wygrali!
|
||||
|
||||
Body
|
||||
== Ciało
|
||||
|
||||
Call vote
|
||||
== Głosowanie
|
||||
|
||||
Change settings
|
||||
== Zmień ustawienia
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Klan
|
||||
|
||||
Client
|
||||
== Klient
|
||||
|
||||
Close
|
||||
== Zamknij
|
||||
|
||||
Compatible version
|
||||
== Kompatybilna wersja
|
||||
|
||||
Connect
|
||||
== Połącz
|
||||
|
||||
Connecting to
|
||||
== Łączenie z
|
||||
|
||||
Connection Problems...
|
||||
== Problemy z połączeniem...
|
||||
|
||||
Console
|
||||
== Konsola
|
||||
|
||||
Controls
|
||||
== Sterowanie
|
||||
|
||||
Count players only
|
||||
== Licz tylko graczy
|
||||
|
||||
Country
|
||||
== Kraj
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Utworzono:
|
||||
|
||||
Current
|
||||
== Aktualnie
|
||||
|
||||
Current version: %s
|
||||
== Aktualna wersja: %s
|
||||
|
||||
Custom colors
|
||||
== Dostosuj kolory
|
||||
|
||||
Delete
|
||||
== Usuń
|
||||
|
||||
Delete demo
|
||||
== Usuń demo
|
||||
|
||||
Demo details
|
||||
== Szczegóły dema
|
||||
|
||||
Demofile: %s
|
||||
== Plik dema: %s
|
||||
|
||||
Demos
|
||||
== Dema
|
||||
|
||||
Disconnect
|
||||
== Rozłącz
|
||||
|
||||
Disconnected
|
||||
== Rozłączono
|
||||
|
||||
Display Modes
|
||||
== Tryby wyświetlania
|
||||
|
||||
Downloading map
|
||||
== Pobieranie mapy
|
||||
|
||||
Draw!
|
||||
== Remis!
|
||||
|
||||
Dynamic Camera
|
||||
== Dynamiczna kamera
|
||||
|
||||
Emoticon
|
||||
== Emotikona
|
||||
|
||||
Enter
|
||||
== Wejdź
|
||||
|
||||
Error
|
||||
== Błąd
|
||||
|
||||
Error loading demo
|
||||
== Błąd przy ładowaniu dema
|
||||
|
||||
FSAA samples
|
||||
== Próbkowanie FSAA (Antyaliasing)
|
||||
|
||||
Favorite
|
||||
== Ulubiony
|
||||
|
||||
Favorites
|
||||
== Ulubione
|
||||
|
||||
Feet
|
||||
== Stopy
|
||||
|
||||
Filter
|
||||
== Filtr
|
||||
|
||||
Fire
|
||||
== Strzał
|
||||
|
||||
Folder
|
||||
== Katalog
|
||||
|
||||
Force vote
|
||||
== Wymuś głosowanie
|
||||
|
||||
Free-View
|
||||
== Wolna kamera
|
||||
|
||||
Friends
|
||||
== Znajomi
|
||||
|
||||
Fullscreen
|
||||
== Pełny ekran
|
||||
|
||||
Game
|
||||
== Gra
|
||||
|
||||
Game info
|
||||
== Info o grze
|
||||
|
||||
Game over
|
||||
== Koniec gry
|
||||
|
||||
Game type
|
||||
== Typ gry
|
||||
|
||||
Game types:
|
||||
== Typy gier:
|
||||
|
||||
General
|
||||
== Ogólne
|
||||
|
||||
Graphics
|
||||
== Grafika
|
||||
|
||||
Grenade
|
||||
== Granatnik
|
||||
|
||||
Hammer
|
||||
== Młot
|
||||
|
||||
Has people playing
|
||||
== Nie pokazuj pustych
|
||||
|
||||
High Detail
|
||||
== Wysoka jakość
|
||||
|
||||
Hook
|
||||
== Hak
|
||||
|
||||
Host address
|
||||
== Adres serwera
|
||||
|
||||
Hue
|
||||
== Kolor
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Nieprawidłowe demo
|
||||
|
||||
Join blue
|
||||
== Do niebieskich
|
||||
|
||||
Join game
|
||||
== Dołącz
|
||||
|
||||
Join red
|
||||
== Do czerwonych
|
||||
|
||||
Jump
|
||||
== Skok
|
||||
|
||||
Kick player
|
||||
== Wyrzuć gracza
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Język
|
||||
|
||||
Length:
|
||||
== Długość:
|
||||
|
||||
Lht.
|
||||
== Jasność
|
||||
|
||||
Loading
|
||||
== Ładowanie
|
||||
|
||||
MOTD
|
||||
== Wiadomość dnia
|
||||
|
||||
Map
|
||||
== Mapa
|
||||
|
||||
Map:
|
||||
== Mapa:
|
||||
|
||||
Max Screenshots
|
||||
== Maksymalnie screenshotów
|
||||
|
||||
Max demos
|
||||
== Maksymalnie dem
|
||||
|
||||
Maximum ping:
|
||||
== Maksymalny ping:
|
||||
|
||||
Miscellaneous
|
||||
== Różne
|
||||
|
||||
Mouse sens.
|
||||
== Czułość myszy
|
||||
|
||||
Move left
|
||||
== W lewo
|
||||
|
||||
Move player to spectators
|
||||
== Przesuń gracza do obserwatorów
|
||||
|
||||
Move right
|
||||
== W prawo
|
||||
|
||||
Movement
|
||||
== Ruch
|
||||
|
||||
Mute when not active
|
||||
== Wycisz, kiedy gra nieaktywna
|
||||
|
||||
Name
|
||||
== Nazwa
|
||||
|
||||
Name plates size
|
||||
== Wielkość wyświetlanych nicków
|
||||
|
||||
Netversion:
|
||||
== Wersja sieciowa:
|
||||
|
||||
New name:
|
||||
== Nowa nazwa:
|
||||
|
||||
News
|
||||
== Wiadomości
|
||||
|
||||
Next weapon
|
||||
== Następna broń
|
||||
|
||||
Nickname
|
||||
== Nick
|
||||
|
||||
No
|
||||
== Nie
|
||||
|
||||
No password
|
||||
== Bez hasła
|
||||
|
||||
No servers found
|
||||
== Nie znaleziono serwerów
|
||||
|
||||
No servers match your filter criteria
|
||||
== Nie znaleziono serwerów spełniających twoje kryteria
|
||||
|
||||
Ok
|
||||
== Ok
|
||||
|
||||
Open
|
||||
== Otwórz
|
||||
|
||||
Parent Folder
|
||||
== Nadrzędny katalog
|
||||
|
||||
Password
|
||||
== Hasło
|
||||
|
||||
Password incorrect
|
||||
== Błędne hasło
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistolet
|
||||
|
||||
Play
|
||||
== Graj
|
||||
|
||||
Play background music
|
||||
== Odtwarzaj muzykę w tle
|
||||
|
||||
Player
|
||||
== Gracz
|
||||
|
||||
Player country:
|
||||
== Narodowość:
|
||||
|
||||
Player options
|
||||
== Opcje gracza
|
||||
|
||||
Players
|
||||
== Gracze
|
||||
|
||||
Please balance teams!
|
||||
== Proszę wyrównać szanse drużyn!
|
||||
|
||||
Prev. weapon
|
||||
== Poprzednia broń
|
||||
|
||||
Quality Textures
|
||||
== Szczegółowe tekstury
|
||||
|
||||
Quick search:
|
||||
== Szybkie wyszukiwanie:
|
||||
|
||||
Quit
|
||||
== Wyjście
|
||||
|
||||
Quit anyway?
|
||||
== Wyjść mimo wszystko?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Powód:
|
||||
|
||||
Record demo
|
||||
== Nagraj demo
|
||||
|
||||
Red team
|
||||
== Czerwoni
|
||||
|
||||
Red team wins!
|
||||
== Czerwoni wygrali!
|
||||
|
||||
Refresh
|
||||
== Odśwież
|
||||
|
||||
Refreshing master servers
|
||||
== Odświeżanie głównych serwerów
|
||||
|
||||
Remote console
|
||||
== Zdalna konsola
|
||||
|
||||
Remove
|
||||
== Usuń
|
||||
|
||||
Remove friend
|
||||
== Usuń znajomego
|
||||
|
||||
Rename
|
||||
== Zmień nazwę
|
||||
|
||||
Rename demo
|
||||
== Zmień nazwę dema
|
||||
|
||||
Reset filter
|
||||
== Domyślne filtry
|
||||
|
||||
Reset to defaults
|
||||
== Przywróć domyślne
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Runda
|
||||
|
||||
Sample rate
|
||||
== Częstotliwość próbkowania
|
||||
|
||||
Sat.
|
||||
== Nasycenie
|
||||
|
||||
Score
|
||||
== Wynik
|
||||
|
||||
Score board
|
||||
== Tablica wyników
|
||||
|
||||
Score limit
|
||||
== Limit punktów
|
||||
|
||||
Scoreboard
|
||||
== Tablica wyników
|
||||
|
||||
Screenshot
|
||||
== Screenshot
|
||||
|
||||
Server address:
|
||||
== Adres serwera:
|
||||
|
||||
Server details
|
||||
== Szczegóły serwera
|
||||
|
||||
Server filter
|
||||
== Filtr serwerów
|
||||
|
||||
Server info
|
||||
== Info serwera
|
||||
|
||||
Server not full
|
||||
== Nie pokazuj pełnych
|
||||
|
||||
Settings
|
||||
== Opcje
|
||||
|
||||
Shotgun
|
||||
== Shotgun
|
||||
|
||||
Show chat
|
||||
== Pokaż chat
|
||||
|
||||
Show friends only
|
||||
== Pokaż tylko znajomych
|
||||
|
||||
Show ingame HUD
|
||||
== Pokaż wewnętrzny HUD
|
||||
|
||||
Show name plates
|
||||
== Pokaż nicki
|
||||
|
||||
Show only supported
|
||||
== Pokaż tylko wspierane
|
||||
|
||||
Size:
|
||||
== Rozmiar:
|
||||
|
||||
Skins
|
||||
== Motywy
|
||||
|
||||
Sound
|
||||
== Dźwięk
|
||||
|
||||
Sound error
|
||||
== Błąd dźwięku
|
||||
|
||||
Sound volume
|
||||
== Głośność
|
||||
|
||||
Spectate
|
||||
== Obserwuj
|
||||
|
||||
Spectate next
|
||||
== Obserwuj następnego
|
||||
|
||||
Spectate previous
|
||||
== Obserwuj poprzedniego
|
||||
|
||||
Spectator mode
|
||||
== Tryb obserwatora
|
||||
|
||||
Spectators
|
||||
== Obserwatorzy
|
||||
|
||||
Standard gametype
|
||||
== Standardowy typ gry
|
||||
|
||||
Standard map
|
||||
== Standardowa mapa
|
||||
|
||||
Stop record
|
||||
== Zakończ REC
|
||||
|
||||
Strict gametype filter
|
||||
== Szczegółowy filtr typu gry
|
||||
|
||||
Sudden Death
|
||||
== Nagła śmierć
|
||||
|
||||
Switch weapon on pickup
|
||||
== Zmień broń po podniesieniu
|
||||
|
||||
Team
|
||||
== Drużyna
|
||||
|
||||
Team chat
|
||||
== Chat drużynowy
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Nowa wersja Teeworlds %s jest dostępna! Do ściągnięcia z www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Kompresja tekstur
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Urządzenie dźwiękowe nie mogło zostać zainicjowane
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Ten serwer korzysta z niestandardowych ustawień.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== W edytorze jest niezapisana mapa! Zapisz ją, jeśli nie chcesz
|
||||
|
||||
Time limit
|
||||
== Limit czasu
|
||||
|
||||
Time limit: %d min
|
||||
== Limit czasu: %d min
|
||||
|
||||
Try again
|
||||
== Ponów próbę
|
||||
|
||||
Type
|
||||
== Typ
|
||||
|
||||
Type:
|
||||
== Typ:
|
||||
|
||||
UI Color
|
||||
== Kolor menu
|
||||
|
||||
Unable to delete the demo
|
||||
== Nie można usunąć dema
|
||||
|
||||
Unable to rename the demo
|
||||
== Nie można zmienić nazwy dema
|
||||
|
||||
Use sounds
|
||||
== Włącz dźwięki
|
||||
|
||||
Use team colors for name plates
|
||||
== Użyj koloru drużyn dla wyświetlania nicków
|
||||
|
||||
V-Sync
|
||||
== Synchronizacja pionowa (V-Sync)
|
||||
|
||||
Version
|
||||
== Wersja
|
||||
|
||||
Version:
|
||||
== Wersja:
|
||||
|
||||
Vote command:
|
||||
== Polecenie głosowania:
|
||||
|
||||
Vote description:
|
||||
== Opis głosowania:
|
||||
|
||||
Vote no
|
||||
== Nie
|
||||
|
||||
Vote yes
|
||||
== Tak
|
||||
|
||||
Voting
|
||||
== Głosowanie
|
||||
|
||||
Warmup
|
||||
== Rozgrzewka
|
||||
|
||||
Weapon
|
||||
== Bronie
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Witaj w Teeworlds
|
||||
|
||||
Yes
|
||||
== Tak
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Uruchom ponownie grę, aby użyć nowych ustawieńn
|
||||
|
||||
Your skin
|
||||
== Twój wygląd
|
||||
|
||||
no limit
|
||||
== bez limitu
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
||||
utracić swojej pracy!
|
||||
==
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bytes
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d de %d servidores, %d jogadores
|
||||
|
||||
%d%% loaded
|
||||
== %d%% A Carregar
|
||||
|
||||
%ds left
|
||||
== faltam %ds
|
||||
|
||||
%i minute left
|
||||
== falta %i minuto
|
||||
|
||||
%i minutes left
|
||||
== faltam %i minutos
|
||||
|
||||
%i second left
|
||||
== falta %i segundo
|
||||
|
||||
%i seconds left
|
||||
== faltam %i segundos
|
||||
|
||||
%s wins!
|
||||
== %s ganhou!
|
||||
|
||||
-Page %d-
|
||||
== -Página %d-
|
||||
|
||||
Abort
|
||||
== Cancelar
|
||||
|
||||
Add
|
||||
== Adicionar
|
||||
|
||||
Add Friend
|
||||
== Adicionar Amigo
|
||||
|
||||
Address
|
||||
== Endereço
|
||||
|
||||
All
|
||||
== Todos
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Mostrar sempre os nicks
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Tens a certeza que queres Eliminar a demo?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Queres mesmo sair?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Queres mesmo apaga-lo da tua lista de amigos?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Olá! Pelos vistos é a primeira vez que inicias o jogo, por isso escolhe um Nick Name para ti!
|
||||
|
||||
Automatically record demos
|
||||
== Gravar demos Automaticamente
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Tirar screenshot's Automaticamente
|
||||
|
||||
Blue team
|
||||
== Equipa azul
|
||||
|
||||
Blue team wins!
|
||||
== A Equipa azul ganhou!
|
||||
|
||||
Body
|
||||
== Corpo
|
||||
|
||||
Call vote
|
||||
== Votação
|
||||
|
||||
Change settings
|
||||
== Mudar configurações
|
||||
|
||||
Chat
|
||||
== Conversa
|
||||
|
||||
Clan
|
||||
== Clan
|
||||
|
||||
Client
|
||||
== Cliente
|
||||
|
||||
Close
|
||||
== Fechar
|
||||
|
||||
Compatible version
|
||||
== Versão compatível
|
||||
|
||||
Connect
|
||||
== Conectar
|
||||
|
||||
Connecting to
|
||||
== A Conectar a
|
||||
|
||||
Connection Problems...
|
||||
== Problemas na conecção!
|
||||
|
||||
Console
|
||||
== Console
|
||||
|
||||
Controls
|
||||
== Controlos
|
||||
|
||||
Count players only
|
||||
== Só contar jogadores
|
||||
|
||||
Country
|
||||
== País
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Criado:
|
||||
|
||||
Current
|
||||
== Actualmente
|
||||
|
||||
Current version: %s
|
||||
== Versão actual : %s
|
||||
|
||||
Custom colors
|
||||
== Cores personalizadas
|
||||
|
||||
Delete
|
||||
== Eliminar
|
||||
|
||||
Delete demo
|
||||
== Eliminar demo
|
||||
|
||||
Demo details
|
||||
== Detalhes da demo
|
||||
|
||||
Demofile: %s
|
||||
== Demo: %s
|
||||
|
||||
Demos
|
||||
== Demos
|
||||
|
||||
Disconnect
|
||||
== Desconectar
|
||||
|
||||
Disconnected
|
||||
== Desconectado
|
||||
|
||||
Display Modes
|
||||
== Modos de exibição
|
||||
|
||||
Downloading map
|
||||
== A fazer download do mapa...
|
||||
|
||||
Draw!
|
||||
== Empate!
|
||||
|
||||
Dynamic Camera
|
||||
== Câmera dinâmica
|
||||
|
||||
Emoticon
|
||||
== Emoticon
|
||||
|
||||
Enter
|
||||
== Entrar
|
||||
|
||||
Error
|
||||
== Erro
|
||||
|
||||
Error loading demo
|
||||
== Erro a carregar a demo
|
||||
|
||||
FSAA samples
|
||||
== Amostras FSAA
|
||||
|
||||
Favorite
|
||||
== Favorito
|
||||
|
||||
Favorites
|
||||
== Favoritos
|
||||
|
||||
Feet
|
||||
== Pés
|
||||
|
||||
Filter
|
||||
== Filtro
|
||||
|
||||
Fire
|
||||
== Disparar
|
||||
|
||||
Folder
|
||||
== Pasta
|
||||
|
||||
Force vote
|
||||
== Forçar
|
||||
|
||||
Free-View
|
||||
== Vista Livre
|
||||
|
||||
Friends
|
||||
== Amigos
|
||||
|
||||
Fullscreen
|
||||
== Fullscreen (Ecrã inteiro)
|
||||
|
||||
Game
|
||||
== Jogo
|
||||
|
||||
Game info
|
||||
== Info sobre o jogo
|
||||
|
||||
Game over
|
||||
== Fim de Jogo
|
||||
|
||||
Game type
|
||||
== Tipo de jogo
|
||||
|
||||
Game types:
|
||||
== Tipos de jogo:
|
||||
|
||||
General
|
||||
== Geral
|
||||
|
||||
Graphics
|
||||
== Gráficos
|
||||
|
||||
Grenade
|
||||
== Granada
|
||||
|
||||
Hammer
|
||||
== Martelo
|
||||
|
||||
Has people playing
|
||||
== Há gente a jogar
|
||||
|
||||
High Detail
|
||||
== Mais detalhes (HD)
|
||||
|
||||
Hook
|
||||
== Gancho
|
||||
|
||||
Host address
|
||||
== Direcção do Host
|
||||
|
||||
Hue
|
||||
== Matiz
|
||||
|
||||
Info
|
||||
== Info.
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Demo inválida
|
||||
|
||||
Join blue
|
||||
== Juntar - Azuis
|
||||
|
||||
Join game
|
||||
== Entrar no jogo
|
||||
|
||||
Join red
|
||||
== J. Vermelhos
|
||||
|
||||
Jump
|
||||
== Saltar
|
||||
|
||||
Kick player
|
||||
== Expulsar jogador
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Língua
|
||||
|
||||
Length:
|
||||
== Longitude:
|
||||
|
||||
Lht.
|
||||
== Luz
|
||||
|
||||
Loading
|
||||
== Aguarda por favor
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Mapa
|
||||
|
||||
Map:
|
||||
== Mapa:
|
||||
|
||||
Max Screenshots
|
||||
== Máx. de Capturas de Tela
|
||||
|
||||
Max demos
|
||||
== Demos maximas
|
||||
|
||||
Maximum ping:
|
||||
== Ping máximo:
|
||||
|
||||
Miscellaneous
|
||||
== Diversos
|
||||
|
||||
Mouse sens.
|
||||
== Sens. do rato
|
||||
|
||||
Move left
|
||||
== Esquerda
|
||||
|
||||
Move player to spectators
|
||||
== Juntar jogador aos espectadores
|
||||
|
||||
Move right
|
||||
== Direita
|
||||
|
||||
Movement
|
||||
== Movimento
|
||||
|
||||
Mute when not active
|
||||
== Silencíar os jogadores inactivos
|
||||
|
||||
Name
|
||||
== Nome
|
||||
|
||||
Name plates size
|
||||
== Caracteres maximos nos nicks
|
||||
|
||||
Netversion:
|
||||
== Netversion
|
||||
|
||||
New name:
|
||||
== Novo nome:
|
||||
|
||||
News
|
||||
== Notícia
|
||||
|
||||
Next weapon
|
||||
== Próxima arma
|
||||
|
||||
Nickname
|
||||
== Nick
|
||||
|
||||
No
|
||||
== Não
|
||||
|
||||
No password
|
||||
== Sem password
|
||||
|
||||
No servers found
|
||||
== Nenhum servidor encontrado.
|
||||
|
||||
No servers match your filter criteria
|
||||
== Não há servidores que correspondam às definições de procura.
|
||||
|
||||
Ok
|
||||
== Aceitar
|
||||
|
||||
Open
|
||||
== Abrir
|
||||
|
||||
Parent Folder
|
||||
== Pasta superior
|
||||
|
||||
Password
|
||||
== Password
|
||||
|
||||
Password incorrect
|
||||
== Password errada!
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistola
|
||||
|
||||
Play
|
||||
== Ver
|
||||
|
||||
Play background music
|
||||
== Tocar a música de fundo
|
||||
|
||||
Player
|
||||
== Jogador
|
||||
|
||||
Player country:
|
||||
== País do jogador
|
||||
|
||||
Player options
|
||||
== Opções do jogador
|
||||
|
||||
Players
|
||||
== Jogadores
|
||||
|
||||
Please balance teams!
|
||||
== Equilibrem as equipas!
|
||||
|
||||
Prev. weapon
|
||||
== Arma anterior
|
||||
|
||||
Quality Textures
|
||||
== Texturas de Qualidade
|
||||
|
||||
Quick search:
|
||||
== Busca rápida:
|
||||
|
||||
Quit
|
||||
== Sair
|
||||
|
||||
Quit anyway?
|
||||
== Sair na mesma?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Motivo:
|
||||
|
||||
Record demo
|
||||
== Gravar uma demo
|
||||
|
||||
Red team
|
||||
== Equipa vermelha
|
||||
|
||||
Red team wins!
|
||||
== Ganhou a equipa vermelha!
|
||||
|
||||
Refresh
|
||||
== Actualizar
|
||||
|
||||
Refreshing master servers
|
||||
== A Actualizar servidores
|
||||
|
||||
Remote console
|
||||
== Remote console
|
||||
|
||||
Remove
|
||||
== Eliminar
|
||||
|
||||
Remove friend
|
||||
== Deixar de ser amigo
|
||||
|
||||
Rename
|
||||
== Renomear
|
||||
|
||||
Rename demo
|
||||
== Renomear demo
|
||||
|
||||
Reset filter
|
||||
== Reiniciar Fitro
|
||||
|
||||
Reset to defaults
|
||||
== Por como defeito
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Ronda
|
||||
|
||||
Sample rate
|
||||
== Frequencia de rate
|
||||
|
||||
Sat.
|
||||
== Sat.
|
||||
|
||||
Score
|
||||
== Pontos
|
||||
|
||||
Score board
|
||||
== Tabela de Pontos
|
||||
|
||||
Score limit
|
||||
== Pontuação Máx.
|
||||
|
||||
Scoreboard
|
||||
== Pontuação
|
||||
|
||||
Screenshot
|
||||
== Screenshot
|
||||
|
||||
Server address:
|
||||
== Direção do servidor:
|
||||
|
||||
Server details
|
||||
== Detalhes do servidor
|
||||
|
||||
Server filter
|
||||
== Filtro de servidores
|
||||
|
||||
Server info
|
||||
== Info de servidor
|
||||
|
||||
Server not full
|
||||
== Não está cheio
|
||||
|
||||
Settings
|
||||
== Config.
|
||||
|
||||
Shotgun
|
||||
== Espingarda
|
||||
|
||||
Show chat
|
||||
== Mostrar chat
|
||||
|
||||
Show friends only
|
||||
== Mostrar amigos
|
||||
|
||||
Show ingame HUD
|
||||
== Mostrar HUD do jogo
|
||||
|
||||
Show name plates
|
||||
== Mostrar nick's
|
||||
|
||||
Show only supported
|
||||
== Mostrar apenas suportado
|
||||
|
||||
Size:
|
||||
== Tamanho:
|
||||
|
||||
Skins
|
||||
== Skins
|
||||
|
||||
Sound
|
||||
== Som
|
||||
|
||||
Sound error
|
||||
== Erro no som!
|
||||
|
||||
Sound volume
|
||||
== Volume
|
||||
|
||||
Spectate
|
||||
== Observar
|
||||
|
||||
Spectate next
|
||||
== Observar próximo
|
||||
|
||||
Spectate previous
|
||||
== Observar anterior
|
||||
|
||||
Spectator mode
|
||||
== Modo espectador
|
||||
|
||||
Spectators
|
||||
== Espectadores
|
||||
|
||||
Standard gametype
|
||||
== Tipo de jogo normal
|
||||
|
||||
Standard map
|
||||
== Mapa normal
|
||||
|
||||
Stop record
|
||||
== Parar de gravar
|
||||
|
||||
Strict gametype filter
|
||||
== Tipo de jogo especifico
|
||||
|
||||
Sudden Death
|
||||
== Morte súbita
|
||||
|
||||
Switch weapon on pickup
|
||||
== Mudar de arma ao agarrar
|
||||
|
||||
Team
|
||||
== Equipa
|
||||
|
||||
Team chat
|
||||
== Chat de equipa
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s já saiu! Download em www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Compressão de Textura
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== O dispositivo de som não pode ser iniciado.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== O servidor está a usar um tipo de jogo não oficial.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== O mapa que editas-te não foi gravado. Queres gravar antes de sair?
|
||||
|
||||
Time limit
|
||||
== Tempo máx.
|
||||
|
||||
Time limit: %d min
|
||||
== Limite de tempo: %d min
|
||||
|
||||
Try again
|
||||
== Tenta outra vez
|
||||
|
||||
Type
|
||||
== Tipo
|
||||
|
||||
Type:
|
||||
== Tipo:
|
||||
|
||||
UI Color
|
||||
== Cor do menu
|
||||
|
||||
Unable to delete the demo
|
||||
== Não podes eliminar a demo
|
||||
|
||||
Unable to rename the demo
|
||||
== Impossivel de renomear a demo
|
||||
|
||||
Use sounds
|
||||
== Usar sons
|
||||
|
||||
Use team colors for name plates
|
||||
== Usar cores dos nicks com a cor da equipa
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Versão
|
||||
|
||||
Version:
|
||||
== Versão
|
||||
|
||||
Vote command:
|
||||
== Comando:
|
||||
|
||||
Vote description:
|
||||
== Descrição de votação:
|
||||
|
||||
Vote no
|
||||
== Votar não
|
||||
|
||||
Vote yes
|
||||
== Votar sim
|
||||
|
||||
Voting
|
||||
== A votar
|
||||
|
||||
Warmup
|
||||
== Aquecimento
|
||||
|
||||
Weapon
|
||||
== Arma
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Bem-vindo ao Teeworlds!
|
||||
|
||||
Yes
|
||||
== Sim
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Para que as configurações sejam efectuadas deves Reiniciar o jogo.
|
||||
|
||||
Your skin
|
||||
== A tua skin
|
||||
|
||||
no limit
|
||||
== sem limite
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d octeți
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d/%d servere, %d jucători
|
||||
|
||||
%d%% loaded
|
||||
== %d%% încărcat
|
||||
|
||||
%ds left
|
||||
== %ds a ieșit
|
||||
|
||||
%i minute left
|
||||
== %i minute rămas
|
||||
|
||||
%i minutes left
|
||||
== %i minutes rămase
|
||||
|
||||
%i second left
|
||||
== %i secundă rămasă
|
||||
|
||||
%i seconds left
|
||||
== %i secunde rămase
|
||||
|
||||
%s wins!
|
||||
== %s câștigă!
|
||||
|
||||
-Page %d-
|
||||
== -Pagina %d-
|
||||
|
||||
Abort
|
||||
== Anulează
|
||||
|
||||
Add
|
||||
== Adaugă
|
||||
|
||||
Add Friend
|
||||
== Adaugă prieten
|
||||
|
||||
Address
|
||||
== Adresa
|
||||
|
||||
All
|
||||
== Toți
|
||||
|
||||
Alpha
|
||||
== Alfa
|
||||
|
||||
Always show name plates
|
||||
== Afișează întotdeauna pseudonimele
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Sigur vrei să ștergi demo-ul?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Sigur vrei să ieși?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Sigur vrei să ștergi jucătorul din lista ta de prieteni?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Aceasta fiind prima lansare a jocului, te rog introdu-ți pseudonimul mai jos. E recomandat să verifici setările și să le ajustezi cum vrei înainte să intri pe un server.
|
||||
|
||||
Automatically record demos
|
||||
== Înregistrează automat demo-uri
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Fă automat o captură de ecran la final
|
||||
|
||||
Blue team
|
||||
== Echipa albastră
|
||||
|
||||
Blue team wins!
|
||||
== Echipa albastră a câștigat!
|
||||
|
||||
Body
|
||||
== Corp
|
||||
|
||||
Call vote
|
||||
== Votează
|
||||
|
||||
Change settings
|
||||
== Modifică setările
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Clanul
|
||||
|
||||
Client
|
||||
== Clientul
|
||||
|
||||
Close
|
||||
== Închide
|
||||
|
||||
Compatible version
|
||||
== Versiune compatibilă
|
||||
|
||||
Connect
|
||||
== Conectează
|
||||
|
||||
Connecting to
|
||||
== Conectare la
|
||||
|
||||
Connection Problems...
|
||||
== Probleme la conexiune...
|
||||
|
||||
Console
|
||||
== Consolă
|
||||
|
||||
Controls
|
||||
== Controale
|
||||
|
||||
Count players only
|
||||
== Numără doar jucătorii
|
||||
|
||||
Country
|
||||
== Țara
|
||||
|
||||
Crc:
|
||||
== Suma de control:
|
||||
|
||||
Created:
|
||||
== Creată la data:
|
||||
|
||||
Current
|
||||
== Curent
|
||||
|
||||
Current version: %s
|
||||
== Versiunea actuală: %s
|
||||
|
||||
Custom colors
|
||||
== Culori personalizate
|
||||
|
||||
Delete
|
||||
== Șterge
|
||||
|
||||
Delete demo
|
||||
== Șterge demonstrația
|
||||
|
||||
Demo details
|
||||
== Detalii demo
|
||||
|
||||
Demofile: %s
|
||||
== Fișier demo: %s
|
||||
|
||||
Demos
|
||||
== Demo
|
||||
|
||||
Disconnect
|
||||
== Deconectare
|
||||
|
||||
Disconnected
|
||||
== Deconectat
|
||||
|
||||
Display Modes
|
||||
== Moduri de afișare
|
||||
|
||||
Downloading map
|
||||
== Se descarcă harta
|
||||
|
||||
Draw!
|
||||
== Egalitate!
|
||||
|
||||
Dynamic Camera
|
||||
== Cameră dinamică
|
||||
|
||||
Emoticon
|
||||
== Figurine
|
||||
|
||||
Enter
|
||||
== Intră
|
||||
|
||||
Error
|
||||
== Eroare
|
||||
|
||||
Error loading demo
|
||||
== Eroare la încărcarea demo-ului
|
||||
|
||||
FSAA samples
|
||||
== Eșantioane FSAA
|
||||
|
||||
Favorite
|
||||
== Favorit
|
||||
|
||||
Favorites
|
||||
== Favorite
|
||||
|
||||
Feet
|
||||
== Picioare
|
||||
|
||||
Filter
|
||||
== Filtre
|
||||
|
||||
Fire
|
||||
== Foc
|
||||
|
||||
Folder
|
||||
== Dosar
|
||||
|
||||
Force vote
|
||||
== Forțează votul
|
||||
|
||||
Free-View
|
||||
== Vizualizare liberă
|
||||
|
||||
Friends
|
||||
== Prieteni
|
||||
|
||||
Fullscreen
|
||||
== Ecrat complet
|
||||
|
||||
Game
|
||||
== Joc
|
||||
|
||||
Game info
|
||||
== Informații joc
|
||||
|
||||
Game over
|
||||
== Final de joc
|
||||
|
||||
Game type
|
||||
== Tip de joc
|
||||
|
||||
Game types:
|
||||
== Tipuri de joc:
|
||||
|
||||
General
|
||||
== General
|
||||
|
||||
Graphics
|
||||
== Grafică
|
||||
|
||||
Grenade
|
||||
== Grenade
|
||||
|
||||
Hammer
|
||||
== Ciocan
|
||||
|
||||
Has people playing
|
||||
== Are jucători activi
|
||||
|
||||
High Detail
|
||||
== Detalii înalte
|
||||
|
||||
Hook
|
||||
== Cârlig
|
||||
|
||||
Host address
|
||||
== Adresa gazdei
|
||||
|
||||
Hue
|
||||
== Tentă
|
||||
|
||||
Info
|
||||
== Informații
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Demo nevalid
|
||||
|
||||
Join blue
|
||||
== La albaștri
|
||||
|
||||
Join game
|
||||
== Intră în joc
|
||||
|
||||
Join red
|
||||
== La roșii
|
||||
|
||||
Jump
|
||||
== Salt
|
||||
|
||||
Kick player
|
||||
== Dă afară jucător
|
||||
|
||||
LAN
|
||||
== Rețea
|
||||
|
||||
Language
|
||||
== Limba
|
||||
|
||||
Length:
|
||||
== Durată:
|
||||
|
||||
Lht.
|
||||
== Luminozitate
|
||||
|
||||
Loading
|
||||
== Se încarcă
|
||||
|
||||
MOTD
|
||||
== Mesajul zilei
|
||||
|
||||
Map
|
||||
== Hartă
|
||||
|
||||
Map:
|
||||
== Harta:
|
||||
|
||||
Max Screenshots
|
||||
== Număr maxim de capturi de ecran
|
||||
|
||||
Max demos
|
||||
== Număr maxim de demo-uri
|
||||
|
||||
Maximum ping:
|
||||
== Ping maxim:
|
||||
|
||||
Miscellaneous
|
||||
== Diverse
|
||||
|
||||
Mouse sens.
|
||||
== Sensib. maus
|
||||
|
||||
Move left
|
||||
== Mută la stânga
|
||||
|
||||
Move player to spectators
|
||||
== Mută jucătorul la spectatori
|
||||
|
||||
Move right
|
||||
== Mută la dreapta
|
||||
|
||||
Movement
|
||||
== Mișcare
|
||||
|
||||
Mute when not active
|
||||
== Opreşte sunetul la inactivate
|
||||
|
||||
Name
|
||||
== Nume
|
||||
|
||||
Name plates size
|
||||
== Dimensiune nume placă
|
||||
|
||||
Netversion:
|
||||
== Cod rețea:
|
||||
|
||||
New name:
|
||||
== Nume nou:
|
||||
|
||||
News
|
||||
== Știri
|
||||
|
||||
Next weapon
|
||||
== Arma următoare
|
||||
|
||||
Nickname
|
||||
== Pseudonim
|
||||
|
||||
No
|
||||
== Nu
|
||||
|
||||
No password
|
||||
== Fără parolă
|
||||
|
||||
No servers found
|
||||
== Nici un server găsit
|
||||
|
||||
No servers match your filter criteria
|
||||
== Nici un server nu corespunde criteriilor
|
||||
|
||||
Ok
|
||||
== Bine
|
||||
|
||||
Open
|
||||
== Deschide
|
||||
|
||||
Parent Folder
|
||||
== Dosarul părinte
|
||||
|
||||
Password
|
||||
== Parolă
|
||||
|
||||
Password incorrect
|
||||
== Parolă incorectă
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistol
|
||||
|
||||
Play
|
||||
== Redă
|
||||
|
||||
Play background music
|
||||
== Redă muzică în fundal
|
||||
|
||||
Player
|
||||
== Jucător
|
||||
|
||||
Player country:
|
||||
== Țara jucătorului:
|
||||
|
||||
Player options
|
||||
== Opțiuni jucător
|
||||
|
||||
Players
|
||||
== Jucători
|
||||
|
||||
Please balance teams!
|
||||
== Echilibrați echipele!
|
||||
|
||||
Prev. weapon
|
||||
== Arma precedentă
|
||||
|
||||
Quality Textures
|
||||
== Texturi de înaltă calitate
|
||||
|
||||
Quick search:
|
||||
== Căutare rapidă:
|
||||
|
||||
Quit
|
||||
== Ieșire
|
||||
|
||||
Quit anyway?
|
||||
== Ieși oricum?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Motiv:
|
||||
|
||||
Record demo
|
||||
== Înreg. demo
|
||||
|
||||
Red team
|
||||
== Echipa roșie
|
||||
|
||||
Red team wins!
|
||||
== Echipa roșie a câștigat!
|
||||
|
||||
Refresh
|
||||
== Reîncarcă
|
||||
|
||||
Refreshing master servers
|
||||
== Reîncarcă serverele principale
|
||||
|
||||
Remote console
|
||||
== Consolă server
|
||||
|
||||
Remove
|
||||
== Șterge
|
||||
|
||||
Remove friend
|
||||
== Șterge prietenul
|
||||
|
||||
Rename
|
||||
== Redenumește
|
||||
|
||||
Rename demo
|
||||
== Redenumește demo-ul
|
||||
|
||||
Reset filter
|
||||
== Filtru implicit
|
||||
|
||||
Reset to defaults
|
||||
== Setări implicite
|
||||
|
||||
Rifle
|
||||
== Carabină
|
||||
|
||||
Round
|
||||
== Runda
|
||||
|
||||
Sample rate
|
||||
== Frecvența
|
||||
|
||||
Sat.
|
||||
== Saturație
|
||||
|
||||
Score
|
||||
== Scor
|
||||
|
||||
Score board
|
||||
== Scoruri
|
||||
|
||||
Score limit
|
||||
== Limita de scor
|
||||
|
||||
Scoreboard
|
||||
== Scoruri
|
||||
|
||||
Screenshot
|
||||
== Captură de ecran
|
||||
|
||||
Server address:
|
||||
== Adresă server:
|
||||
|
||||
Server details
|
||||
== Detalii server
|
||||
|
||||
Server filter
|
||||
== Filtru servere:
|
||||
|
||||
Server info
|
||||
== Info. server
|
||||
|
||||
Server not full
|
||||
== Are locuri libere
|
||||
|
||||
Settings
|
||||
== Setări
|
||||
|
||||
Shotgun
|
||||
== Pușcă
|
||||
|
||||
Show chat
|
||||
== Afișare chat
|
||||
|
||||
Show friends only
|
||||
== Arată prietenii
|
||||
|
||||
Show ingame HUD
|
||||
== Arată scorul în joc
|
||||
|
||||
Show name plates
|
||||
== Arată pseudonimele
|
||||
|
||||
Show only supported
|
||||
== Arată doar modurile suportate
|
||||
|
||||
Size:
|
||||
== Dimensiunea:
|
||||
|
||||
Skins
|
||||
== Costume
|
||||
|
||||
Sound
|
||||
== Sunet
|
||||
|
||||
Sound error
|
||||
== Eroare de sunet
|
||||
|
||||
Sound volume
|
||||
== Volum sunet
|
||||
|
||||
Spectate
|
||||
== Spectator
|
||||
|
||||
Spectate next
|
||||
== Vezi următorul
|
||||
|
||||
Spectate previous
|
||||
== Vezi anteriorul
|
||||
|
||||
Spectator mode
|
||||
== Mod spectator
|
||||
|
||||
Spectators
|
||||
== Spectatori
|
||||
|
||||
Standard gametype
|
||||
== Jocuri standard
|
||||
|
||||
Standard map
|
||||
== Hărți standard
|
||||
|
||||
Stop record
|
||||
== Stop înreg.
|
||||
|
||||
Strict gametype filter
|
||||
== Filtru strict tip joc
|
||||
|
||||
Sudden Death
|
||||
== Moarte subită
|
||||
|
||||
Switch weapon on pickup
|
||||
== Schimbă arma la găsire
|
||||
|
||||
Team
|
||||
== Echipa
|
||||
|
||||
Team chat
|
||||
== Chat cu echipa
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s este lansat! Descarcă-l de la www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Compresie texturi
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Dispozitivul audio nu a putut fi inițializat.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Serverul folosește parametri ne-standard într-un joc standard.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Există o hartă nesalvată în editor. Probabil vrei să o salvezi înainte să ieși din joc.
|
||||
|
||||
Time limit
|
||||
== Timp limită
|
||||
|
||||
Time limit: %d min
|
||||
== Timp limită : %d min
|
||||
|
||||
Try again
|
||||
== Reîncearcă
|
||||
|
||||
Type
|
||||
== Tip
|
||||
|
||||
Type:
|
||||
== Tip:
|
||||
|
||||
UI Color
|
||||
== Culoare meniu
|
||||
|
||||
Unable to delete the demo
|
||||
== Nu pot șterge demo-ul
|
||||
|
||||
Unable to rename the demo
|
||||
== Nu pot redenumi demo-ul
|
||||
|
||||
Use sounds
|
||||
== Folosește sunetul
|
||||
|
||||
Use team colors for name plates
|
||||
== Folosește culorile echipelor pe etichetele de nume
|
||||
|
||||
V-Sync
|
||||
== Sincronizare verticală (V-Sync)
|
||||
|
||||
Version
|
||||
== Versiune
|
||||
|
||||
Version:
|
||||
== Versiune:
|
||||
|
||||
Vote command:
|
||||
== Comandă votare:
|
||||
|
||||
Vote description:
|
||||
== Descriere votare:
|
||||
|
||||
Vote no
|
||||
== Votează nu
|
||||
|
||||
Vote yes
|
||||
== Votează da
|
||||
|
||||
Voting
|
||||
== Votare
|
||||
|
||||
Warmup
|
||||
== Încălzire
|
||||
|
||||
Weapon
|
||||
== Arme
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Bun venit în Teeworlds
|
||||
|
||||
Yes
|
||||
== Da
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Trebuie să repornești jocul pentru aplicarea setărilor.
|
||||
|
||||
Your skin
|
||||
== Costumul tău
|
||||
|
||||
no limit
|
||||
== fără limită
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,677 +0,0 @@
|
|||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d байт
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d из %d серверов, %d игроков
|
||||
|
||||
%d%% loaded
|
||||
== %d%% загружено
|
||||
|
||||
%ds left
|
||||
== осталось %d сек.
|
||||
|
||||
%i minute left
|
||||
== Осталась %i минута!
|
||||
|
||||
%i minutes left
|
||||
== Осталось %i минут!
|
||||
|
||||
%i second left
|
||||
== Осталась %i секунда!
|
||||
|
||||
%i seconds left
|
||||
== Осталось %i секунд!
|
||||
|
||||
%s wins!
|
||||
== %s победил!
|
||||
|
||||
-Page %d-
|
||||
== -Страница %d-
|
||||
|
||||
Abort
|
||||
== Отмена
|
||||
|
||||
Add
|
||||
== Добавить
|
||||
|
||||
Add Friend
|
||||
== Добавить друга
|
||||
|
||||
Address
|
||||
== Адрес
|
||||
|
||||
All
|
||||
== Все
|
||||
|
||||
Alpha
|
||||
== Прозрачн.
|
||||
|
||||
Always show name plates
|
||||
== Всегда показывать имена игроков
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Вы уверены, что хотите удалить демо?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Вы действительно желаете выйти?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Вы уверены, что хотите удалить игрока из друзей?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Пожалуйста, введите своё имя. Также рекоммендуется проверить настройки игры и поменять некоторые из них перед тем, как начать играть.
|
||||
|
||||
Automatically record demos
|
||||
== Автоматически записывать демо
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Делать снимок результатов игры
|
||||
|
||||
Blue team
|
||||
== Синие
|
||||
|
||||
Blue team wins!
|
||||
== Синие победили!
|
||||
|
||||
Body
|
||||
== Тело
|
||||
|
||||
Call vote
|
||||
== Голосовать
|
||||
|
||||
Change settings
|
||||
== Изменить настройки
|
||||
|
||||
Chat
|
||||
== Чат
|
||||
|
||||
Clan
|
||||
== Клан
|
||||
|
||||
Client
|
||||
== Клиент
|
||||
|
||||
Close
|
||||
== Выход
|
||||
|
||||
Compatible version
|
||||
== Совместимая версия
|
||||
|
||||
Connect
|
||||
== Подключиться
|
||||
|
||||
Connecting to
|
||||
== Подключение к
|
||||
|
||||
Connection Problems...
|
||||
== Проблемы со связью...
|
||||
|
||||
Console
|
||||
== Консоль
|
||||
|
||||
Controls
|
||||
== Управление
|
||||
|
||||
Count players only
|
||||
== Считать только игроков
|
||||
|
||||
Country
|
||||
== Флаг вашей страны
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Создан:
|
||||
|
||||
Current
|
||||
== Текущий
|
||||
|
||||
Current version: %s
|
||||
== Текущая версия: %s
|
||||
|
||||
Custom colors
|
||||
== Свои цвета
|
||||
|
||||
Delete
|
||||
== Удалить
|
||||
|
||||
Delete demo
|
||||
== Удалить демо
|
||||
|
||||
Demo details
|
||||
== Детали демо
|
||||
|
||||
Demofile: %s
|
||||
== Демо: %s
|
||||
|
||||
Demos
|
||||
== Демо
|
||||
|
||||
Disconnect
|
||||
== Отключить
|
||||
|
||||
Disconnected
|
||||
== Отключено
|
||||
|
||||
Display Modes
|
||||
== Разрешение экрана
|
||||
|
||||
Downloading map
|
||||
== Скачивание карты
|
||||
|
||||
Draw!
|
||||
== Ничья!
|
||||
|
||||
Dynamic Camera
|
||||
== Динамическая камера
|
||||
|
||||
Emoticon
|
||||
== Эмоции
|
||||
|
||||
Enter
|
||||
== Вход
|
||||
|
||||
Error
|
||||
== Ошибка
|
||||
|
||||
Error loading demo
|
||||
== ошибка при загрузке демо
|
||||
|
||||
FSAA samples
|
||||
== Сэмплов FSAA
|
||||
|
||||
Favorite
|
||||
== Избранный
|
||||
|
||||
Favorites
|
||||
== Избранные
|
||||
|
||||
Feet
|
||||
== Ноги
|
||||
|
||||
Filter
|
||||
== Фильтр
|
||||
|
||||
Fire
|
||||
== Выстрел
|
||||
|
||||
Folder
|
||||
== Папка
|
||||
|
||||
Force vote
|
||||
== Форсировать
|
||||
|
||||
Free-View
|
||||
== Свободный обзор
|
||||
|
||||
Friends
|
||||
== Друзья
|
||||
|
||||
Fullscreen
|
||||
== Полноэкранный режим
|
||||
|
||||
Game
|
||||
== Игра
|
||||
|
||||
Game info
|
||||
== Инфо об игре
|
||||
|
||||
Game over
|
||||
== Игра окончена
|
||||
|
||||
Game type
|
||||
== Тип игры
|
||||
|
||||
Game types:
|
||||
== Тип игры:
|
||||
|
||||
General
|
||||
== Основные
|
||||
|
||||
Graphics
|
||||
== Графика
|
||||
|
||||
Grenade
|
||||
== Гранатомёт
|
||||
|
||||
Hammer
|
||||
== Молот
|
||||
|
||||
Has people playing
|
||||
== Не пустой сервер
|
||||
|
||||
High Detail
|
||||
== Высокая детализация
|
||||
|
||||
Hook
|
||||
== Крюк
|
||||
|
||||
Host address
|
||||
== Адрес сервера
|
||||
|
||||
Hue
|
||||
== Оттенок
|
||||
|
||||
Info
|
||||
== Инфо
|
||||
|
||||
Internet
|
||||
== Интернет
|
||||
|
||||
Invalid Demo
|
||||
== Недопустимое демо
|
||||
|
||||
Join blue
|
||||
== За синих
|
||||
|
||||
Join game
|
||||
== Играть
|
||||
|
||||
Join red
|
||||
== За красных
|
||||
|
||||
Jump
|
||||
== Прыжок
|
||||
|
||||
Kick player
|
||||
== Забанить игрока
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Язык
|
||||
|
||||
Length:
|
||||
== Длина
|
||||
|
||||
Lht.
|
||||
== Яркость
|
||||
|
||||
Loading
|
||||
== Загрузка
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Карта
|
||||
|
||||
Map:
|
||||
== Карта:
|
||||
|
||||
Max Screenshots
|
||||
== Максимальное количество снимков
|
||||
|
||||
Max demos
|
||||
== Максимальное количество демо
|
||||
|
||||
Maximum ping:
|
||||
== Макс. пинг:
|
||||
|
||||
Miscellaneous
|
||||
== Дополнительно
|
||||
|
||||
Mouse sens.
|
||||
== Чувств. мыши
|
||||
|
||||
Move left
|
||||
== Шаг влево
|
||||
|
||||
Move player to spectators
|
||||
== Сделать наблюдателем
|
||||
|
||||
Move right
|
||||
== Шаг вправо
|
||||
|
||||
Movement
|
||||
== Перемещение
|
||||
|
||||
Mute when not active
|
||||
== Глушить звуки, когда игра неактивна
|
||||
|
||||
Name
|
||||
== Имя
|
||||
|
||||
Name plates size
|
||||
== Размер
|
||||
|
||||
Netversion:
|
||||
== Версия:
|
||||
|
||||
New name:
|
||||
== Новое имя
|
||||
|
||||
News
|
||||
== Новости
|
||||
|
||||
Next weapon
|
||||
== След. оружие
|
||||
|
||||
Nickname
|
||||
== Имя
|
||||
|
||||
No
|
||||
== Нет
|
||||
|
||||
No password
|
||||
== Без пароля
|
||||
|
||||
No servers found
|
||||
== Сервера не найдены
|
||||
|
||||
No servers match your filter criteria
|
||||
== Нет серверов, подходящих под ваш фильтр
|
||||
|
||||
Ok
|
||||
== ОК
|
||||
|
||||
Open
|
||||
== Открыть
|
||||
|
||||
Parent Folder
|
||||
== Родительский каталог
|
||||
|
||||
Password
|
||||
== Пароль
|
||||
|
||||
Password incorrect
|
||||
== Пароль
|
||||
|
||||
Ping
|
||||
== Пинг
|
||||
|
||||
Pistol
|
||||
== Пистолет
|
||||
|
||||
Play
|
||||
== Просмотр
|
||||
|
||||
Play background music
|
||||
== Играть фоновую музыку
|
||||
|
||||
Player
|
||||
== Игрок
|
||||
|
||||
Player country:
|
||||
== Страна:
|
||||
|
||||
Player options
|
||||
== Опции игрока
|
||||
|
||||
Players
|
||||
== Игроки
|
||||
|
||||
Please balance teams!
|
||||
== Сбалансируйте команды!
|
||||
|
||||
Prev. weapon
|
||||
== Пред. оружие
|
||||
|
||||
Quality Textures
|
||||
== Качественные текстуры
|
||||
|
||||
Quick search:
|
||||
== Быстрый поиск:
|
||||
|
||||
Quit
|
||||
== Выход
|
||||
|
||||
Quit anyway?
|
||||
== Выйти?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Причина:
|
||||
|
||||
Record demo
|
||||
== Записать демо
|
||||
|
||||
Red team
|
||||
== Красные
|
||||
|
||||
Red team wins!
|
||||
== Красные победили!
|
||||
|
||||
Refresh
|
||||
== Обновить
|
||||
|
||||
Refreshing master servers
|
||||
== Обновление списка мастер-серверов
|
||||
|
||||
Remote console
|
||||
== Консоль сервера
|
||||
|
||||
Remove
|
||||
== Удалить
|
||||
|
||||
Remove friend
|
||||
== Удалить друга
|
||||
|
||||
Rename
|
||||
== Переименов.
|
||||
|
||||
Rename demo
|
||||
== Переименовать демо
|
||||
|
||||
Reset filter
|
||||
== Сбросить фильтры
|
||||
|
||||
Reset to defaults
|
||||
== Сбросить настройки
|
||||
|
||||
Rifle
|
||||
== Бластер
|
||||
|
||||
Round
|
||||
== Раунд
|
||||
|
||||
Sample rate
|
||||
== Частота
|
||||
|
||||
Sat.
|
||||
== Контраст
|
||||
|
||||
Score
|
||||
== Очки
|
||||
|
||||
Score board
|
||||
== Табло
|
||||
|
||||
Score limit
|
||||
== Лимит очков
|
||||
|
||||
Scoreboard
|
||||
== Табло
|
||||
|
||||
Screenshot
|
||||
== Снимок
|
||||
|
||||
Server address:
|
||||
== Адрес сервера
|
||||
|
||||
Server details
|
||||
== Детали сервера
|
||||
|
||||
Server filter
|
||||
== Фильтр серверов
|
||||
|
||||
Server info
|
||||
== Информация
|
||||
|
||||
Server not full
|
||||
== Сервер не заполнен
|
||||
|
||||
Settings
|
||||
== Настройки
|
||||
|
||||
Shotgun
|
||||
== Дробовик
|
||||
|
||||
Show chat
|
||||
== Показать чат
|
||||
|
||||
Show friends only
|
||||
== Только с друзьями
|
||||
|
||||
Show ingame HUD
|
||||
== Показывать внутриигровой HUD
|
||||
|
||||
Show name plates
|
||||
== Показывать имена игроков
|
||||
|
||||
Show only supported
|
||||
== Показывать только поддерживаемые разрешения экрана
|
||||
|
||||
Size:
|
||||
== Размер:
|
||||
|
||||
Skins
|
||||
== Скины
|
||||
|
||||
Sound
|
||||
== Звук
|
||||
|
||||
Sound error
|
||||
== Звуковая ошибка
|
||||
|
||||
Sound volume
|
||||
== Громкость звука
|
||||
|
||||
Spectate
|
||||
== Наблюдать
|
||||
|
||||
Spectate next
|
||||
== Наблюдать след.
|
||||
|
||||
Spectate previous
|
||||
== Наблюдать пред.
|
||||
|
||||
Spectator mode
|
||||
== Наблюдатель
|
||||
|
||||
Spectators
|
||||
== Наблюдатели
|
||||
|
||||
Standard gametype
|
||||
== Стандартный тип игры
|
||||
|
||||
Standard map
|
||||
== Стандартная карта
|
||||
|
||||
Stop record
|
||||
== Стоп
|
||||
|
||||
Strict gametype filter
|
||||
== Строгий фильтр р-мов
|
||||
|
||||
Sudden Death
|
||||
== Быстрая смерть
|
||||
|
||||
Switch weapon on pickup
|
||||
== Переключать оружие при подборе
|
||||
|
||||
Team
|
||||
== Команда
|
||||
|
||||
Team chat
|
||||
== Командный чат
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Вышла Teeworlds %s! Скачивайте на www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Сжатие текстур
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Аудио устройство не может быть инициализировано
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Сервер запущен с нестандартными настройками на стандартном типе игры.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Есть несохранённая карта в редакторе, Вы можете сохранить её перед тем, как выйти.
|
||||
|
||||
Time limit
|
||||
== Лимит времени
|
||||
|
||||
Time limit: %d min
|
||||
== Лимит времени: %d
|
||||
|
||||
Try again
|
||||
== ОК
|
||||
|
||||
Type
|
||||
== Тип
|
||||
|
||||
Type:
|
||||
== Тип:
|
||||
|
||||
UI Color
|
||||
== Цвет интерфейса
|
||||
|
||||
Unable to delete the demo
|
||||
== Невозможно удалить демо
|
||||
|
||||
Unable to rename the demo
|
||||
== Невозможно переименовать демо
|
||||
|
||||
Use sounds
|
||||
== Использовать звуки
|
||||
|
||||
Use team colors for name plates
|
||||
== Командные цвета для имен игроков
|
||||
|
||||
V-Sync
|
||||
== Вертикальная синхронизация
|
||||
|
||||
Version
|
||||
== Версия
|
||||
|
||||
Version:
|
||||
== Версия:
|
||||
|
||||
Vote command:
|
||||
== Комманда голосования:
|
||||
|
||||
Vote description:
|
||||
== Описание голосования:
|
||||
|
||||
Vote no
|
||||
== Против
|
||||
|
||||
Vote yes
|
||||
== За
|
||||
|
||||
Voting
|
||||
== Голосование
|
||||
|
||||
Warmup
|
||||
== Разминка
|
||||
|
||||
Weapon
|
||||
== Оружие
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Добро пожаловать в Teeworlds!
|
||||
|
||||
Yes
|
||||
== Да
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Перезапустите игру для применения изменений.
|
||||
|
||||
Your skin
|
||||
== Ваш скин
|
||||
|
||||
no limit
|
||||
== Без лимита
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
|
@ -1,678 +0,0 @@
|
|||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bajtova
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d od %d server(a), %d igrač(a)
|
||||
|
||||
%d%% loaded
|
||||
== %d%% učitano
|
||||
|
||||
%ds left
|
||||
== Još %ds
|
||||
|
||||
%i minute left
|
||||
== %i minut preostao
|
||||
|
||||
%i minutes left
|
||||
== Preostalo: %i min.
|
||||
|
||||
%i second left
|
||||
== Preostalo: %i min.
|
||||
|
||||
%i seconds left
|
||||
== Preostalo: %i sek.
|
||||
|
||||
%s wins!
|
||||
== %s je pobedio!
|
||||
|
||||
-Page %d-
|
||||
== -Strana %d-
|
||||
|
||||
Abort
|
||||
== Prekini
|
||||
|
||||
Add
|
||||
== Dodaj
|
||||
|
||||
Add Friend
|
||||
== Dodaj prijatelja
|
||||
|
||||
Address
|
||||
== Adresa
|
||||
|
||||
All
|
||||
== Svi
|
||||
|
||||
Alpha
|
||||
== Provid.
|
||||
|
||||
Always show name plates
|
||||
== Uvek prikaži imena igrača
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Da li sigurni da želite da obrišete demo-snimak?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Jeste li sigurni da želite da izađete?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Da li ste sigurni da želite da obrišete igrača iz liste prijatelja?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Pošto prvi put pokrećete igru, molimo da ispod unesete Vaš nadimak (nick). Preporučujemo da proverite podešavanja i podesite ih prema Vašem ukusu pre nego što se konektujete na server.
|
||||
|
||||
Automatically record demos
|
||||
== Automatski snimi demo
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Automatski snimi screenshot
|
||||
|
||||
Blue team
|
||||
== Plavi tim
|
||||
|
||||
Blue team wins!
|
||||
== Plavi tim je pobedio!
|
||||
|
||||
Body
|
||||
== Telo
|
||||
|
||||
Call vote
|
||||
== Glasanje
|
||||
|
||||
Change settings
|
||||
== Izmeni podešavanja
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Klan
|
||||
|
||||
Client
|
||||
== Klijent
|
||||
|
||||
Close
|
||||
== Zatvori
|
||||
|
||||
Compatible version
|
||||
== Kompatibilna verzija
|
||||
|
||||
Connect
|
||||
== Konektuj
|
||||
|
||||
Connecting to
|
||||
== Konektujem se na
|
||||
|
||||
Connection Problems...
|
||||
== Problemi sa konekcijom...
|
||||
|
||||
Console
|
||||
== Konzola
|
||||
|
||||
Controls
|
||||
== Kontrole
|
||||
|
||||
Count players only
|
||||
== Broj samo igrače
|
||||
|
||||
Country
|
||||
== Država
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Kreirano:
|
||||
|
||||
Current
|
||||
== Trenutno
|
||||
|
||||
Current version: %s
|
||||
== Trenutna verzija: %s
|
||||
|
||||
Custom colors
|
||||
== Vlastite boje
|
||||
|
||||
Delete
|
||||
== Izbriši
|
||||
|
||||
Delete demo
|
||||
== Obriši demo-snimak
|
||||
|
||||
Demo details
|
||||
== Detalji demo-a
|
||||
|
||||
Demofile: %s
|
||||
== Demo-snimak: %s
|
||||
|
||||
Demos
|
||||
== Demo-i
|
||||
|
||||
Disconnect
|
||||
== Diskonektuj
|
||||
|
||||
Disconnected
|
||||
== Diskonektovan
|
||||
|
||||
Display Modes
|
||||
== Rezolucija i način prikaza
|
||||
|
||||
Downloading map
|
||||
== Preuzimam mapu
|
||||
|
||||
Draw!
|
||||
== Nerešeno!
|
||||
|
||||
Dynamic Camera
|
||||
== Dinamična kamera
|
||||
|
||||
Emoticon
|
||||
== Emoticon
|
||||
|
||||
Enter
|
||||
== Započni
|
||||
|
||||
Error
|
||||
== Greška
|
||||
|
||||
Error loading demo
|
||||
== Greška prilikom učitavanja demo-snimka
|
||||
|
||||
FSAA samples
|
||||
== FSAA samples
|
||||
|
||||
Favorite
|
||||
== Omiljen
|
||||
|
||||
Favorites
|
||||
== Omiljeni
|
||||
|
||||
Feet
|
||||
== Stopala
|
||||
|
||||
Filter
|
||||
== Filter
|
||||
|
||||
Fire
|
||||
== Pucaj
|
||||
|
||||
Folder
|
||||
== Folder
|
||||
|
||||
Force vote
|
||||
== Obavezno glasanje
|
||||
|
||||
Free-View
|
||||
== Slobodan pregled
|
||||
|
||||
Friends
|
||||
== Prijatelji
|
||||
|
||||
Fullscreen
|
||||
== Čitav ekran
|
||||
|
||||
Game
|
||||
== Igra
|
||||
|
||||
Game info
|
||||
== O igri
|
||||
|
||||
Game over
|
||||
== Igra je završena
|
||||
|
||||
Game type
|
||||
== Tip igre
|
||||
|
||||
Game types:
|
||||
== Tipovi igre:
|
||||
|
||||
General
|
||||
== Opšte
|
||||
|
||||
Graphics
|
||||
== Grafika
|
||||
|
||||
Grenade
|
||||
== Granate
|
||||
|
||||
Hammer
|
||||
== Čekić
|
||||
|
||||
Has people playing
|
||||
== Server nije prazan
|
||||
|
||||
High Detail
|
||||
== Visoki detalji
|
||||
|
||||
Hook
|
||||
== Kuka
|
||||
|
||||
Host address
|
||||
== Adresa servera
|
||||
|
||||
Hue
|
||||
== Nijansa
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Neispravan demo-snimak
|
||||
|
||||
Join blue
|
||||
== U plavi tim
|
||||
|
||||
Join game
|
||||
== Uključi se u igru
|
||||
|
||||
Join red
|
||||
== U crveni tim
|
||||
|
||||
Jump
|
||||
== Skok
|
||||
|
||||
Kick player
|
||||
== Izbaci igrača iz igre
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Jezik
|
||||
|
||||
Length:
|
||||
== Dužina:
|
||||
|
||||
Lht.
|
||||
== Svetl.
|
||||
|
||||
Loading
|
||||
== Učitavam
|
||||
|
||||
MOTD
|
||||
== Vest dana
|
||||
|
||||
Map
|
||||
== Mapa
|
||||
|
||||
Map:
|
||||
== Mapa:
|
||||
|
||||
Max Screenshots
|
||||
== Maksimalan broj screenshot-ova
|
||||
|
||||
Max demos
|
||||
== Maksimalan broj demo-a
|
||||
|
||||
Maximum ping:
|
||||
== Maksimalan ping:
|
||||
|
||||
Miscellaneous
|
||||
== Razno
|
||||
|
||||
Mouse sens.
|
||||
== Osetljivost miša
|
||||
|
||||
Move left
|
||||
== Nalevo
|
||||
|
||||
Move player to spectators
|
||||
== Prebaci igrača u posmatrače
|
||||
|
||||
Move right
|
||||
== Nadesno
|
||||
|
||||
Movement
|
||||
== Kretanje
|
||||
|
||||
Mute when not active
|
||||
== Bez zvuka prilikom neaktivnosti
|
||||
|
||||
Name
|
||||
== Ime
|
||||
|
||||
Name plates size
|
||||
== Veličina pločice za ime
|
||||
|
||||
Netversion:
|
||||
== Net verzija:
|
||||
|
||||
New name:
|
||||
== Novo ime:
|
||||
|
||||
News
|
||||
== Novosti
|
||||
|
||||
Next weapon
|
||||
== Sledeće oružje
|
||||
|
||||
Nickname
|
||||
== Nadimak
|
||||
|
||||
No
|
||||
== Ne
|
||||
|
||||
No password
|
||||
== Bez lozinke
|
||||
|
||||
No servers found
|
||||
== Nije pronađen nijedan server
|
||||
|
||||
No servers match your filter criteria
|
||||
== Nijedan server ne odgovara zadatom kriteriju
|
||||
|
||||
Ok
|
||||
== Ok
|
||||
|
||||
Open
|
||||
== Otvori
|
||||
|
||||
Parent Folder
|
||||
== Prethodni folder
|
||||
|
||||
Password
|
||||
== Lozinka
|
||||
|
||||
Password incorrect
|
||||
== Pogrešna lozinka
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pištolj
|
||||
|
||||
Play
|
||||
== Pokreni
|
||||
|
||||
Play background music
|
||||
== Pozadinska muzika
|
||||
|
||||
Player
|
||||
== Igrač
|
||||
|
||||
Player country:
|
||||
== Država
|
||||
|
||||
Player options
|
||||
== Podešavanja igrača
|
||||
|
||||
Players
|
||||
== Igrači
|
||||
|
||||
Please balance teams!
|
||||
== Molim uravnotežite timove!
|
||||
|
||||
Prev. weapon
|
||||
== Prethodno oružje
|
||||
|
||||
Quality Textures
|
||||
== Visokokvalitetne teksture
|
||||
|
||||
Quick search:
|
||||
== Brza pretraga:
|
||||
|
||||
Quit
|
||||
== Izlaz
|
||||
|
||||
Quit anyway?
|
||||
== Izlaz?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Razlog:
|
||||
|
||||
Record demo
|
||||
== Snimi demo
|
||||
|
||||
Red team
|
||||
== Crveni tim
|
||||
|
||||
Red team wins!
|
||||
== Crveni tim je pobedio!
|
||||
|
||||
Refresh
|
||||
== Osveži
|
||||
|
||||
Refreshing master servers
|
||||
== Osvežavam master servere
|
||||
|
||||
Remote console
|
||||
== Udaljena konzola
|
||||
|
||||
Remove
|
||||
== Ukloni
|
||||
|
||||
Remove friend
|
||||
== Ukloni prijatelja
|
||||
|
||||
Rename
|
||||
== Preimenuj
|
||||
|
||||
Rename demo
|
||||
== Preimenuj demo
|
||||
|
||||
Reset filter
|
||||
== Poništi filter
|
||||
|
||||
Reset to defaults
|
||||
== Resetuj podešavanja
|
||||
|
||||
Rifle
|
||||
== Puška
|
||||
|
||||
Round
|
||||
== Runda
|
||||
|
||||
Sample rate
|
||||
== Frekvencija
|
||||
|
||||
Sat.
|
||||
== Zasić.
|
||||
|
||||
Score
|
||||
== Rezultat
|
||||
|
||||
Score board
|
||||
== Bodovi
|
||||
|
||||
Score limit
|
||||
== Max. bodova
|
||||
|
||||
Scoreboard
|
||||
== Bodovi
|
||||
|
||||
Screenshot
|
||||
== Screenshot
|
||||
|
||||
Server address:
|
||||
== Adresa servera:
|
||||
|
||||
Server details
|
||||
== Podaci o serveru
|
||||
|
||||
Server filter
|
||||
== Filter servera
|
||||
|
||||
Server info
|
||||
== O Serveru
|
||||
|
||||
Server not full
|
||||
== Server nije pun
|
||||
|
||||
Settings
|
||||
== Podešavanja
|
||||
|
||||
Shotgun
|
||||
== Sačmarica
|
||||
|
||||
Show chat
|
||||
== Prikaži chat
|
||||
|
||||
Show friends only
|
||||
== Prikaži samo prijatelje
|
||||
|
||||
Show ingame HUD
|
||||
== Prikaži HUD
|
||||
|
||||
Show name plates
|
||||
== Prikaži imena igrača
|
||||
|
||||
Show only supported
|
||||
== Prikaži samo podržane
|
||||
|
||||
Size:
|
||||
== Veličina:
|
||||
|
||||
Skins
|
||||
== Izgled
|
||||
|
||||
Sound
|
||||
== Zvuk
|
||||
|
||||
Sound error
|
||||
== Problem sa zvukom
|
||||
|
||||
Sound volume
|
||||
== Jačina zvuka
|
||||
|
||||
Spectate
|
||||
== Posmatraj
|
||||
|
||||
Spectate next
|
||||
== Posmatraj sledećeg
|
||||
|
||||
Spectate previous
|
||||
== Posmatraj prošlog
|
||||
|
||||
Spectator mode
|
||||
== Posmatrački mod
|
||||
|
||||
Spectators
|
||||
== Posmatrači
|
||||
|
||||
Standard gametype
|
||||
== Standardni tip igre
|
||||
|
||||
Standard map
|
||||
== Standardna mapa
|
||||
|
||||
Stop record
|
||||
== Prekini snimanje
|
||||
|
||||
Strict gametype filter
|
||||
== Striktan filter tipa igre
|
||||
|
||||
Sudden Death
|
||||
== Iznenadna smrt
|
||||
|
||||
Switch weapon on pickup
|
||||
== Aktiviraj novo oružje prilikom uzimanja
|
||||
|
||||
Team
|
||||
== Tim
|
||||
|
||||
Team chat
|
||||
== Timski chat
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworld %s je objavljen! Preuzmi ga na www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Kompresija tekstura
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Audio uređaj nije moguće pokrenuti.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Server sadrži nestandardna podešavanja.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Mapa u editoru nije zapamćena, možda želite da je zapamtite pre izlaska iz igre.
|
||||
|
||||
Time limit
|
||||
== Max. vremena
|
||||
|
||||
Time limit: %d min
|
||||
== Vremensko ograničenje: %d min.
|
||||
|
||||
Try again
|
||||
== Pokušaj ponovo
|
||||
|
||||
Type
|
||||
== Tip
|
||||
|
||||
Type:
|
||||
== Tip:
|
||||
|
||||
UI Color
|
||||
== Boja menija
|
||||
|
||||
Unable to delete the demo
|
||||
== Demo nije moguće obrisati
|
||||
|
||||
Unable to rename the demo
|
||||
== Demo nije moguće preimenovati
|
||||
|
||||
Use sounds
|
||||
== Koristi zvuk
|
||||
|
||||
Use team colors for name plates
|
||||
== Koristi timsku boju u prikazu imena
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Verzija
|
||||
|
||||
Version:
|
||||
== Verzija:
|
||||
|
||||
Vote command:
|
||||
== Komanda za glasanje:
|
||||
|
||||
Vote description:
|
||||
== Opis glasanja:
|
||||
|
||||
Vote no
|
||||
== Protiv
|
||||
|
||||
Vote yes
|
||||
== Za
|
||||
|
||||
Voting
|
||||
== Glasanje
|
||||
|
||||
Warmup
|
||||
== Zagrejavanje
|
||||
|
||||
Weapon
|
||||
== Oružje
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Dobrodošli u Teeworlds
|
||||
|
||||
Yes
|
||||
== Da
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Morate ponovo pokrenuti igru da bi sva podešavanja bila primenjena.
|
||||
|
||||
Your skin
|
||||
== Vaš izgled
|
||||
|
||||
no limit
|
||||
== bez ograničenja
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bajtov
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d z %d serverov, %d hráčov online
|
||||
|
||||
%d%% loaded
|
||||
== %d%% načítaných
|
||||
|
||||
%ds left
|
||||
== Zostáva %ds
|
||||
|
||||
%i minute left
|
||||
== Zostávajúce minúty: %i
|
||||
|
||||
%i minutes left
|
||||
== Zostávajúce minúty: %i
|
||||
|
||||
%i second left
|
||||
== Zostávajúce sekundy: %i
|
||||
|
||||
%i seconds left
|
||||
== Zostávajúce sekundy: %i
|
||||
|
||||
%s wins!
|
||||
== %s vyhráva!
|
||||
|
||||
-Page %d-
|
||||
== -Strana %d-
|
||||
|
||||
Abort
|
||||
== Zrušiť
|
||||
|
||||
Add
|
||||
== Pridať
|
||||
|
||||
Add Friend
|
||||
== Pridať Priateľa
|
||||
|
||||
Address
|
||||
== Adresa
|
||||
|
||||
All
|
||||
== Všetkým
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Vždy zobrazovať menovky
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Určite chcete vymazať tento záznam?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Ukončiť hru?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Ste si istí, že chcete tohto hráča odstrániť zo zoznamu priateľov?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Vitajte v hre TeeWorlds. Predtým, ako sa pripojíte na herný server, odporúčame nastaviť si hru podľa svojich požiadavkov. Napíšte do políčka nižšie meno pre Vášho tee a pokračujte kliknutím na tlačítko.
|
||||
|
||||
Automatically record demos
|
||||
== Automaticky nahrávať záznamy
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Automaticky vyfotiť koniec kola
|
||||
|
||||
Blue team
|
||||
== Modrý tým
|
||||
|
||||
Blue team wins!
|
||||
== Modrý tým vyhráva!
|
||||
|
||||
Body
|
||||
== Telo
|
||||
|
||||
Call vote
|
||||
== Hlasovať
|
||||
|
||||
Change settings
|
||||
== Zmeniť nastavenia
|
||||
|
||||
Chat
|
||||
== Chat
|
||||
|
||||
Clan
|
||||
== Klan
|
||||
|
||||
Client
|
||||
== Klient
|
||||
|
||||
Close
|
||||
== Zavrieť
|
||||
|
||||
Compatible version
|
||||
== Kompatibilná verzia
|
||||
|
||||
Connect
|
||||
== Pripojiť
|
||||
|
||||
Connecting to
|
||||
== Pripojujem sa k
|
||||
|
||||
Connection Problems...
|
||||
== Problémy s pripojením...
|
||||
|
||||
Console
|
||||
== Konzola
|
||||
|
||||
Controls
|
||||
== Ovládanie
|
||||
|
||||
Count players only
|
||||
== Nepočítať divákov
|
||||
|
||||
Country
|
||||
== Krajina
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Vytvorené:
|
||||
|
||||
Current
|
||||
== Aktuálne
|
||||
|
||||
Current version: %s
|
||||
== Aktuálna verzia: %s
|
||||
|
||||
Custom colors
|
||||
== Vlastné farby
|
||||
|
||||
Delete
|
||||
== Vymazať
|
||||
|
||||
Delete demo
|
||||
== Vymazať záznam
|
||||
|
||||
Demo details
|
||||
== Detaily nahrávky
|
||||
|
||||
Demofile: %s
|
||||
== Nahrávka: %s
|
||||
|
||||
Demos
|
||||
== Záznamy
|
||||
|
||||
Disconnect
|
||||
== Odpojiť
|
||||
|
||||
Disconnected
|
||||
== Prerušené spojenie
|
||||
|
||||
Display Modes
|
||||
== Možnosti zobrazenia
|
||||
|
||||
Downloading map
|
||||
== Sťahujem mapu
|
||||
|
||||
Draw!
|
||||
== Remíza!
|
||||
|
||||
Dynamic Camera
|
||||
== Dynamická kamera
|
||||
|
||||
Emoticon
|
||||
== Smajlíci
|
||||
|
||||
Enter
|
||||
== Vstúpiť
|
||||
|
||||
Error
|
||||
== Chyba
|
||||
|
||||
Error loading demo
|
||||
== Problém s otvorením záznamu
|
||||
|
||||
FSAA samples
|
||||
== Anti-aliasing
|
||||
|
||||
Favorite
|
||||
== Obľúbený
|
||||
|
||||
Favorites
|
||||
== Obľúbené
|
||||
|
||||
Feet
|
||||
== Nohy
|
||||
|
||||
Filter
|
||||
== Filter
|
||||
|
||||
Fire
|
||||
== Streľba
|
||||
|
||||
Folder
|
||||
== Zložka
|
||||
|
||||
Force vote
|
||||
== Zvoliť
|
||||
|
||||
Free-View
|
||||
== Voľná Kamera
|
||||
|
||||
Friends
|
||||
== Priatelia
|
||||
|
||||
Fullscreen
|
||||
== Celá obrazovka
|
||||
|
||||
Game
|
||||
== Hra
|
||||
|
||||
Game info
|
||||
== Info o hre
|
||||
|
||||
Game over
|
||||
== Koniec hry
|
||||
|
||||
Game type
|
||||
== Herný typ
|
||||
|
||||
Game types:
|
||||
== Herné typy:
|
||||
|
||||
General
|
||||
== Hlavné
|
||||
|
||||
Graphics
|
||||
== Grafika
|
||||
|
||||
Grenade
|
||||
== Granátomet
|
||||
|
||||
Hammer
|
||||
== Kladivo
|
||||
|
||||
Has people playing
|
||||
== Nie je prázdny
|
||||
|
||||
High Detail
|
||||
== Detaily
|
||||
|
||||
Hook
|
||||
== Hook/Lano
|
||||
|
||||
Host address
|
||||
== Hostiteľ
|
||||
|
||||
Hue
|
||||
== Hue
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Neplatný Záznam
|
||||
|
||||
Join blue
|
||||
== K modrým
|
||||
|
||||
Join game
|
||||
== Hrať
|
||||
|
||||
Join red
|
||||
== K červeným
|
||||
|
||||
Jump
|
||||
== Skok
|
||||
|
||||
Kick player
|
||||
== Vyhodiť hráča
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Jazyk
|
||||
|
||||
Length:
|
||||
== Dĺžka:
|
||||
|
||||
Lht.
|
||||
== Lht.
|
||||
|
||||
Loading
|
||||
== Nahrávam
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Mapa
|
||||
|
||||
Map:
|
||||
== Mapa:
|
||||
|
||||
Max Screenshots
|
||||
== Maximum obrázkov
|
||||
|
||||
Max demos
|
||||
== Maximum nahrávok
|
||||
|
||||
Maximum ping:
|
||||
== Maximálny ping:
|
||||
|
||||
Miscellaneous
|
||||
== Ostatné
|
||||
|
||||
Mouse sens.
|
||||
== Citlivosť myši
|
||||
|
||||
Move left
|
||||
== Pohyb vľavo
|
||||
|
||||
Move player to spectators
|
||||
== Poslať hráča pozorovať
|
||||
|
||||
Move right
|
||||
== Pohyb vpravo
|
||||
|
||||
Movement
|
||||
== Pohyb
|
||||
|
||||
Mute when not active
|
||||
== Stlmiť pri neaktivite
|
||||
|
||||
Name
|
||||
== Meno
|
||||
|
||||
Name plates size
|
||||
== Veľkosť menoviek
|
||||
|
||||
Netversion:
|
||||
== Netversion:
|
||||
|
||||
New name:
|
||||
== Nové meno:
|
||||
|
||||
News
|
||||
== Novinky
|
||||
|
||||
Next weapon
|
||||
== Ďalšia zbraň
|
||||
|
||||
Nickname
|
||||
== Prezývka
|
||||
|
||||
No
|
||||
== Nie
|
||||
|
||||
No password
|
||||
== Bez hesla
|
||||
|
||||
No servers found
|
||||
== Nenájdené žiadne servery
|
||||
|
||||
No servers match your filter criteria
|
||||
== Žiadny server nezodpovedá zadaným kritériám
|
||||
|
||||
Ok
|
||||
== OK
|
||||
|
||||
Open
|
||||
== Otvoriť
|
||||
|
||||
Parent Folder
|
||||
== Nadradený Priečinok
|
||||
|
||||
Password
|
||||
== Heslo
|
||||
|
||||
Password incorrect
|
||||
== Nesprávne heslo
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pištoľ
|
||||
|
||||
Play
|
||||
== Prehrať
|
||||
|
||||
Play background music
|
||||
== Prehrať hudbu na pozadí
|
||||
|
||||
Player
|
||||
== Hráč
|
||||
|
||||
Player country:
|
||||
== Filter krajín:
|
||||
|
||||
Player options
|
||||
== Nastavenia hráča
|
||||
|
||||
Players
|
||||
== Hráči
|
||||
|
||||
Please balance teams!
|
||||
== Prosím vyrovnajte týmy!
|
||||
|
||||
Prev. weapon
|
||||
== Predošlá zbraň
|
||||
|
||||
Quality Textures
|
||||
== Kvalitné textúry
|
||||
|
||||
Quick search:
|
||||
== Hľadanie:
|
||||
|
||||
Quit
|
||||
== Ukončiť
|
||||
|
||||
Quit anyway?
|
||||
== Aj tak ukončiť?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Dôvod:
|
||||
|
||||
Record demo
|
||||
== Nahrávať
|
||||
|
||||
Red team
|
||||
== Červený tým
|
||||
|
||||
Red team wins!
|
||||
== Červený tým vyhráva!
|
||||
|
||||
Refresh
|
||||
== Obnoviť
|
||||
|
||||
Refreshing master servers
|
||||
== Obnovujem master servery
|
||||
|
||||
Remote console
|
||||
== Vzdialená konzola
|
||||
|
||||
Remove
|
||||
== Odstrániť
|
||||
|
||||
Remove friend
|
||||
== Vymazať priateľa
|
||||
|
||||
Rename
|
||||
== Premenovať
|
||||
|
||||
Rename demo
|
||||
== Premenovať nahrávku
|
||||
|
||||
Reset filter
|
||||
== Obnoviť filter
|
||||
|
||||
Reset to defaults
|
||||
== Vrátiť na pôvodné
|
||||
|
||||
Rifle
|
||||
== Laser
|
||||
|
||||
Round
|
||||
== Kolo
|
||||
|
||||
Sample rate
|
||||
== Sample rate
|
||||
|
||||
Sat.
|
||||
== Sat.
|
||||
|
||||
Score
|
||||
== Skóre
|
||||
|
||||
Score board
|
||||
== Tabuľka výsledkov
|
||||
|
||||
Score limit
|
||||
== Limit skóre
|
||||
|
||||
Scoreboard
|
||||
== Tabuľka výsledkov
|
||||
|
||||
Screenshot
|
||||
== Screenshot
|
||||
|
||||
Server address:
|
||||
== Adresa servera:
|
||||
|
||||
Server details
|
||||
== Detaily servera
|
||||
|
||||
Server filter
|
||||
== Filter serverov
|
||||
|
||||
Server info
|
||||
== Informácie
|
||||
|
||||
Server not full
|
||||
== Nie je plný
|
||||
|
||||
Settings
|
||||
== Nastavenia
|
||||
|
||||
Shotgun
|
||||
== Brokovnica
|
||||
|
||||
Show chat
|
||||
== Ukázať chat
|
||||
|
||||
Show friends only
|
||||
== Ukázať priateľov
|
||||
|
||||
Show ingame HUD
|
||||
== Ukázať HUD
|
||||
|
||||
Show name plates
|
||||
== Zobrazovať menovky
|
||||
|
||||
Show only supported
|
||||
== Zobraziť len podporované
|
||||
|
||||
Size:
|
||||
== Veľkosť:
|
||||
|
||||
Skins
|
||||
== Skiny
|
||||
|
||||
Sound
|
||||
== Zvuk
|
||||
|
||||
Sound error
|
||||
== Zvuková chyba
|
||||
|
||||
Sound volume
|
||||
== Hlasitosť
|
||||
|
||||
Spectate
|
||||
== Pozorovať
|
||||
|
||||
Spectate next
|
||||
== Pozorovať ďalšieho
|
||||
|
||||
Spectate previous
|
||||
== Pozorovať predch.
|
||||
|
||||
Spectator mode
|
||||
== Mód diváka
|
||||
|
||||
Spectators
|
||||
== Diváci
|
||||
|
||||
Standard gametype
|
||||
== Štandardný herný typ
|
||||
|
||||
Standard map
|
||||
== Štandardná mapa
|
||||
|
||||
Stop record
|
||||
== Nenahrávať
|
||||
|
||||
Strict gametype filter
|
||||
== Striktný filter módov
|
||||
|
||||
Sudden Death
|
||||
== Rýchla Smrť
|
||||
|
||||
Switch weapon on pickup
|
||||
== Nastavovať zdvíhanú zbraň ako aktuálnu
|
||||
|
||||
Team
|
||||
== Týmu
|
||||
|
||||
Team chat
|
||||
== Týmový chat
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Vyšla nová verzia hry: %s! Stiahnite si ju na www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Kompresia textúr
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Zvukové zariadenie nemohlo byť inicializované.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Server používa neštandardné nastavenia na základnom hernom móde.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== V editore máte neuloženú mapu, možno si ju chcete pred skončením hry uložiť.
|
||||
|
||||
Time limit
|
||||
== Časový limit
|
||||
|
||||
Time limit: %d min
|
||||
== Časový limit: %d min
|
||||
|
||||
Try again
|
||||
== Skúsiť znovu
|
||||
|
||||
Type
|
||||
== Typ
|
||||
|
||||
Type:
|
||||
== Typ:
|
||||
|
||||
UI Color
|
||||
== Farba prostredia
|
||||
|
||||
Unable to delete the demo
|
||||
== Nemôžem vymazať záznam
|
||||
|
||||
Unable to rename the demo
|
||||
== Nahrávka sa nedá premenovať
|
||||
|
||||
Use sounds
|
||||
== Povoliť zvuky
|
||||
|
||||
Use team colors for name plates
|
||||
== Zafarbiť menovky podľa farieb týmov
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Verzia
|
||||
|
||||
Version:
|
||||
== Verzia:
|
||||
|
||||
Vote command:
|
||||
== Príkaz hlasu:
|
||||
|
||||
Vote description:
|
||||
== Popis hlasu:
|
||||
|
||||
Vote no
|
||||
== Nie
|
||||
|
||||
Vote yes
|
||||
== Áno
|
||||
|
||||
Voting
|
||||
== Hlasovanie
|
||||
|
||||
Warmup
|
||||
== Rozohrávka
|
||||
|
||||
Weapon
|
||||
== Zbrane
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Vitajte v hre Teeworlds!
|
||||
|
||||
Yes
|
||||
== Áno
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Zmeny sa prejavia po reštartovaní hry.
|
||||
|
||||
Your skin
|
||||
== Váš skin
|
||||
|
||||
no limit
|
||||
== bez limitu
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d bytes
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d de %d servidores, %d jugadores
|
||||
|
||||
%d%% loaded
|
||||
== %d%% cargado
|
||||
|
||||
%ds left
|
||||
== %ds restantes
|
||||
|
||||
%i minute left
|
||||
== %i minuto restante
|
||||
|
||||
%i minutes left
|
||||
== %i minutos restantes
|
||||
|
||||
%i second left
|
||||
== %i segundo restante
|
||||
|
||||
%i seconds left
|
||||
== %i segundos restantes
|
||||
|
||||
%s wins!
|
||||
== ¡%s gana!
|
||||
|
||||
-Page %d-
|
||||
== -Página %d-
|
||||
|
||||
Abort
|
||||
== Cancelar
|
||||
|
||||
Add
|
||||
== Añadir
|
||||
|
||||
Add Friend
|
||||
== Añadir amigo
|
||||
|
||||
Address
|
||||
== Dirección
|
||||
|
||||
All
|
||||
== Todos
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Mostrar siempre los apodos
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== ¿Estás seguro de que quieres eliminar la demo?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== ¿Estás seguro de que quieres salir?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== ¿Estás seguro de que quieres eliminar a este jugador de la lista de amigos?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Como es la primera vez que abres el juego, por favor, introduce tu apodo. Es recomendable que verifiques tu configuración y ajustes las preferencias antes de unirte a un servidor.
|
||||
|
||||
Automatically record demos
|
||||
== Grabar demos automáticamente
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Captura de pantalla al final de la partida
|
||||
|
||||
Blue team
|
||||
== Equipo azul
|
||||
|
||||
Blue team wins!
|
||||
== ¡El equipo azul gana!
|
||||
|
||||
Body
|
||||
== Cuerpo
|
||||
|
||||
Call vote
|
||||
== Votar
|
||||
|
||||
Change settings
|
||||
== Cambiar configuración
|
||||
|
||||
Chat
|
||||
== Conversación
|
||||
|
||||
Clan
|
||||
== Clan
|
||||
|
||||
Client
|
||||
== Cliente
|
||||
|
||||
Close
|
||||
== Cerrar
|
||||
|
||||
Compatible version
|
||||
== Versión compatible
|
||||
|
||||
Connect
|
||||
== Conectar
|
||||
|
||||
Connecting to
|
||||
== Conectando con
|
||||
|
||||
Connection Problems...
|
||||
== Problemas de conexión...
|
||||
|
||||
Console
|
||||
== Consola
|
||||
|
||||
Controls
|
||||
== Controles
|
||||
|
||||
Count players only
|
||||
== Solo contar jugadores
|
||||
|
||||
Country
|
||||
== País
|
||||
|
||||
Crc:
|
||||
== CRC:
|
||||
|
||||
Created:
|
||||
== Creado:
|
||||
|
||||
Current
|
||||
== Actual
|
||||
|
||||
Current version: %s
|
||||
== Versión actual: %s
|
||||
|
||||
Custom colors
|
||||
== Colores personalizados
|
||||
|
||||
Delete
|
||||
== Borrar
|
||||
|
||||
Delete demo
|
||||
== Borrar demo
|
||||
|
||||
Demo details
|
||||
== Detalles de la demo
|
||||
|
||||
Demofile: %s
|
||||
== Archivo: %s
|
||||
|
||||
Demos
|
||||
== Demos
|
||||
|
||||
Disconnect
|
||||
== Desconectar
|
||||
|
||||
Disconnected
|
||||
== Desconectado
|
||||
|
||||
Display Modes
|
||||
== Modos de video
|
||||
|
||||
Downloading map
|
||||
== Descargando mapa
|
||||
|
||||
Draw!
|
||||
== ¡Empate!
|
||||
|
||||
Dynamic Camera
|
||||
== Cámara dinámica
|
||||
|
||||
Emoticon
|
||||
== Emoticon
|
||||
|
||||
Enter
|
||||
== Entrar
|
||||
|
||||
Error
|
||||
== Error
|
||||
|
||||
Error loading demo
|
||||
== Error al cargar la demo
|
||||
|
||||
FSAA samples
|
||||
== Muestras FSAA
|
||||
|
||||
Favorite
|
||||
== Favorito
|
||||
|
||||
Favorites
|
||||
== Favoritos
|
||||
|
||||
Feet
|
||||
== Pies
|
||||
|
||||
Filter
|
||||
== Filtro
|
||||
|
||||
Fire
|
||||
== Disparar
|
||||
|
||||
Folder
|
||||
== Carpeta
|
||||
|
||||
Force vote
|
||||
== Forzar
|
||||
|
||||
Free-View
|
||||
== Vista libre
|
||||
|
||||
Friends
|
||||
== Amigos
|
||||
|
||||
Fullscreen
|
||||
== Pantalla completa
|
||||
|
||||
Game
|
||||
== Juego
|
||||
|
||||
Game info
|
||||
== Información del juego
|
||||
|
||||
Game over
|
||||
== Fin de la partida
|
||||
|
||||
Game type
|
||||
== Modo
|
||||
|
||||
Game types:
|
||||
== Tipos de juego:
|
||||
|
||||
General
|
||||
== General
|
||||
|
||||
Graphics
|
||||
== Gráficos
|
||||
|
||||
Grenade
|
||||
== Granada
|
||||
|
||||
Hammer
|
||||
== Martillo
|
||||
|
||||
Has people playing
|
||||
== Hay gente jugando
|
||||
|
||||
High Detail
|
||||
== Mas detalles (HD)
|
||||
|
||||
Hook
|
||||
== Gancho
|
||||
|
||||
Host address
|
||||
== Dirección del host
|
||||
|
||||
Hue
|
||||
== Matiz
|
||||
|
||||
Info
|
||||
== Información
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Demo inválida
|
||||
|
||||
Join blue
|
||||
== Unirse a azul
|
||||
|
||||
Join game
|
||||
== Unirse
|
||||
|
||||
Join red
|
||||
== Unirse a rojo
|
||||
|
||||
Jump
|
||||
== Saltar
|
||||
|
||||
Kick player
|
||||
== Expulsar jugador
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Idioma
|
||||
|
||||
Length:
|
||||
== Longitud:
|
||||
|
||||
Lht.
|
||||
== Luminosidad
|
||||
|
||||
Loading
|
||||
== Cargando
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Mapa
|
||||
|
||||
Map:
|
||||
== Mapa:
|
||||
|
||||
Max Screenshots
|
||||
== Número máximo de capturas
|
||||
|
||||
Max demos
|
||||
== Número máximo de demos
|
||||
|
||||
Maximum ping:
|
||||
== Ping máximo:
|
||||
|
||||
Miscellaneous
|
||||
== Miscelánea
|
||||
|
||||
Mouse sens.
|
||||
== Sensibilidad ratón
|
||||
|
||||
Move left
|
||||
== Mover a la izquierda
|
||||
|
||||
Move player to spectators
|
||||
== Mover jugador a espectadores
|
||||
|
||||
Move right
|
||||
== Mover a la derecha
|
||||
|
||||
Movement
|
||||
== Movimiento
|
||||
|
||||
Mute when not active
|
||||
== Silenciar si no está activo
|
||||
|
||||
Name
|
||||
== Nombre
|
||||
|
||||
Name plates size
|
||||
== Tamaño de la fuente de los apodos
|
||||
|
||||
Netversion:
|
||||
== Versión Net
|
||||
|
||||
New name:
|
||||
== Nuevo nombre:
|
||||
|
||||
News
|
||||
== Noticias
|
||||
|
||||
Next weapon
|
||||
== Arma siguiente
|
||||
|
||||
Nickname
|
||||
== Apodo
|
||||
|
||||
No
|
||||
== No
|
||||
|
||||
No password
|
||||
== Sin contraseña
|
||||
|
||||
No servers found
|
||||
== Ningún servidor encontrado
|
||||
|
||||
No servers match your filter criteria
|
||||
== Ningún servidor corresponde a los criterios de filtrado
|
||||
|
||||
Ok
|
||||
== Aceptar
|
||||
|
||||
Open
|
||||
== Abrir
|
||||
|
||||
Parent Folder
|
||||
== Directorio padre
|
||||
|
||||
Password
|
||||
== Contraseña
|
||||
|
||||
Password incorrect
|
||||
== Contraseña incorreta
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistola
|
||||
|
||||
Play
|
||||
== Reproducir
|
||||
|
||||
Play background music
|
||||
== Reproducir música de fondo
|
||||
|
||||
Player
|
||||
== Jugador
|
||||
|
||||
Player country:
|
||||
== País del jugador
|
||||
|
||||
Player options
|
||||
== Opciones de jugador
|
||||
|
||||
Players
|
||||
== Jugadores
|
||||
|
||||
Please balance teams!
|
||||
== Por favor, ¡equilibrad los equipos!
|
||||
|
||||
Prev. weapon
|
||||
== Arma anterior
|
||||
|
||||
Quality Textures
|
||||
== Texturas de calidad
|
||||
|
||||
Quick search:
|
||||
== Búsqueda rápida:
|
||||
|
||||
Quit
|
||||
== Salir
|
||||
|
||||
Quit anyway?
|
||||
== ¿Salir de todos modos?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Motivo:
|
||||
|
||||
Record demo
|
||||
== Grabar demo
|
||||
|
||||
Red team
|
||||
== Equipo rojo
|
||||
|
||||
Red team wins!
|
||||
== ¡El equipo rojo gana!
|
||||
|
||||
Refresh
|
||||
== Actualizar
|
||||
|
||||
Refreshing master servers
|
||||
== Actualizando servidores maestros
|
||||
|
||||
Remote console
|
||||
== Consola remota
|
||||
|
||||
Remove
|
||||
== Eliminar
|
||||
|
||||
Remove friend
|
||||
== Eliminar amigo
|
||||
|
||||
Rename
|
||||
== Renombrar
|
||||
|
||||
Rename demo
|
||||
== Renombrar demo
|
||||
|
||||
Reset filter
|
||||
== Resetear filtro
|
||||
|
||||
Reset to defaults
|
||||
== Resetar por defecto
|
||||
|
||||
Rifle
|
||||
== Láser
|
||||
|
||||
Round
|
||||
== Ronda
|
||||
|
||||
Sample rate
|
||||
== Frecuencia de muestreo
|
||||
|
||||
Sat.
|
||||
== Saturación
|
||||
|
||||
Score
|
||||
== Puntos
|
||||
|
||||
Score board
|
||||
== Puntuación
|
||||
|
||||
Score limit
|
||||
== Límite puntos
|
||||
|
||||
Scoreboard
|
||||
== Puntuación
|
||||
|
||||
Screenshot
|
||||
== Captura de pantalla
|
||||
|
||||
Server address:
|
||||
== IP del servidor:
|
||||
|
||||
Server details
|
||||
== Detalles del servidor
|
||||
|
||||
Server filter
|
||||
== Filtro del servidor
|
||||
|
||||
Server info
|
||||
== Servidor
|
||||
|
||||
Server not full
|
||||
== Servidor sin llenar
|
||||
|
||||
Settings
|
||||
== Configuración
|
||||
|
||||
Shotgun
|
||||
== Escopeta
|
||||
|
||||
Show chat
|
||||
== Mostrar chat
|
||||
|
||||
Show friends only
|
||||
== Solo mostrar amigos
|
||||
|
||||
Show ingame HUD
|
||||
== Mostar HUD durante el juego
|
||||
|
||||
Show name plates
|
||||
== Mostrar apodos
|
||||
|
||||
Show only supported
|
||||
== Mostrar únicamente modos soportados
|
||||
|
||||
Size:
|
||||
== Tamaño:
|
||||
|
||||
Skins
|
||||
== Skins
|
||||
|
||||
Sound
|
||||
== Sonido
|
||||
|
||||
Sound error
|
||||
== Error de sonido
|
||||
|
||||
Sound volume
|
||||
== Volumen de sonido
|
||||
|
||||
Spectate
|
||||
== Asistir
|
||||
|
||||
Spectate next
|
||||
== Observar siguiente
|
||||
|
||||
Spectate previous
|
||||
== Observar anterior
|
||||
|
||||
Spectator mode
|
||||
== Modo espectador
|
||||
|
||||
Spectators
|
||||
== Espectadores
|
||||
|
||||
Standard gametype
|
||||
== Tipo de juego estándar
|
||||
|
||||
Standard map
|
||||
== Mapa estándar
|
||||
|
||||
Stop record
|
||||
== Detener grabación
|
||||
|
||||
Strict gametype filter
|
||||
== Tipo de juego del filtro
|
||||
|
||||
Sudden Death
|
||||
== Muerte súbita
|
||||
|
||||
Switch weapon on pickup
|
||||
== Cambiar al arma recogida
|
||||
|
||||
Team
|
||||
== Equipo
|
||||
|
||||
Team chat
|
||||
== En equipo
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== ¡Teeworlds %s ha salido! ¡Descárgalo desde www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Compresión de texturas
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== El dispositivo de audio no puede ser inicializado.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== El servidor está ejecutando una configuración no estándar en un tipo de juego puro.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Tienes un mapa sin guardar en el editor, quizá quieras guardarlo antes de salir.
|
||||
|
||||
Time limit
|
||||
== Tiempo límite
|
||||
|
||||
Time limit: %d min
|
||||
== Tiempo límite: %d minutos
|
||||
|
||||
Try again
|
||||
== Intentar de nuevo
|
||||
|
||||
Type
|
||||
== Tipo
|
||||
|
||||
Type:
|
||||
== Tipo:
|
||||
|
||||
UI Color
|
||||
== Color de menú
|
||||
|
||||
Unable to delete the demo
|
||||
== No se pudo eliminar la demo
|
||||
|
||||
Unable to rename the demo
|
||||
== No se pudo renombrar la demo
|
||||
|
||||
Use sounds
|
||||
== Usar sonidos
|
||||
|
||||
Use team colors for name plates
|
||||
== Usar el color de equipo en los apodos
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Versión
|
||||
|
||||
Version:
|
||||
== Versión:
|
||||
|
||||
Vote command:
|
||||
== Comando de votación:
|
||||
|
||||
Vote description:
|
||||
== Descripción de la votación:
|
||||
|
||||
Vote no
|
||||
== Votar no
|
||||
|
||||
Vote yes
|
||||
== Votar sí
|
||||
|
||||
Voting
|
||||
== Votación
|
||||
|
||||
Warmup
|
||||
== Calentamiento
|
||||
|
||||
Weapon
|
||||
== Arma
|
||||
|
||||
Welcome to Teeworlds
|
||||
== ¡Bienvenido/a a Teeworlds!
|
||||
|
||||
Yes
|
||||
== Sí
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Debes reiniciar el juego para que los cambios tengan efecto.
|
||||
|
||||
Your skin
|
||||
== Tu skin
|
||||
|
||||
no limit
|
||||
== sin límite
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bytes
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d av %d servrar, %d spelare
|
||||
|
||||
%d%% loaded
|
||||
== %d%% laddat
|
||||
|
||||
%ds left
|
||||
== %d sekunder kvar
|
||||
|
||||
%i minute left
|
||||
== %i minut kvar
|
||||
|
||||
%i minutes left
|
||||
== %i minuter kvar
|
||||
|
||||
%i second left
|
||||
== %i sekund kvar
|
||||
|
||||
%i seconds left
|
||||
== %i sekunder kvar
|
||||
|
||||
%s wins!
|
||||
== %s vinner!
|
||||
|
||||
-Page %d-
|
||||
== -Sida %d-
|
||||
|
||||
Abort
|
||||
== Avbryt
|
||||
|
||||
Add
|
||||
== Lägg till
|
||||
|
||||
Add Friend
|
||||
== Lägg till kompis
|
||||
|
||||
Address
|
||||
== Adress
|
||||
|
||||
All
|
||||
== Alla
|
||||
|
||||
Alpha
|
||||
== Alpha
|
||||
|
||||
Always show name plates
|
||||
== Visa alltid namnskyltar
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Är du säker på att du vill ta bort detta demo?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Är du säker på att du vill avsluta?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Är du säker på att du vill ta bort denna spelaren från din kompislista?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Detta är första gången du startar spelet, var vänligen skriv in ditt smeknamn här nedanför. Det är rekommenderat att du kontrollera inställningarna och justerar dom till din preferens innan du börjar spela.
|
||||
|
||||
Automatically record demos
|
||||
== Spela in demon automatiskt
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Ta skärmdumpar vid matchslut
|
||||
|
||||
Blue team
|
||||
== Blå laget
|
||||
|
||||
Blue team wins!
|
||||
== Blå laget vann!
|
||||
|
||||
Body
|
||||
== Kropp
|
||||
|
||||
Call vote
|
||||
== Röstning
|
||||
|
||||
Change settings
|
||||
== Ändra inställningar
|
||||
|
||||
Chat
|
||||
== Chatt
|
||||
|
||||
Clan
|
||||
== Klan
|
||||
|
||||
Client
|
||||
== Klient
|
||||
|
||||
Close
|
||||
== Stäng
|
||||
|
||||
Compatible version
|
||||
== Kompatibel version
|
||||
|
||||
Connect
|
||||
== Anslut
|
||||
|
||||
Connecting to
|
||||
== Ansluter till
|
||||
|
||||
Connection Problems...
|
||||
== Anslutningsproblem...
|
||||
|
||||
Console
|
||||
== Konsol
|
||||
|
||||
Controls
|
||||
== Kontroller
|
||||
|
||||
Count players only
|
||||
== Räkna endast spelare
|
||||
|
||||
Country
|
||||
== Land
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Skapad:
|
||||
|
||||
Current
|
||||
== Nuvarande
|
||||
|
||||
Current version: %s
|
||||
== Nuvarande version: %s
|
||||
|
||||
Custom colors
|
||||
== Egna färger
|
||||
|
||||
Delete
|
||||
== Ta bort
|
||||
|
||||
Delete demo
|
||||
== Ta bort demo
|
||||
|
||||
Demo details
|
||||
== Demoinformation
|
||||
|
||||
Demofile: %s
|
||||
== Demofil: %s
|
||||
|
||||
Demos
|
||||
== Demon
|
||||
|
||||
Disconnect
|
||||
== Avsluta
|
||||
|
||||
Disconnected
|
||||
== Frånkopplad
|
||||
|
||||
Display Modes
|
||||
== Skärmlägen
|
||||
|
||||
Downloading map
|
||||
== Laddar ner karta
|
||||
|
||||
Draw!
|
||||
== Oavgjort!
|
||||
|
||||
Dynamic Camera
|
||||
== Dynamisk kamera
|
||||
|
||||
Emoticon
|
||||
== Känsloikon
|
||||
|
||||
Enter
|
||||
== Fortsätt
|
||||
|
||||
Error
|
||||
== Fel
|
||||
|
||||
Error loading demo
|
||||
== Kunde inte ladda demot
|
||||
|
||||
FSAA samples
|
||||
== FSAA-samplingar
|
||||
|
||||
Favorite
|
||||
== Favorit
|
||||
|
||||
Favorites
|
||||
== Favoriter
|
||||
|
||||
Feet
|
||||
== Fötter
|
||||
|
||||
Filter
|
||||
== Filter
|
||||
|
||||
Fire
|
||||
== Skjuta
|
||||
|
||||
Folder
|
||||
== Mapp
|
||||
|
||||
Force vote
|
||||
== Tvinga omröstning
|
||||
|
||||
Free-View
|
||||
== Friläge
|
||||
|
||||
Friends
|
||||
== Kompisar
|
||||
|
||||
Fullscreen
|
||||
== Fullskärm
|
||||
|
||||
Game
|
||||
== Spel
|
||||
|
||||
Game info
|
||||
== Spelinfo
|
||||
|
||||
Game over
|
||||
== Slutspelat
|
||||
|
||||
Game type
|
||||
== Speltyp
|
||||
|
||||
Game types:
|
||||
== Speltyper:
|
||||
|
||||
General
|
||||
== Generellt
|
||||
|
||||
Graphics
|
||||
== Grafik
|
||||
|
||||
Grenade
|
||||
== Granater
|
||||
|
||||
Hammer
|
||||
== Hammare
|
||||
|
||||
Has people playing
|
||||
== Inte tom
|
||||
|
||||
High Detail
|
||||
== Extra detaljer
|
||||
|
||||
Hook
|
||||
== Haken
|
||||
|
||||
Host address
|
||||
== Serveraddress
|
||||
|
||||
Hue
|
||||
== Nyans
|
||||
|
||||
Info
|
||||
== Info
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Ogiltigt deo
|
||||
|
||||
Join blue
|
||||
== Spela i blått
|
||||
|
||||
Join game
|
||||
== Spela
|
||||
|
||||
Join red
|
||||
== Spela i rött
|
||||
|
||||
Jump
|
||||
== Hoppa
|
||||
|
||||
Kick player
|
||||
== Kicka spelare
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Språk
|
||||
|
||||
Length:
|
||||
== Längd
|
||||
|
||||
Lht.
|
||||
== Ljusstyrka
|
||||
|
||||
Loading
|
||||
== Laddar
|
||||
|
||||
MOTD
|
||||
== Meddelande
|
||||
|
||||
Map
|
||||
== Bana
|
||||
|
||||
Map:
|
||||
== Bana
|
||||
|
||||
Max Screenshots
|
||||
== Max antal skärmdumpar
|
||||
|
||||
Max demos
|
||||
== Max antal demon
|
||||
|
||||
Maximum ping:
|
||||
== Högsta ping:
|
||||
|
||||
Miscellaneous
|
||||
== Övrigt
|
||||
|
||||
Mouse sens.
|
||||
== Muskänslighet
|
||||
|
||||
Move left
|
||||
== Gå vänster
|
||||
|
||||
Move player to spectators
|
||||
== Flytta till åskådarna
|
||||
|
||||
Move right
|
||||
== Gå höger
|
||||
|
||||
Movement
|
||||
== Förflyttning
|
||||
|
||||
Mute when not active
|
||||
== Stäng av ljudet när spelet inte är aktivt
|
||||
|
||||
Name
|
||||
== Namn
|
||||
|
||||
Name plates size
|
||||
== Storlek på namnskyltar
|
||||
|
||||
Netversion:
|
||||
== Nätversion:
|
||||
|
||||
New name:
|
||||
== Nytt namn:
|
||||
|
||||
News
|
||||
== Nyheter
|
||||
|
||||
Next weapon
|
||||
== Nästa vapen
|
||||
|
||||
Nickname
|
||||
== Smeknamn
|
||||
|
||||
No
|
||||
== Nej
|
||||
|
||||
No password
|
||||
== Inget lösenord
|
||||
|
||||
No servers found
|
||||
== Inga servrar hittade
|
||||
|
||||
No servers match your filter criteria
|
||||
== Inga servrar matchar dina filterkriterer
|
||||
|
||||
Ok
|
||||
== Ok
|
||||
|
||||
Open
|
||||
== Öppna
|
||||
|
||||
Parent Folder
|
||||
== Uppliggande mapp
|
||||
|
||||
Password
|
||||
== Lösenord
|
||||
|
||||
Password incorrect
|
||||
== Felaktigt lösenord
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Pistol
|
||||
|
||||
Play
|
||||
== Spela
|
||||
|
||||
Play background music
|
||||
== Aktivera bakgrundsmusik
|
||||
|
||||
Player
|
||||
== Spelare
|
||||
|
||||
Player country:
|
||||
== Land
|
||||
|
||||
Player options
|
||||
== Spelaralternativ
|
||||
|
||||
Players
|
||||
== Spelare
|
||||
|
||||
Please balance teams!
|
||||
== Balansera lagen!
|
||||
|
||||
Prev. weapon
|
||||
== Föregående vapen
|
||||
|
||||
Quality Textures
|
||||
== Kvalitetstexturer
|
||||
|
||||
Quick search:
|
||||
== Snabbsök:
|
||||
|
||||
Quit
|
||||
== Avsluta
|
||||
|
||||
Quit anyway?
|
||||
== Avsluta i alla fall?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Anledning:
|
||||
|
||||
Record demo
|
||||
== Spela in demo
|
||||
|
||||
Red team
|
||||
== Röda laget
|
||||
|
||||
Red team wins!
|
||||
== Röda laget vann!
|
||||
|
||||
Refresh
|
||||
== Uppdatera
|
||||
|
||||
Refreshing master servers
|
||||
== Uppdaterar huvudservrar
|
||||
|
||||
Remote console
|
||||
== Serverkonsol
|
||||
|
||||
Remove
|
||||
== Ta bort
|
||||
|
||||
Remove friend
|
||||
== Ta bort kompis
|
||||
|
||||
Rename
|
||||
== Byt namn
|
||||
|
||||
Rename demo
|
||||
== Byt namn på demo
|
||||
|
||||
Reset filter
|
||||
== Återställ filter
|
||||
|
||||
Reset to defaults
|
||||
== Återställ till standard
|
||||
|
||||
Rifle
|
||||
== Gevär
|
||||
|
||||
Round
|
||||
== Runda
|
||||
|
||||
Sample rate
|
||||
== Samplingsfrekvens
|
||||
|
||||
Sat.
|
||||
== Mättnad
|
||||
|
||||
Score
|
||||
== Poäng
|
||||
|
||||
Score board
|
||||
== Poängtavla
|
||||
|
||||
Score limit
|
||||
== Poängmål
|
||||
|
||||
Scoreboard
|
||||
== Poänglista
|
||||
|
||||
Screenshot
|
||||
== Skärmdump
|
||||
|
||||
Server address:
|
||||
== Serveradress
|
||||
|
||||
Server details
|
||||
== Serverdetaljer
|
||||
|
||||
Server filter
|
||||
== Serverfilter
|
||||
|
||||
Server info
|
||||
== Serverinfo
|
||||
|
||||
Server not full
|
||||
== Lediga platser
|
||||
|
||||
Settings
|
||||
== Inställningar
|
||||
|
||||
Shotgun
|
||||
== Hagelgevär
|
||||
|
||||
Show chat
|
||||
== Visa chatten
|
||||
|
||||
Show friends only
|
||||
== Visa kompisar
|
||||
|
||||
Show ingame HUD
|
||||
== Visa HUD i spel
|
||||
|
||||
Show name plates
|
||||
== Visa namnskyltar
|
||||
|
||||
Show only supported
|
||||
== Visa endast upplösningar som stöds
|
||||
|
||||
Size:
|
||||
== Storlek:
|
||||
|
||||
Skins
|
||||
== Utseende
|
||||
|
||||
Sound
|
||||
== Ljud
|
||||
|
||||
Sound error
|
||||
== Ljudfel
|
||||
|
||||
Sound volume
|
||||
== Volym
|
||||
|
||||
Spectate
|
||||
== Åskåda
|
||||
|
||||
Spectate next
|
||||
== Se på nästa
|
||||
|
||||
Spectate previous
|
||||
== Se på föregående
|
||||
|
||||
Spectator mode
|
||||
== Åskådarläge
|
||||
|
||||
Spectators
|
||||
== Åskådare
|
||||
|
||||
Standard gametype
|
||||
== Standard speltyp
|
||||
|
||||
Standard map
|
||||
== Standardkarta
|
||||
|
||||
Stop record
|
||||
== Sluta spela in
|
||||
|
||||
Strict gametype filter
|
||||
== Strikt speltypsfilter
|
||||
|
||||
Sudden Death
|
||||
== Plötslig död
|
||||
|
||||
Switch weapon on pickup
|
||||
== Byt vapen vid anskaffning
|
||||
|
||||
Team
|
||||
== Lag
|
||||
|
||||
Team chat
|
||||
== Lagchatt
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s är ute nu! Ladda ner det från www.teeworlds.com.
|
||||
|
||||
Texture Compression
|
||||
== Texturkompression
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Ljudet kunde inte startas
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Denna server kör inte standardinställningar på en reserverad speltyp.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Det finns en osparad bana i redigeraden, du kanske vill spara den innan du avslutar.
|
||||
|
||||
Time limit
|
||||
== Tidsbegränsning
|
||||
|
||||
Time limit: %d min
|
||||
== Tidsgräns: %d min
|
||||
|
||||
Try again
|
||||
== Försök igen
|
||||
|
||||
Type
|
||||
== Typ
|
||||
|
||||
Type:
|
||||
== Typ:
|
||||
|
||||
UI Color
|
||||
== Gränssnittfärg
|
||||
|
||||
Unable to delete the demo
|
||||
== Kunde inte ta bort demot
|
||||
|
||||
Unable to rename the demo
|
||||
== Kunde inte byta namn på demot
|
||||
|
||||
Use sounds
|
||||
== Aktivera ljudeffekter
|
||||
|
||||
Use team colors for name plates
|
||||
== Använd lagfärger i namnskyltar
|
||||
|
||||
V-Sync
|
||||
== V-Synk
|
||||
|
||||
Version
|
||||
== Version
|
||||
|
||||
Version:
|
||||
== Version:
|
||||
|
||||
Vote command:
|
||||
== Omröstningskommando:
|
||||
|
||||
Vote description:
|
||||
== Beskrivning:
|
||||
|
||||
Vote no
|
||||
== Rösta nej
|
||||
|
||||
Vote yes
|
||||
== Rösta ja
|
||||
|
||||
Voting
|
||||
== Röstning
|
||||
|
||||
Warmup
|
||||
== Uppvärmning
|
||||
|
||||
Weapon
|
||||
== Vapen
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Välkommen till Teeworlds
|
||||
|
||||
Yes
|
||||
== Ja
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Du måste starta om spelet för att ändringarna skall verkställas.
|
||||
|
||||
Your skin
|
||||
== Ditt skin
|
||||
|
||||
no limit
|
||||
== Ingen gräns
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -1,681 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d Bytes
|
||||
== %d Bayt
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d/%d sunucu, %d oyuncu
|
||||
|
||||
%d%% loaded
|
||||
== %d%% yüklendi
|
||||
|
||||
%ds left
|
||||
== %ds kaldı
|
||||
|
||||
%i minute left
|
||||
== %i dakika kaldı
|
||||
|
||||
%i minutes left
|
||||
== %i dakika kaldı
|
||||
|
||||
%i second left
|
||||
== %i saniye kaldı
|
||||
|
||||
%i seconds left
|
||||
== %i saniye kaldı
|
||||
|
||||
%s wins!
|
||||
== %s kazandı!
|
||||
|
||||
-Page %d-
|
||||
== -Sayfa %d-
|
||||
|
||||
Abort
|
||||
== İptal
|
||||
|
||||
Add
|
||||
== Ekle
|
||||
|
||||
Add Friend
|
||||
== Arkadaş Ekle
|
||||
|
||||
Address
|
||||
== Adres
|
||||
|
||||
All
|
||||
== Hepsi
|
||||
|
||||
Alpha
|
||||
== Şeffaflık
|
||||
|
||||
Always show name plates
|
||||
== Oyuncu isimlerini her zaman göster
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Demo dosyasını silmek istediğinize emin misiniz?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Çıkmak istediğinize emin misiniz?
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
== Bu oyuncuyu arkadaş listenizden kaldırmak istediğinize emin misiniz?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Oyunu ilk açışınız olduğundan dolayı takma adınızı giriniz. Bir oyuna katılmadan önce ayarları incelemeniz ve isteklerinize göre özelleştirmeniz önerilir.
|
||||
|
||||
Automatically record demos
|
||||
== Demoları otomatik olarak kaydet
|
||||
|
||||
Automatically take game over screenshot
|
||||
== Otomatik olarak oyun bitişinde ekran görüntüsü al
|
||||
|
||||
Blue team
|
||||
== Mavi takım
|
||||
|
||||
Blue team wins!
|
||||
== Mavi takım kazandı!
|
||||
|
||||
Body
|
||||
== Gövde
|
||||
|
||||
Call vote
|
||||
== Oylama başlat
|
||||
|
||||
Change settings
|
||||
== Ayarları değiştir
|
||||
|
||||
Chat
|
||||
== Sohbet
|
||||
|
||||
Clan
|
||||
== Clan
|
||||
|
||||
Client
|
||||
== İstemci
|
||||
|
||||
Close
|
||||
== Kapat
|
||||
|
||||
Compatible version
|
||||
== Uyumlu versiyon
|
||||
|
||||
Connect
|
||||
== Bağlan
|
||||
|
||||
Connecting to
|
||||
== Bağlanılıyor
|
||||
|
||||
Connection Problems...
|
||||
== Bağlantı Hataları...
|
||||
|
||||
Console
|
||||
== Konsol
|
||||
|
||||
Controls
|
||||
== Kontroller
|
||||
|
||||
Count players only
|
||||
== Sadece oyuncuları say
|
||||
|
||||
Country
|
||||
== Ülke
|
||||
|
||||
Crc:
|
||||
== Crc:
|
||||
|
||||
Created:
|
||||
== Yaratıldı:
|
||||
|
||||
Current
|
||||
== Şimdiki
|
||||
|
||||
Current version: %s
|
||||
== Mevcut versiyon: %s
|
||||
|
||||
Custom colors
|
||||
== Özel renkler
|
||||
|
||||
Delete
|
||||
== Sil
|
||||
|
||||
Delete demo
|
||||
== Demoyu sil
|
||||
|
||||
Demo details
|
||||
== Demo ayrıntıları
|
||||
|
||||
Demos
|
||||
== Demolar
|
||||
|
||||
Disconnect
|
||||
== Bağlantıyı kes
|
||||
|
||||
Disconnected
|
||||
== Bağlantı kesildi
|
||||
|
||||
Display Modes
|
||||
== Çözünürlük
|
||||
|
||||
Downloading map
|
||||
== Harita yükleniyor
|
||||
|
||||
Draw!
|
||||
== Berabere!
|
||||
|
||||
Dynamic Camera
|
||||
== Dinamik Kamera
|
||||
|
||||
Emoticon
|
||||
== Yüz ifadesi
|
||||
|
||||
Enter
|
||||
== Gir
|
||||
|
||||
Error
|
||||
== Hata
|
||||
|
||||
Error loading demo
|
||||
== Demo yüklenirken hata oluştu
|
||||
|
||||
FSAA samples
|
||||
== FSAA örnekleri
|
||||
|
||||
Favorite
|
||||
== Favori
|
||||
|
||||
Favorites
|
||||
== Favoriler
|
||||
|
||||
Feet
|
||||
== Ayak
|
||||
|
||||
Filter
|
||||
== Filtre
|
||||
|
||||
Fire
|
||||
== Ateş
|
||||
|
||||
Folder
|
||||
== Dosya
|
||||
|
||||
Force vote
|
||||
== Oylamayı zorla
|
||||
|
||||
Free-View
|
||||
== Serbest Görüntü
|
||||
|
||||
Friends
|
||||
== Arkadaşlar
|
||||
|
||||
Fullscreen
|
||||
== Tam ekran
|
||||
|
||||
Game
|
||||
== Oyun
|
||||
|
||||
Game info
|
||||
== Oyun bilgisi
|
||||
|
||||
Game over
|
||||
== Oyun sonu
|
||||
|
||||
Game type
|
||||
== Oyun türü
|
||||
|
||||
Game types:
|
||||
== Oyun türleri:
|
||||
|
||||
General
|
||||
== Genel
|
||||
|
||||
Graphics
|
||||
== Grafik
|
||||
|
||||
Grenade
|
||||
== El bombası
|
||||
|
||||
Hammer
|
||||
== Çekiç
|
||||
|
||||
Has people playing
|
||||
== Insan bulunduran
|
||||
|
||||
High Detail
|
||||
== High Detail
|
||||
|
||||
Hook
|
||||
== Kanca
|
||||
|
||||
Host address
|
||||
== Sunucu adresi
|
||||
|
||||
Hue
|
||||
== Renk
|
||||
|
||||
Info
|
||||
== Bilgi
|
||||
|
||||
Internet
|
||||
== Internet
|
||||
|
||||
Invalid Demo
|
||||
== Geçersiz Demo
|
||||
|
||||
Join blue
|
||||
== Maviye katıl
|
||||
|
||||
Join game
|
||||
== Oyuna katıl
|
||||
|
||||
Join red
|
||||
== Kırmızıya katıl
|
||||
|
||||
Jump
|
||||
== Zıpla
|
||||
|
||||
Kick player
|
||||
== Oyuncuyu At
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Dil
|
||||
|
||||
Length:
|
||||
== Uzunluk:
|
||||
|
||||
Lht.
|
||||
== Parlaklık
|
||||
|
||||
Loading
|
||||
== Yükleniyor
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Harita
|
||||
|
||||
Map:
|
||||
== Harita:
|
||||
|
||||
Max Screenshots
|
||||
== Maksimum Ekran Alıntısı Sayısı
|
||||
|
||||
Max demos
|
||||
== Maksimum Demo Sayısı
|
||||
|
||||
Maximum ping:
|
||||
== Maximum ping
|
||||
|
||||
Miscellaneous
|
||||
== Çeşitli
|
||||
|
||||
Mouse sens.
|
||||
== Mouse duyarlılığı
|
||||
|
||||
Move left
|
||||
== Sola git
|
||||
|
||||
Move player to spectators
|
||||
== Seyircilere katıl
|
||||
|
||||
Move right
|
||||
== Sağa git
|
||||
|
||||
Movement
|
||||
== Hareket
|
||||
|
||||
Mute when not active
|
||||
== Aktif değilken sessizleştir
|
||||
|
||||
Name
|
||||
== İsim
|
||||
|
||||
Name plates size
|
||||
== Boyut
|
||||
|
||||
Netversion:
|
||||
== Netversion :
|
||||
|
||||
New name:
|
||||
== Yeni isim :
|
||||
|
||||
News
|
||||
== Haberler
|
||||
|
||||
Next weapon
|
||||
== Sonraki silah
|
||||
|
||||
Nickname
|
||||
== Takma ad
|
||||
|
||||
No
|
||||
== Hayır
|
||||
|
||||
No password
|
||||
== Şifresiz
|
||||
|
||||
No servers found
|
||||
== Sunucu bulunamadı
|
||||
|
||||
No servers match your filter criteria
|
||||
== Filtre kriterlerinize uygun sunucu bulunamadı
|
||||
|
||||
Ok
|
||||
== Tamam
|
||||
|
||||
Open
|
||||
== Aç
|
||||
|
||||
Parent Folder
|
||||
== Üst dizin
|
||||
|
||||
Password
|
||||
== Şifre
|
||||
|
||||
Password incorrect
|
||||
== Hatalı şifre
|
||||
|
||||
Ping
|
||||
== Ping
|
||||
|
||||
Pistol
|
||||
== Tabanca
|
||||
|
||||
Play
|
||||
== Oynat
|
||||
|
||||
Player
|
||||
== Oyuncu
|
||||
|
||||
Player options
|
||||
== Oyuncu ayarları
|
||||
|
||||
Players
|
||||
== Oyuncular
|
||||
|
||||
Please balance teams!
|
||||
== Takımları dengeleyin!
|
||||
|
||||
Prev. weapon
|
||||
== Önceki silah
|
||||
|
||||
Quality Textures
|
||||
== Kaliteli dolgular
|
||||
|
||||
Quick search:
|
||||
== Hızlı Arama :
|
||||
|
||||
Quit
|
||||
== Çıkış
|
||||
|
||||
Quit anyway?
|
||||
== Çıkmak istediğinize emin misiniz?
|
||||
|
||||
REC %3d:%02d
|
||||
== REC %3d:%02d
|
||||
|
||||
Reason:
|
||||
== Neden :
|
||||
|
||||
Record demo
|
||||
== Demo kaydet
|
||||
|
||||
Red team
|
||||
== Kırmızı takım
|
||||
|
||||
Red team wins!
|
||||
== Kırmızı takım kazandı!
|
||||
|
||||
Refresh
|
||||
== Yenile
|
||||
|
||||
Refreshing master servers
|
||||
== Ana sunucu yenileniyor
|
||||
|
||||
Remote console
|
||||
== Uzak Konsol
|
||||
|
||||
Remove
|
||||
== Çıkar
|
||||
|
||||
Remove friend
|
||||
== Arkadaşı sil
|
||||
|
||||
Rename
|
||||
== Yeniden isimlendir
|
||||
|
||||
Rename demo
|
||||
== Demonun adını değiştir
|
||||
|
||||
Reset filter
|
||||
== Filitreleri varsayılanlara getir
|
||||
|
||||
Reset to defaults
|
||||
== Varsayılanlara getir
|
||||
|
||||
Rifle
|
||||
== Lazer
|
||||
|
||||
Round
|
||||
== Raund
|
||||
|
||||
Sample rate
|
||||
== Sample rate
|
||||
|
||||
Sat.
|
||||
== Doygunluk
|
||||
|
||||
Score
|
||||
== Skor
|
||||
|
||||
Score board
|
||||
== Skor tahtası
|
||||
|
||||
Score limit
|
||||
== Skor limiti
|
||||
|
||||
Scoreboard
|
||||
== Skor tahtası
|
||||
|
||||
Screenshot
|
||||
== Ekran alıntısı
|
||||
|
||||
Server address:
|
||||
== Sunucu adresi :
|
||||
|
||||
Server details
|
||||
== Sunucucu detayları
|
||||
|
||||
Server filter
|
||||
== Filtreler
|
||||
|
||||
Server info
|
||||
== Sunucu bilgisi
|
||||
|
||||
Server not full
|
||||
== Sunucu dolu değil
|
||||
|
||||
Settings
|
||||
== Ayarlar
|
||||
|
||||
Shotgun
|
||||
== Tüfek
|
||||
|
||||
Show chat
|
||||
== Sohbeti göster
|
||||
|
||||
Show friends only
|
||||
== Sadece arkadaşları göster
|
||||
|
||||
Show ingame HUD
|
||||
== Oyun içi HUD ı göster
|
||||
|
||||
Show name plates
|
||||
== Oyuncu isimlerini göster
|
||||
|
||||
Show only supported
|
||||
== Desteklenmeyen çözünürlükleri gizle
|
||||
|
||||
Size:
|
||||
== Boyut:
|
||||
|
||||
Skins
|
||||
== Skins
|
||||
|
||||
Sound
|
||||
== Ses
|
||||
|
||||
Sound error
|
||||
== Ses hatası
|
||||
|
||||
Sound volume
|
||||
== Ses yüksekliği
|
||||
|
||||
Spectate
|
||||
== İzle
|
||||
|
||||
Spectator mode
|
||||
== İzleyici modu
|
||||
|
||||
Spectators
|
||||
== İzleyiciler
|
||||
|
||||
Standard gametype
|
||||
== Standart oyun türleri
|
||||
|
||||
Standard map
|
||||
== Standart haritalar
|
||||
|
||||
Stop record
|
||||
== Kaydı durdur
|
||||
|
||||
Sudden Death
|
||||
== Ani ölüm
|
||||
|
||||
Switch weapon on pickup
|
||||
== Silah alındığıda yeni silaha geç
|
||||
|
||||
Team
|
||||
== Takım
|
||||
|
||||
Team chat
|
||||
== Takım sohbeti
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Teeworlds %s çıktı! www.teeworlds.com dan indirin!
|
||||
|
||||
Texture Compression
|
||||
== Dolgu sıkıştırması
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
== Ses donanımı başlatılamadı.
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Bu sunucu standart olmayan bir ayarı saf bir oyun türünde kullanıyor.
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
== Editörde kaydedilmemiş bir harita var, kapatmadan önce kaydetmek isteyebilirsiniz.
|
||||
|
||||
Time limit
|
||||
== Süre limiti
|
||||
|
||||
Time limit: %d min
|
||||
== Süre limiti: %d min
|
||||
|
||||
Try again
|
||||
== Tekrar dene
|
||||
|
||||
Type
|
||||
== Tür
|
||||
|
||||
Type:
|
||||
== Tür:
|
||||
|
||||
UI Color
|
||||
== Menü rengi
|
||||
|
||||
Unable to delete the demo
|
||||
== Demo silinemiyor
|
||||
|
||||
Unable to rename the demo
|
||||
== Demonun ismi değiştirilemiyor
|
||||
|
||||
Use sounds
|
||||
== Sesleri kullan
|
||||
|
||||
Use team colors for name plates
|
||||
== İsim etiketlerinde takım renklerini kullan
|
||||
|
||||
V-Sync
|
||||
== V-Sync
|
||||
|
||||
Version
|
||||
== Sürüm
|
||||
|
||||
Version:
|
||||
== Versyon :
|
||||
|
||||
Vote command:
|
||||
== Komut:
|
||||
|
||||
Vote description:
|
||||
== Açıklama :
|
||||
|
||||
Vote no
|
||||
== Olumsuz oy ver
|
||||
|
||||
Vote yes
|
||||
== Olumlu oy ver
|
||||
|
||||
Voting
|
||||
== Oylama
|
||||
|
||||
Warmup
|
||||
== Isınma
|
||||
|
||||
Weapon
|
||||
== Silah
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Teeworlds'e hoşgeldiniz
|
||||
|
||||
Yes
|
||||
== Evet
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Bütün ayarların aktif olması için oyunu yeniden başlatmalısınız.
|
||||
|
||||
Your skin
|
||||
== Sizin görünüşünüz
|
||||
|
||||
no limit
|
||||
== limit yok
|
||||
|
||||
Demofile: %s
|
||||
== Demo dosyası
|
||||
|
||||
Play background music
|
||||
== Arkaplan müziğini çal
|
||||
|
||||
Player country:
|
||||
== Oyuncu ülkesi
|
||||
|
||||
Player country:
|
||||
==
|
||||
|
||||
Spectate next
|
||||
== Sıradakini izle
|
||||
|
||||
Spectate previous
|
||||
== Öncekini izle
|
||||
|
||||
Strict gametype filter
|
||||
== Sıkı oyun türü filtresi
|
||||
|
||||
#### needs translation #####
|
||||
##### old translations #####
|
||||
|
|
@ -1,679 +0,0 @@
|
|||
|
||||
##### translated strings #####
|
||||
|
||||
%d of %d servers, %d players
|
||||
== %d/%d серверів, %d гравців
|
||||
|
||||
%d%% loaded
|
||||
== %d%% завантажено
|
||||
|
||||
%ds left
|
||||
== залишилось %d сек.
|
||||
|
||||
Abort
|
||||
== Відміна
|
||||
|
||||
Address
|
||||
== Адреса
|
||||
|
||||
All
|
||||
== Всі
|
||||
|
||||
Alpha
|
||||
== Прозор..
|
||||
|
||||
Always show name plates
|
||||
== Завжди показувати ніки гравців
|
||||
|
||||
Are you sure that you want to delete the demo?
|
||||
== Ви впевнені, що хочете видалити демо?
|
||||
|
||||
Are you sure that you want to quit?
|
||||
== Ви дійсно бажаєте вийти?
|
||||
|
||||
As this is the first time you launch the game, please enter your nick name below. It's recommended that you check the settings to adjust them to your liking before joining a server.
|
||||
== Так як це ваш перший запуск гри, будь ласка, введіть свій нік у полі нижче. Також рекомендуємо перевірити налаштування гри і змінити деякі з них, перед тим, як почати грати.
|
||||
|
||||
Blue team
|
||||
== Сині
|
||||
|
||||
Blue team wins!
|
||||
== Сині перемогли!
|
||||
|
||||
Body
|
||||
== Тіло
|
||||
|
||||
Call vote
|
||||
== Голосувати
|
||||
|
||||
Chat
|
||||
== Чат
|
||||
|
||||
Close
|
||||
== Зачинити
|
||||
|
||||
Compatible version
|
||||
== Сумісна версія
|
||||
|
||||
Connect
|
||||
== Під’єднатись
|
||||
|
||||
Connecting to
|
||||
== Підключення до
|
||||
|
||||
Connection Problems...
|
||||
== Проблеми зі з'єднанням...
|
||||
|
||||
Console
|
||||
== Консоль
|
||||
|
||||
Controls
|
||||
== Управління
|
||||
|
||||
Current
|
||||
== Поточний
|
||||
|
||||
Current version: %s
|
||||
== Поточна версія: %s
|
||||
|
||||
Custom colors
|
||||
== Особистий колір
|
||||
|
||||
Delete
|
||||
== Видалити
|
||||
|
||||
Demos
|
||||
== Демо
|
||||
|
||||
Disconnect
|
||||
== Від'єднатись
|
||||
|
||||
Disconnected
|
||||
== Від'єднанно
|
||||
|
||||
Display Modes
|
||||
== Режими дисплея
|
||||
|
||||
Downloading map
|
||||
== Завантаження карти
|
||||
|
||||
Draw!
|
||||
== Нічия!
|
||||
|
||||
Dynamic Camera
|
||||
== Динамічна камера
|
||||
|
||||
Emoticon
|
||||
== Емоція
|
||||
|
||||
Enter
|
||||
== Вхід
|
||||
|
||||
Error
|
||||
== Помилка
|
||||
|
||||
Error loading demo
|
||||
== Помилка при завантаженні демо
|
||||
|
||||
FSAA samples
|
||||
== Семплів FSAA
|
||||
|
||||
Favorite
|
||||
== Обраний
|
||||
|
||||
Favorites
|
||||
== Обрані
|
||||
|
||||
Feet
|
||||
== Ноги
|
||||
|
||||
Filter
|
||||
== Фільтр
|
||||
|
||||
Fire
|
||||
== Постріл
|
||||
|
||||
Folder
|
||||
== Папка
|
||||
|
||||
Force vote
|
||||
== Форсувати
|
||||
|
||||
Fullscreen
|
||||
== Повноекранний режим
|
||||
|
||||
Game
|
||||
== Гра
|
||||
|
||||
Game info
|
||||
== Інфо по грі
|
||||
|
||||
Game over
|
||||
== Гра закінчена
|
||||
|
||||
Game type
|
||||
== Тип гри
|
||||
|
||||
Game types:
|
||||
== Типи гри:
|
||||
|
||||
General
|
||||
== Основні
|
||||
|
||||
Graphics
|
||||
== Графіка
|
||||
|
||||
Grenade
|
||||
== Ракетниця
|
||||
|
||||
Hammer
|
||||
== Молоток
|
||||
|
||||
Has people playing
|
||||
== Сервер не порожній
|
||||
|
||||
High Detail
|
||||
== Висока деталізація
|
||||
|
||||
Hook
|
||||
== Гак
|
||||
|
||||
Host address
|
||||
== Адреса сервера
|
||||
|
||||
Hue
|
||||
== Відтінок
|
||||
|
||||
Info
|
||||
== Інфо
|
||||
|
||||
Internet
|
||||
== Інтернет
|
||||
|
||||
Invalid Demo
|
||||
== Невірне демо
|
||||
|
||||
Join blue
|
||||
== За синіх
|
||||
|
||||
Join game
|
||||
== Приєднатись до гри
|
||||
|
||||
Join red
|
||||
== За червоних
|
||||
|
||||
Jump
|
||||
== Стрибок
|
||||
|
||||
LAN
|
||||
== LAN
|
||||
|
||||
Language
|
||||
== Мова
|
||||
|
||||
Lht.
|
||||
== Яскравість
|
||||
|
||||
Loading
|
||||
== Завантаження
|
||||
|
||||
MOTD
|
||||
== MOTD
|
||||
|
||||
Map
|
||||
== Карта
|
||||
|
||||
Maximum ping:
|
||||
== Макс. пінг:
|
||||
|
||||
Miscellaneous
|
||||
== Додатково
|
||||
|
||||
Mouse sens.
|
||||
== Чутлив. миші
|
||||
|
||||
Move left
|
||||
== Вліво
|
||||
|
||||
Move right
|
||||
== Вправо
|
||||
|
||||
Movement
|
||||
== Переміщення
|
||||
|
||||
Mute when not active
|
||||
== Глушити звуки, коли гра неактивна
|
||||
|
||||
Name
|
||||
== Ім'я
|
||||
|
||||
News
|
||||
== Новини
|
||||
|
||||
Next weapon
|
||||
== Наступ. зброя
|
||||
|
||||
Nickname
|
||||
== Нік
|
||||
|
||||
No
|
||||
== Ні
|
||||
|
||||
No password
|
||||
== Без пароля
|
||||
|
||||
No servers found
|
||||
== Сервера не знайдені
|
||||
|
||||
No servers match your filter criteria
|
||||
== Не знайдено ні одного сервара, який би відповідав вашим критеріям
|
||||
|
||||
Ok
|
||||
== Ок
|
||||
|
||||
Open
|
||||
== Відкрити
|
||||
|
||||
Password
|
||||
== Пароль
|
||||
|
||||
Password incorrect
|
||||
== пароль введено невірно
|
||||
|
||||
Ping
|
||||
== Пінг
|
||||
|
||||
Pistol
|
||||
== Пістолет
|
||||
|
||||
Play
|
||||
== Перегляд
|
||||
|
||||
Player
|
||||
== Гравець
|
||||
|
||||
Players
|
||||
== Гравці
|
||||
|
||||
Please balance teams!
|
||||
== Збалансуйте команди!
|
||||
|
||||
Prev. weapon
|
||||
== Попер. зброя
|
||||
|
||||
Quality Textures
|
||||
== Якісні текстури
|
||||
|
||||
Quick search:
|
||||
== Швидкий пошук:
|
||||
|
||||
Quit
|
||||
== Вихід
|
||||
|
||||
Reason:
|
||||
== Причина:
|
||||
|
||||
Record demo
|
||||
== Запис демо
|
||||
|
||||
Red team
|
||||
== Червоні
|
||||
|
||||
Red team wins!
|
||||
== Червоні перемогли!
|
||||
|
||||
Refresh
|
||||
== Оновити
|
||||
|
||||
Refreshing master servers
|
||||
== Оновлення списку майстер-сервера
|
||||
|
||||
Remote console
|
||||
== Консоль сервера
|
||||
|
||||
Reset filter
|
||||
== Скинути фільтри
|
||||
|
||||
Reset to defaults
|
||||
== Скинути налаштування
|
||||
|
||||
Rifle
|
||||
== Лазер
|
||||
|
||||
Round
|
||||
== Раунд
|
||||
|
||||
Sample rate
|
||||
== Частота
|
||||
|
||||
Sat.
|
||||
== Контраст.
|
||||
|
||||
Score
|
||||
== Очки
|
||||
|
||||
Score board
|
||||
== Табло
|
||||
|
||||
Score limit
|
||||
== Ліміт очок
|
||||
|
||||
Scoreboard
|
||||
== Хід гри
|
||||
|
||||
Screenshot
|
||||
== Скріншот
|
||||
|
||||
Server details
|
||||
== Деталі сервера
|
||||
|
||||
Server info
|
||||
== Інформація
|
||||
|
||||
Server not full
|
||||
== Сервер не заповнений
|
||||
|
||||
Settings
|
||||
== Налаштування
|
||||
|
||||
Shotgun
|
||||
== Дробовик
|
||||
|
||||
Show chat
|
||||
== Показати чат
|
||||
|
||||
Show name plates
|
||||
== Показувати ніки гравців
|
||||
|
||||
Show only supported
|
||||
== Тільки підтримувані режими
|
||||
|
||||
Skins
|
||||
== Скіни
|
||||
|
||||
Sound
|
||||
== Звук
|
||||
|
||||
Sound volume
|
||||
== Гучність звуку
|
||||
|
||||
Spectate
|
||||
== Спостерігати
|
||||
|
||||
Spectators
|
||||
== Спостерігачі
|
||||
|
||||
Standard gametype
|
||||
== Стандартний тип гри
|
||||
|
||||
Standard map
|
||||
== Стандартна карта
|
||||
|
||||
Stop record
|
||||
== Зупинити запис
|
||||
|
||||
Sudden Death
|
||||
== Швидка смерть
|
||||
|
||||
Switch weapon on pickup
|
||||
== Перемикати зброю при підборі
|
||||
|
||||
Team
|
||||
== Команда
|
||||
|
||||
Team chat
|
||||
== Командний чат
|
||||
|
||||
Teeworlds %s is out! Download it at www.teeworlds.com!
|
||||
== Вийшла Teeworlds %s! Завантажуйте на www.teeworlds.com!
|
||||
|
||||
Texture Compression
|
||||
== Стиснення текстур
|
||||
|
||||
The server is running a non-standard tuning on a pure game type.
|
||||
== Сервер запущено з нестандартними налаштуваннями на стандартному типі гри.
|
||||
|
||||
Time limit
|
||||
== Ліміт часу
|
||||
|
||||
Time limit: %d min
|
||||
== Ліміт часу: %d хв
|
||||
|
||||
Try again
|
||||
== Спробувати знову
|
||||
|
||||
Type
|
||||
== Тип
|
||||
|
||||
UI Color
|
||||
== колір інтерфейсу
|
||||
|
||||
Use sounds
|
||||
== Використовувати звуки
|
||||
|
||||
V-Sync
|
||||
== Вертикальна синхронізація
|
||||
|
||||
Version
|
||||
== Версія
|
||||
|
||||
Vote no
|
||||
== Проти
|
||||
|
||||
Vote yes
|
||||
== За
|
||||
|
||||
Voting
|
||||
== Голосування
|
||||
|
||||
Warmup
|
||||
== Розминка
|
||||
|
||||
Weapon
|
||||
== зброя
|
||||
|
||||
Welcome to Teeworlds
|
||||
== Ласкаво просимо в Teeworlds!
|
||||
|
||||
Yes
|
||||
== Так
|
||||
|
||||
You must restart the game for all settings to take effect.
|
||||
== Перезапустіть гру для застосування змін.
|
||||
|
||||
Your skin
|
||||
== Ваш скін
|
||||
|
||||
##### needs translation #####
|
||||
|
||||
%d Bytes
|
||||
==
|
||||
|
||||
%i minute left
|
||||
==
|
||||
|
||||
%i minutes left
|
||||
==
|
||||
|
||||
%i second left
|
||||
==
|
||||
|
||||
%i seconds left
|
||||
==
|
||||
|
||||
%s wins!
|
||||
==
|
||||
|
||||
-Page %d-
|
||||
==
|
||||
|
||||
Add
|
||||
==
|
||||
|
||||
Add Friend
|
||||
==
|
||||
|
||||
Are you sure that you want to remove the player from your friends list?
|
||||
==
|
||||
|
||||
Automatically record demos
|
||||
==
|
||||
|
||||
Automatically take game over screenshot
|
||||
==
|
||||
|
||||
Change settings
|
||||
==
|
||||
|
||||
Clan
|
||||
==
|
||||
|
||||
Client
|
||||
==
|
||||
|
||||
Count players only
|
||||
==
|
||||
|
||||
Country
|
||||
==
|
||||
|
||||
Crc:
|
||||
==
|
||||
|
||||
Created:
|
||||
==
|
||||
|
||||
Delete demo
|
||||
==
|
||||
|
||||
Demo details
|
||||
==
|
||||
|
||||
Demofile: %s
|
||||
==
|
||||
|
||||
Free-View
|
||||
==
|
||||
|
||||
Friends
|
||||
==
|
||||
|
||||
Kick player
|
||||
==
|
||||
|
||||
Length:
|
||||
==
|
||||
|
||||
Map:
|
||||
==
|
||||
|
||||
Max Screenshots
|
||||
==
|
||||
|
||||
Max demos
|
||||
==
|
||||
|
||||
Move player to spectators
|
||||
==
|
||||
|
||||
Name plates size
|
||||
==
|
||||
|
||||
Netversion:
|
||||
==
|
||||
|
||||
New name:
|
||||
==
|
||||
|
||||
Parent Folder
|
||||
==
|
||||
|
||||
Play background music
|
||||
==
|
||||
|
||||
Player country:
|
||||
==
|
||||
|
||||
Player options
|
||||
==
|
||||
|
||||
Quit anyway?
|
||||
==
|
||||
|
||||
REC %3d:%02d
|
||||
==
|
||||
|
||||
Remove
|
||||
==
|
||||
|
||||
Remove friend
|
||||
==
|
||||
|
||||
Rename
|
||||
==
|
||||
|
||||
Rename demo
|
||||
==
|
||||
|
||||
Server address:
|
||||
==
|
||||
|
||||
Server filter
|
||||
==
|
||||
|
||||
Show friends only
|
||||
==
|
||||
|
||||
Show ingame HUD
|
||||
==
|
||||
|
||||
Size:
|
||||
==
|
||||
|
||||
Sound error
|
||||
==
|
||||
|
||||
Spectate next
|
||||
==
|
||||
|
||||
Spectate previous
|
||||
==
|
||||
|
||||
Spectator mode
|
||||
==
|
||||
|
||||
Strict gametype filter
|
||||
==
|
||||
|
||||
The audio device couldn't be initialised.
|
||||
==
|
||||
|
||||
There's an unsaved map in the editor, you might want to save it before you quit the game.
|
||||
==
|
||||
|
||||
Type:
|
||||
==
|
||||
|
||||
Unable to delete the demo
|
||||
==
|
||||
|
||||
Unable to rename the demo
|
||||
==
|
||||
|
||||
Use team colors for name plates
|
||||
==
|
||||
|
||||
Version:
|
||||
==
|
||||
|
||||
Vote command:
|
||||
==
|
||||
|
||||
Vote description:
|
||||
==
|
||||
|
||||
no limit
|
||||
==
|
||||
|
||||
##### old translations #####
|
||||
|
|
@ -477,7 +477,7 @@ weapon.firedelay.Set(125)
|
|||
weapon.ammoregentime.Set(500)
|
||||
weapon.visual_size.Set(64)
|
||||
weapon.offsetx.Set(32)
|
||||
weapon.offsety.Set(-4)
|
||||
weapon.offsety.Set(4)
|
||||
weapon.muzzleoffsetx.Set(50)
|
||||
weapon.muzzleoffsety.Set(6)
|
||||
container.weapons.gun.base.Set(weapon)
|
||||
|
|
|
@ -13,7 +13,7 @@ os.chdir('../')
|
|||
|
||||
url_bam = "http://github.com/matricks/bam/zipball/master"
|
||||
url_DDRace = "http://github.com/GreYFoX/DDRace/zipball/master"
|
||||
url_teeworlds = "http://github.com/oy/teeworlds/zipball/master"
|
||||
url_teeworlds = "http://github.com/teeworlds/teeworlds/zipball/master"
|
||||
release_type = "server_release client_release"
|
||||
|
||||
arguments = OptionParser()
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
import shutil, os, sys, zipfile
|
||||
import shutil, os, re, sys, zipfile
|
||||
if sys.version_info[0] == 2:
|
||||
import urllib
|
||||
url_lib = urllib
|
||||
elif sys.version_info[0] == 3:
|
||||
import urllib.request
|
||||
url_lib = urllib.request
|
||||
|
||||
#valid_platforms = ["win32", "linux86", "linux86_64", "src"]
|
||||
|
||||
|
@ -8,6 +14,7 @@ if len(sys.argv) != 3:
|
|||
sys.exit(-1)
|
||||
|
||||
name = "DDRace"
|
||||
url_languages = "https://github.com/teeworlds/teeworlds-translation/zipball/master"
|
||||
version = sys.argv[1]
|
||||
platform = sys.argv[2]
|
||||
exe_ext = ""
|
||||
|
@ -40,6 +47,29 @@ if platform == 'osx':
|
|||
use_gz = 0
|
||||
use_bundle = 1
|
||||
|
||||
def fetch_file(url):
|
||||
try:
|
||||
print("trying %s" % url)
|
||||
real_url = url_lib.urlopen(url).geturl()
|
||||
local = real_url.split("/")
|
||||
local = local[len(local)-1].split("?")
|
||||
local = local[0]
|
||||
url_lib.urlretrieve(real_url, local)
|
||||
return local
|
||||
except:
|
||||
return False
|
||||
|
||||
def unzip(filename, where):
|
||||
try:
|
||||
z = zipfile.ZipFile(filename, "r")
|
||||
except:
|
||||
return False
|
||||
for name in z.namelist():
|
||||
if "/data/languages/" in name:
|
||||
z.extract(name, where)
|
||||
z.close()
|
||||
return z.namelist()[0]
|
||||
|
||||
def copydir(src, dst, excl=[]):
|
||||
for root, dirs, files in os.walk(src, topdown=True):
|
||||
if "/." in root or "\\." in root:
|
||||
|
@ -50,7 +80,15 @@ def copydir(src, dst, excl=[]):
|
|||
for name in files:
|
||||
if name[0] != '.':
|
||||
shutil.copy(os.path.join(root, name), os.path.join(dst, root, name))
|
||||
|
||||
|
||||
def clean():
|
||||
print("*** cleaning ***")
|
||||
try:
|
||||
shutil.rmtree(package_dir)
|
||||
shutil.rmtree(languages_dir)
|
||||
os.remove(src_package_languages)
|
||||
except: pass
|
||||
|
||||
package = "%s-%s-%s" %(name, version, platform)
|
||||
package_dir = package
|
||||
|
||||
|
@ -58,6 +96,16 @@ print("cleaning target")
|
|||
shutil.rmtree(package_dir, True)
|
||||
os.mkdir(package_dir)
|
||||
|
||||
print("download and extract languages")
|
||||
src_package_languages = fetch_file(url_languages)
|
||||
if not src_package_languages:
|
||||
print("couldn't download languages")
|
||||
sys.exit(-1)
|
||||
languages_dir = unzip(src_package_languages, ".")
|
||||
if not languages_dir:
|
||||
print("couldn't unzip languages")
|
||||
sys.exit(-1)
|
||||
|
||||
print("adding files")
|
||||
shutil.copy("readme.txt", package_dir)
|
||||
shutil.copy("license.txt", package_dir)
|
||||
|
@ -73,6 +121,9 @@ shutil.copy("banmasters.cfg", package_dir)
|
|||
if include_data and not use_bundle:
|
||||
os.mkdir(os.path.join(package_dir, "data"))
|
||||
copydir("data", package_dir)
|
||||
os.chdir(languages_dir)
|
||||
copydir("data", "../"+package_dir)
|
||||
os.chdir("..")
|
||||
if platform[:3] == "win":
|
||||
shutil.copy("other/config_directory.bat", package_dir)
|
||||
shutil.copy("SDL.dll", package_dir)
|
||||
|
@ -116,7 +167,11 @@ if use_bundle:
|
|||
os.mkdir(clientbundle_framework_dir)
|
||||
os.mkdir(os.path.join(clientbundle_resource_dir, "data"))
|
||||
copydir("data", clientbundle_resource_dir)
|
||||
os.chdir(languages_dir)
|
||||
copydir("data", "../"+clientbundle_resource_dir)
|
||||
os.chdir("..") # TODO(GreYFoX): make sure this line doesn't change the directory of the icon file copied next, just make sure everything works
|
||||
shutil.copy("other/icons/DDRace.icns", clientbundle_resource_dir)
|
||||
#shutil.copy("other/icons/Teeworlds.icns", clientbundle_resource_dir)
|
||||
shutil.copy(name+exe_ext, clientbundle_bin_dir)
|
||||
os.system("cp -R /Library/Frameworks/SDL.framework " + clientbundle_framework_dir)
|
||||
file(os.path.join(clientbundle_content_dir, "Info.plist"), "w").write("""
|
||||
|
@ -203,5 +258,7 @@ if use_dmg:
|
|||
os.system("hdiutil create -srcfolder %s -volname DDRace -quiet %s_temp" % (package_dir, package))
|
||||
os.system("hdiutil convert %s_temp.dmg -format UDBZ -o %s.dmg -quiet" % (package, package))
|
||||
os.system("rm -f %s_temp.dmg" % package)
|
||||
|
||||
clean()
|
||||
|
||||
print("done")
|
||||
|
|
|
@ -1,91 +0,0 @@
|
|||
import os, re, sys
|
||||
match = re.search('(.*)/', sys.argv[0])
|
||||
if match != None:
|
||||
os.chdir(match.group(1))
|
||||
os.chdir('../')
|
||||
|
||||
source_exts = [".c", ".cpp", ".h"]
|
||||
|
||||
def parse_source():
|
||||
stringtable = {}
|
||||
def process_line(line):
|
||||
if 'Localize("'.encode() in line:
|
||||
fields = line.split('Localize("'.encode(), 1)[1].split('"'.encode(), 1)
|
||||
stringtable[fields[0]] = ""
|
||||
process_line(fields[1])
|
||||
|
||||
for root, dirs, files in os.walk("src"):
|
||||
for name in files:
|
||||
filename = os.path.join(root, name)
|
||||
|
||||
if os.sep + "external" + os.sep in filename:
|
||||
continue
|
||||
|
||||
if filename[-2:] in source_exts or filename[-4:] in source_exts:
|
||||
for line in open(filename, "rb"):
|
||||
process_line(line)
|
||||
|
||||
return stringtable
|
||||
|
||||
def load_languagefile(filename):
|
||||
f = open(filename, "rb")
|
||||
lines = f.readlines()
|
||||
f.close()
|
||||
|
||||
stringtable = {}
|
||||
|
||||
for i in range(0, len(lines)-1):
|
||||
l = lines[i].strip()
|
||||
if len(l) and not l[0:1] == "=".encode() and not l[0:1] == "#".encode():
|
||||
stringtable[l] = lines[i+1][3:].rstrip()
|
||||
|
||||
return stringtable
|
||||
|
||||
def generate_languagefile(outputfilename, srctable, loctable):
|
||||
f = open(outputfilename, "wb")
|
||||
|
||||
num_items = 0
|
||||
new_items = 0
|
||||
old_items = 0
|
||||
|
||||
srctable_keys = []
|
||||
for key in srctable:
|
||||
srctable_keys.append(key)
|
||||
srctable_keys.sort()
|
||||
|
||||
content = "\n##### translated strings #####\n\n".encode()
|
||||
for k in srctable_keys:
|
||||
if k in loctable and len(loctable[k]):
|
||||
content += k + "\n== ".encode() + loctable[k] + "\n\n".encode()
|
||||
num_items += 1
|
||||
|
||||
content += "##### needs translation #####\n\n".encode()
|
||||
for k in srctable_keys:
|
||||
if not k in loctable or len(loctable[k]) == 0:
|
||||
content += k + "\n== \n\n".encode()
|
||||
num_items += 1
|
||||
new_items += 1
|
||||
|
||||
content += "##### old translations #####\n\n".encode()
|
||||
for k in loctable:
|
||||
if not k in srctable:
|
||||
content += k + "\n== ".encode() + loctable[k] + "\n\n".encode()
|
||||
num_items += 1
|
||||
old_items += 1
|
||||
|
||||
f.write(content)
|
||||
f.close()
|
||||
print("%-40s %8d %8d %8d" % (outputfilename, num_items, new_items, old_items))
|
||||
|
||||
srctable = parse_source()
|
||||
|
||||
print("%-40s %8s %8s %8s" % ("filename", "total", "new", "old"))
|
||||
|
||||
for filename in os.listdir("data/languages"):
|
||||
if not ".txt" in filename:
|
||||
continue
|
||||
if filename == "index.txt":
|
||||
continue
|
||||
|
||||
filename = "data/languages/" + filename
|
||||
generate_languagefile(filename, srctable, load_languagefile(filename))
|
|
@ -25,12 +25,18 @@ public:
|
|||
vector2_base operator -(const vector2_base &v) const { return vector2_base(x-v.x, y-v.y); }
|
||||
vector2_base operator +(const vector2_base &v) const { return vector2_base(x+v.x, y+v.y); }
|
||||
vector2_base operator *(const T v) const { return vector2_base(x*v, y*v); }
|
||||
vector2_base operator *(const vector2_base &v) const { return vector2_base(x*v.x, y*v.y); }
|
||||
vector2_base operator /(const T v) const { return vector3_base(x/v, y/v); }
|
||||
vector2_base operator /(const vector2_base &v) const { return vector2_base(x/v.x, y/v.y); }
|
||||
|
||||
const vector2_base &operator =(const vector2_base &v) { x = v.x; y = v.y; return *this; }
|
||||
|
||||
const vector2_base &operator +=(const vector2_base &v) { x += v.x; y += v.y; return *this; }
|
||||
const vector2_base &operator -=(const vector2_base &v) { x -= v.x; y -= v.y; return *this; }
|
||||
const vector2_base &operator *=(const T v) { x *= v; y *= v; return *this; }
|
||||
const vector2_base &operator *=(const vector2_base &v) { x *= v.x; y *= v.y; return *this; }
|
||||
const vector2_base &operator /=(const T v) { x /= v; y /= v; return *this; }
|
||||
const vector2_base &operator /=(const vector2_base &v) { x /= v.x; y /= v.y; return *this; }
|
||||
|
||||
bool operator ==(const vector2_base &v) const { return x == v.x && y == v.y; } //TODO: do this with an eps instead
|
||||
|
||||
|
@ -107,10 +113,14 @@ public:
|
|||
vector3_base operator *(const T v) const { return vector3_base(x*v, y*v, z*v); }
|
||||
vector3_base operator *(const vector3_base &v) const { return vector3_base(x*v.x, y*v.y, z*v.z); }
|
||||
vector3_base operator /(const T v) const { return vector3_base(x/v, y/v, z/v); }
|
||||
vector3_base operator /(const vector3_base &v) const { return vector3_base(x/v.x, y/v.y, z/v.z); }
|
||||
|
||||
const vector3_base &operator +=(const vector3_base &v) { x += v.x; y += v.y; z += v.z; return *this; }
|
||||
const vector3_base &operator -=(const vector3_base &v) { x -= v.x; y -= v.y; z -= v.z; return *this; }
|
||||
const vector3_base &operator *=(const T v) { x *= v; y *= v; z *= v; return *this; }
|
||||
const vector3_base &operator *=(const vector3_base &v) { x *= v.x; y *= v.y; z *= v.z; return *this; }
|
||||
const vector3_base &operator /=(const T v) { x /= v; y /= v; z /= v; return *this; }
|
||||
const vector3_base &operator /=(const vector3_base &v) { x /= v.x; y /= v.y; z /= v.z; return *this; }
|
||||
|
||||
bool operator ==(const vector3_base &v) const { return x == v.x && y == v.y && z == v.z; } //TODO: do this with an eps instead
|
||||
|
||||
|
@ -180,12 +190,17 @@ public:
|
|||
vector4_base operator -() const { return vector4_base(-x, -y, -z, -w); }
|
||||
vector4_base operator *(const vector4_base &v) const { return vector4_base(x*v.x, y*v.y, z*v.z, w*v.w); }
|
||||
vector4_base operator *(const T v) const { return vector4_base(x*v, y*v, z*v, w*v); }
|
||||
vector4_base operator /(const vector4_base &v) const { return vector4_base(x/v.x, y/v.y, z/v.z, w/v.w); }
|
||||
vector4_base operator /(const T v) const { return vector4_base(x/v, y/v, z/v, w/v); }
|
||||
|
||||
const vector4_base &operator =(const vector4_base &v) { x = v.x; y = v.y; z = v.z; w = v.w; return *this; }
|
||||
|
||||
const vector4_base &operator +=(const vector4_base &v) { x += v.x; y += v.y; z += v.z; w += v.w; return *this; }
|
||||
const vector4_base &operator -=(const vector4_base &v) { x -= v.x; y -= v.y; z -= v.z; w -= v.w; return *this; }
|
||||
const vector4_base &operator *=(const T v) { x *= v; y *= v; z *= v; w *= v; return *this; }
|
||||
const vector4_base &operator *=(const vector4_base &v) { x *= v.x; y *= v.y; z *= v.z; w *= v.w; return *this; }
|
||||
const vector4_base &operator /=(const T v) { x /= v; y /= v; z /= v; w /= v; return *this; }
|
||||
const vector4_base &operator /=(const vector4_base &v) { x /= v.x; y /= v.y; z /= v.z; w /= v.w; return *this; }
|
||||
|
||||
bool operator ==(const vector4_base &v) const { return x == v.x && y == v.y && z == v.z && w == v.w; } //TODO: do this with an eps instead
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
#include "SDL.h"
|
||||
#include "SDL_opengl.h"
|
||||
|
||||
#include <base/tl/threading.h>
|
||||
|
||||
#include "graphics_threaded.h"
|
||||
#include "backend_sdl.h"
|
||||
|
||||
|
@ -133,6 +135,20 @@ void CCommandProcessorFragment_OpenGL::SetState(const CCommandBuffer::SState &St
|
|||
else
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
switch(State.m_WrapMode)
|
||||
{
|
||||
case CCommandBuffer::WRAP_REPEAT:
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
break;
|
||||
case CCommandBuffer::WRAP_CLAMP:
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
break;
|
||||
default:
|
||||
dbg_msg("render", "unknown wrapmode %d\n", State.m_WrapMode);
|
||||
};
|
||||
|
||||
// screen mapping
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
|
@ -389,6 +405,7 @@ int CGraphicsBackend_SDL_OpenGL::Init(const char *pName, int Width, int Height,
|
|||
}
|
||||
|
||||
const SDL_VideoInfo *pInfo = SDL_GetVideoInfo();
|
||||
SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE); // prevent stuck mouse cursor sdl-bug when loosing fullscreen focus in windows
|
||||
|
||||
// set flags
|
||||
int SdlFlags = SDL_OPENGL;
|
||||
|
|
|
@ -27,25 +27,24 @@
|
|||
static void GL_ReleaseContext(const SGLContext &Context) { wglMakeCurrent(NULL, NULL); }
|
||||
static void GL_SwapBuffers(const SGLContext &Context) { SwapBuffers(Context.m_hDC); }
|
||||
#elif defined(CONF_PLATFORM_MACOSX)
|
||||
#warning Untested implementation. I have no Mac OS X machine to test on. Please test, verify, fix and then remove this warning
|
||||
|
||||
#include <AGL/agl.h>
|
||||
|
||||
struct SGLContext
|
||||
{
|
||||
AGLDrawable m_Drawable;
|
||||
AGLContext m_Context;
|
||||
};
|
||||
|
||||
static SGLContext GL_GetCurrentContext()
|
||||
{
|
||||
SGLContext Context;
|
||||
Context.m_Drawable = aglGetCurrentDrawable();
|
||||
Context.m_Context = aglGetCurrentContext();
|
||||
return Context;
|
||||
}
|
||||
|
||||
static void GL_MakeCurrent(const SGLContext &Context) { aglMakeCurrent(Context.m_Drawable, Context.m_Context); }
|
||||
static void GL_ReleaseContext(const SGLContext &Context) { aglMakeCurrent(AGL_NONE, NULL); }
|
||||
static void GL_SwapBuffers(const SGLContext &Context) { aglSwapBuffers(Context.m_Drawable); }
|
||||
static void GL_MakeCurrent(const SGLContext &Context) { aglSetCurrentContext(Context.m_Context); }
|
||||
static void GL_ReleaseContext(const SGLContext &Context) { aglSetCurrentContext(NULL); }
|
||||
static void GL_SwapBuffers(const SGLContext &Context) { aglSwapBuffers(Context.m_Context); }
|
||||
|
||||
#elif defined(CONF_FAMILY_UNIX)
|
||||
|
||||
|
|
|
@ -36,6 +36,8 @@
|
|||
#include <engine/shared/ringbuffer.h>
|
||||
#include <engine/shared/snapshot.h>
|
||||
|
||||
#include <game/version.h>
|
||||
|
||||
#include <mastersrv/mastersrv.h>
|
||||
#include <versionsrv/versionsrv.h>
|
||||
|
||||
|
@ -461,6 +463,9 @@ int *CClient::GetInput(int Tick)
|
|||
// ------ state handling -----
|
||||
void CClient::SetState(int s)
|
||||
{
|
||||
if(m_State == IClient::STATE_QUITING)
|
||||
return;
|
||||
|
||||
int Old = m_State;
|
||||
if(g_Config.m_Debug)
|
||||
{
|
||||
|
@ -859,23 +864,26 @@ void CClient::ProcessConnlessPacket(CNetChunk *pPacket)
|
|||
if(m_VersionInfo.m_State == CVersionInfo::STATE_READY && net_addr_comp(&pPacket->m_Address, &m_VersionInfo.m_VersionServeraddr.m_Addr) == 0)
|
||||
{
|
||||
// version info
|
||||
if(pPacket->m_DataSize == (int)(sizeof(VERSIONSRV_VERSION) + sizeof(VERSION_DATA)) &&
|
||||
if(pPacket->m_DataSize == (int)(sizeof(VERSIONSRV_VERSION) + sizeof(GAME_RELEASE_VERSION)) &&
|
||||
mem_comp(pPacket->m_pData, VERSIONSRV_VERSION, sizeof(VERSIONSRV_VERSION)) == 0)
|
||||
|
||||
{
|
||||
unsigned char *pVersionData = (unsigned char*)pPacket->m_pData + sizeof(VERSIONSRV_VERSION);
|
||||
int VersionMatch = !mem_comp(pVersionData, VERSION_DATA, sizeof(VERSION_DATA));
|
||||
char *pVersionData = (char*)pPacket->m_pData + sizeof(VERSIONSRV_VERSION);
|
||||
int VersionMatch = !mem_comp(pVersionData, GAME_RELEASE_VERSION, sizeof(GAME_RELEASE_VERSION));
|
||||
|
||||
char aVersion[sizeof(GAME_RELEASE_VERSION)];
|
||||
str_copy(aVersion, pVersionData, sizeof(aVersion));
|
||||
|
||||
char aBuf[256];
|
||||
str_format(aBuf, sizeof(aBuf), "version does %s (%d.%d.%d)",
|
||||
str_format(aBuf, sizeof(aBuf), "version does %s (%s)",
|
||||
VersionMatch ? "match" : "NOT match",
|
||||
pVersionData[1], pVersionData[2], pVersionData[3]);
|
||||
aVersion);
|
||||
m_pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "client/version", aBuf);
|
||||
|
||||
// assume version is out of date when version-data doesn't match
|
||||
if (!VersionMatch)
|
||||
if(!VersionMatch)
|
||||
{
|
||||
str_format(m_aVersionStr, sizeof(m_aVersionStr), "%d.%d.%d", pVersionData[1], pVersionData[2], pVersionData[3]);
|
||||
str_copy(m_aVersionStr, aVersion, sizeof(m_aVersionStr));
|
||||
}
|
||||
|
||||
// request the map version list now
|
||||
|
@ -1741,8 +1749,11 @@ void CClient::Run()
|
|||
// open socket
|
||||
{
|
||||
NETADDR BindAddr;
|
||||
mem_zero(&BindAddr, sizeof(BindAddr));
|
||||
BindAddr.type = NETTYPE_ALL;
|
||||
if(g_Config.m_Bindaddr[0] == 0 || net_host_lookup(g_Config.m_Bindaddr, &BindAddr, NETTYPE_ALL) != 0)
|
||||
{
|
||||
mem_zero(&BindAddr, sizeof(BindAddr));
|
||||
BindAddr.type = NETTYPE_ALL;
|
||||
}
|
||||
if(!m_NetClient.Open(BindAddr, 0))
|
||||
{
|
||||
dbg_msg("client", "couldn't start network");
|
||||
|
@ -1842,7 +1853,10 @@ void CClient::Run()
|
|||
|
||||
// panic quit button
|
||||
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyPressed('q'))
|
||||
{
|
||||
Quit();
|
||||
break;
|
||||
}
|
||||
|
||||
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyDown('d'))
|
||||
g_Config.m_Debug ^= 1;
|
||||
|
@ -2158,6 +2172,11 @@ void CClient::DemoRecorder_Stop()
|
|||
m_DemoRecorder.Stop();
|
||||
}
|
||||
|
||||
void CClient::DemoRecorder_AddDemoMarker()
|
||||
{
|
||||
m_DemoRecorder.AddDemoMarker();
|
||||
}
|
||||
|
||||
void CClient::Con_Record(IConsole::IResult *pResult, void *pUserData)
|
||||
{
|
||||
CClient *pSelf = (CClient *)pUserData;
|
||||
|
@ -2173,6 +2192,12 @@ void CClient::Con_StopRecord(IConsole::IResult *pResult, void *pUserData)
|
|||
pSelf->DemoRecorder_Stop();
|
||||
}
|
||||
|
||||
void CClient::Con_AddDemoMarker(IConsole::IResult *pResult, void *pUserData)
|
||||
{
|
||||
CClient *pSelf = (CClient *)pUserData;
|
||||
pSelf->DemoRecorder_AddDemoMarker();
|
||||
}
|
||||
|
||||
void CClient::ServerBrowserUpdate()
|
||||
{
|
||||
m_ResortServerBrowser = true;
|
||||
|
@ -2211,6 +2236,7 @@ void CClient::RegisterCommands()
|
|||
m_pConsole->Register("play", "r", CFGFLAG_CLIENT|CFGFLAG_STORE, Con_Play, this, "Play the file specified");
|
||||
m_pConsole->Register("record", "?s", CFGFLAG_CLIENT, Con_Record, this, "Record to the file");
|
||||
m_pConsole->Register("stoprecord", "", CFGFLAG_CLIENT, Con_StopRecord, this, "Stop recording");
|
||||
m_pConsole->Register("add_demomarker", "", CFGFLAG_CLIENT, Con_AddDemoMarker, this, "Add demo timeline marker");
|
||||
m_pConsole->Register("add_favorite", "s", CFGFLAG_CLIENT, Con_AddFavorite, this, "Add a server as a favorite");
|
||||
m_pConsole->Register("remove_favorite", "s", CFGFLAG_CLIENT, Con_RemoveFavorite, this, "Remove a server from favorites");
|
||||
|
||||
|
@ -2246,11 +2272,13 @@ static CClient *CreateClient()
|
|||
*/
|
||||
|
||||
#if defined(CONF_PLATFORM_MACOSX)
|
||||
extern "C" int SDL_main(int argc, const char **argv) // ignore_convention
|
||||
extern "C" int SDL_main(int argc, char **argv_) // ignore_convention
|
||||
{
|
||||
const char **argv = const_cast<const char **>(argv_);
|
||||
#else
|
||||
int main(int argc, const char **argv) // ignore_convention
|
||||
#endif
|
||||
{
|
||||
#endif
|
||||
#if defined(CONF_FAMILY_WINDOWS)
|
||||
for(int i = 1; i < argc; i++) // ignore_convention
|
||||
{
|
||||
|
@ -2270,7 +2298,7 @@ int main(int argc, const char **argv) // ignore_convention
|
|||
// create the components
|
||||
IEngine *pEngine = CreateEngine("Teeworlds");
|
||||
IConsole *pConsole = CreateConsole(CFGFLAG_CLIENT);
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", argc, argv); // ignore_convention
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_CLIENT, argc, argv); // ignore_convention
|
||||
IConfig *pConfig = CreateConfig();
|
||||
IEngineSound *pEngineSound = CreateEngineSound();
|
||||
IEngineInput *pEngineInput = CreateEngineInput();
|
||||
|
|
|
@ -289,6 +289,7 @@ public:
|
|||
static void Con_Play(IConsole::IResult *pResult, void *pUserData);
|
||||
static void Con_Record(IConsole::IResult *pResult, void *pUserData);
|
||||
static void Con_StopRecord(IConsole::IResult *pResult, void *pUserData);
|
||||
static void Con_AddDemoMarker(IConsole::IResult *pResult, void *pUserData);
|
||||
static void ConchainServerBrowserUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
|
||||
|
||||
void RegisterCommands();
|
||||
|
@ -297,6 +298,7 @@ public:
|
|||
void DemoRecorder_Start(const char *pFilename, bool WithTimestamp);
|
||||
void DemoRecorder_HandleAutoStart();
|
||||
void DemoRecorder_Stop();
|
||||
void DemoRecorder_AddDemoMarker();
|
||||
|
||||
void AutoScreenshot_Start();
|
||||
void AutoScreenshot_Cleanup();
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <base/detect.h>
|
||||
#include <base/math.h>
|
||||
#include <base/tl/threading.h>
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_opengl.h"
|
||||
|
@ -197,6 +198,18 @@ void CGraphics_OpenGL::BlendAdditive()
|
|||
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
|
||||
}
|
||||
|
||||
void CGraphics_OpenGL::WrapNormal()
|
||||
{
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
}
|
||||
|
||||
void CGraphics_OpenGL::WrapClamp()
|
||||
{
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
}
|
||||
|
||||
int CGraphics_OpenGL::MemoryUsage() const
|
||||
{
|
||||
return m_TextureMemoryUsage;
|
||||
|
@ -752,7 +765,7 @@ int CGraphics_SDL::TryInit()
|
|||
m_ScreenHeight = g_Config.m_GfxScreenHeight;
|
||||
|
||||
const SDL_VideoInfo *pInfo = SDL_GetVideoInfo();
|
||||
SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE);
|
||||
SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE); // prevent stuck mouse cursor sdl-bug when loosing fullscreen focus in windows
|
||||
|
||||
// set flags
|
||||
int Flags = SDL_OPENGL;
|
||||
|
|
|
@ -78,6 +78,9 @@ public:
|
|||
virtual void BlendNormal();
|
||||
virtual void BlendAdditive();
|
||||
|
||||
virtual void WrapNormal();
|
||||
virtual void WrapClamp();
|
||||
|
||||
virtual int MemoryUsage() const;
|
||||
|
||||
virtual void MapScreen(float TopLeftX, float TopLeftY, float BottomRightX, float BottomRightY);
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <base/detect.h>
|
||||
#include <base/math.h>
|
||||
#include <base/tl/threading.h>
|
||||
|
||||
#include <base/system.h>
|
||||
#include <engine/external/pnglite/pnglite.h>
|
||||
|
@ -154,6 +155,7 @@ CGraphics_Threaded::CGraphics_Threaded()
|
|||
m_State.m_ClipH = 0;
|
||||
m_State.m_Texture = -1;
|
||||
m_State.m_BlendMode = CCommandBuffer::BLEND_NONE;
|
||||
m_State.m_WrapMode = CCommandBuffer::WRAP_REPEAT;
|
||||
|
||||
m_CurrentCommandBuffer = 0;
|
||||
m_pCommandBuffer = 0x0;
|
||||
|
@ -214,6 +216,16 @@ void CGraphics_Threaded::BlendAdditive()
|
|||
m_State.m_BlendMode = CCommandBuffer::BLEND_ADDITIVE;
|
||||
}
|
||||
|
||||
void CGraphics_Threaded::WrapNormal()
|
||||
{
|
||||
m_State.m_WrapMode = CCommandBuffer::WRAP_REPEAT;
|
||||
}
|
||||
|
||||
void CGraphics_Threaded::WrapClamp()
|
||||
{
|
||||
m_State.m_WrapMode = CCommandBuffer::WRAP_CLAMP;
|
||||
}
|
||||
|
||||
int CGraphics_Threaded::MemoryUsage() const
|
||||
{
|
||||
return m_TextureMemoryUsage;
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
#pragma once
|
||||
|
||||
#include <base/tl/threading.h>
|
||||
|
||||
#include <engine/graphics.h>
|
||||
|
||||
class CCommandBuffer
|
||||
|
@ -120,6 +118,12 @@ public:
|
|||
BLEND_ADDITIVE,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WRAP_REPEAT = 0,
|
||||
WRAP_CLAMP,
|
||||
};
|
||||
|
||||
struct SPoint { float x, y, z; };
|
||||
struct STexCoord { float u, v; };
|
||||
struct SColor { float r, g, b, a; };
|
||||
|
@ -142,6 +146,7 @@ public:
|
|||
struct SState
|
||||
{
|
||||
int m_BlendMode;
|
||||
int m_WrapMode;
|
||||
int m_Texture;
|
||||
SPoint m_ScreenTL;
|
||||
SPoint m_ScreenBR;
|
||||
|
@ -382,6 +387,9 @@ public:
|
|||
virtual void BlendNormal();
|
||||
virtual void BlendAdditive();
|
||||
|
||||
virtual void WrapNormal();
|
||||
virtual void WrapClamp();
|
||||
|
||||
virtual int MemoryUsage() const;
|
||||
|
||||
virtual void MapScreen(float TopLeftX, float TopLeftY, float BottomRightX, float BottomRightY);
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
||||
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||
#include <base/math.h>
|
||||
#include <base/system.h>
|
||||
|
||||
#include <engine/graphics.h>
|
||||
#include <engine/storage.h>
|
||||
|
||||
#include <engine/shared/config.h>
|
||||
|
||||
#include "SDL.h"
|
||||
|
@ -19,8 +22,6 @@ enum
|
|||
NUM_SAMPLES = 512,
|
||||
NUM_VOICES = 64,
|
||||
NUM_CHANNELS = 16,
|
||||
|
||||
MAX_FRAMES = 1024
|
||||
};
|
||||
|
||||
struct CSample
|
||||
|
@ -63,7 +64,8 @@ static int m_MixingRate = 48000;
|
|||
static volatile int m_SoundVolume = 100;
|
||||
|
||||
static int m_NextVoice = 0;
|
||||
|
||||
static int *m_pMixBuffer = 0; // buffer only used by the thread callback function
|
||||
static unsigned m_MaxFrames = 0;
|
||||
|
||||
// TODO: there should be a faster way todo this
|
||||
static short Int2Short(int i)
|
||||
|
@ -84,8 +86,9 @@ static int IntAbs(int i)
|
|||
|
||||
static void Mix(short *pFinalOut, unsigned Frames)
|
||||
{
|
||||
int aMixBuffer[MAX_FRAMES*2] = {0};
|
||||
int MasterVol;
|
||||
mem_zero(m_pMixBuffer, m_MaxFrames*2*sizeof(int));
|
||||
Frames = min(Frames, m_MaxFrames);
|
||||
|
||||
// aquire lock while we are mixing
|
||||
lock_wait(m_SoundLock);
|
||||
|
@ -98,7 +101,7 @@ static void Mix(short *pFinalOut, unsigned Frames)
|
|||
{
|
||||
// mix voice
|
||||
CVoice *v = &m_aVoices[i];
|
||||
int *pOut = aMixBuffer;
|
||||
int *pOut = m_pMixBuffer;
|
||||
|
||||
int Step = v->m_pSample->m_Channels; // setup input sources
|
||||
short *pInL = &v->m_pSample->m_pData[v->m_Tick*Step];
|
||||
|
@ -176,8 +179,8 @@ static void Mix(short *pFinalOut, unsigned Frames)
|
|||
for(unsigned i = 0; i < Frames; i++)
|
||||
{
|
||||
int j = i<<1;
|
||||
int vl = ((aMixBuffer[j]*MasterVol)/101)>>8;
|
||||
int vr = ((aMixBuffer[j+1]*MasterVol)/101)>>8;
|
||||
int vl = ((m_pMixBuffer[j]*MasterVol)/101)>>8;
|
||||
int vr = ((m_pMixBuffer[j+1]*MasterVol)/101)>>8;
|
||||
|
||||
pFinalOut[j] = Int2Short(vl);
|
||||
pFinalOut[j+1] = Int2Short(vr);
|
||||
|
@ -234,6 +237,9 @@ int CSound::Init()
|
|||
else
|
||||
dbg_msg("client/sound", "sound init successful");
|
||||
|
||||
m_MaxFrames = g_Config.m_SndBufferSize*2;
|
||||
m_pMixBuffer = (int *)mem_alloc(m_MaxFrames*2*sizeof(int), 1);
|
||||
|
||||
SDL_PauseAudio(0);
|
||||
|
||||
m_SoundEnabled = 1;
|
||||
|
@ -264,6 +270,11 @@ int CSound::Shutdown()
|
|||
SDL_CloseAudio();
|
||||
SDL_QuitSubSystem(SDL_INIT_AUDIO);
|
||||
lock_destroy(m_SoundLock);
|
||||
if(m_pMixBuffer)
|
||||
{
|
||||
mem_free(m_pMixBuffer);
|
||||
m_pMixBuffer = 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,11 @@
|
|||
|
||||
#include "kernel.h"
|
||||
|
||||
enum
|
||||
{
|
||||
MAX_TIMELINE_MARKERS=64
|
||||
};
|
||||
|
||||
struct CDemoHeader
|
||||
{
|
||||
unsigned char m_aMarker[7];
|
||||
|
@ -16,6 +21,8 @@ struct CDemoHeader
|
|||
char m_aType[8];
|
||||
char m_aLength[4];
|
||||
char m_aTimestamp[20];
|
||||
char m_aNumTimelineMarkers[4];
|
||||
char m_aTimelineMarkers[MAX_TIMELINE_MARKERS][4];
|
||||
};
|
||||
|
||||
class IDemoPlayer : public IInterface
|
||||
|
@ -31,6 +38,9 @@ public:
|
|||
int m_FirstTick;
|
||||
int m_CurrentTick;
|
||||
int m_LastTick;
|
||||
|
||||
int m_NumTimelineMarkers;
|
||||
int m_aTimelineMarkers[MAX_TIMELINE_MARKERS];
|
||||
};
|
||||
|
||||
enum
|
||||
|
@ -42,7 +52,7 @@ public:
|
|||
|
||||
~IDemoPlayer() {}
|
||||
virtual void SetSpeed(float Speed) = 0;
|
||||
virtual int SetPos(float Precent) = 0;
|
||||
virtual int SetPos(float Percent) = 0;
|
||||
virtual void Pause() = 0;
|
||||
virtual void Unpause() = 0;
|
||||
virtual const CInfo *BaseInfo() const = 0;
|
||||
|
|
25
src/engine/external/zlib/gzclose.c
vendored
25
src/engine/external/zlib/gzclose.c
vendored
|
@ -1,25 +0,0 @@
|
|||
/* gzclose.c -- zlib gzclose() function
|
||||
* Copyright (C) 2004, 2010 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
#include "gzguts.h"
|
||||
|
||||
/* gzclose() is in a separate file so that it is linked in only if it is used.
|
||||
That way the other gzclose functions can be used instead to avoid linking in
|
||||
unneeded compression or decompression routines. */
|
||||
int ZEXPORT gzclose(file)
|
||||
gzFile file;
|
||||
{
|
||||
#ifndef NO_GZCOMPRESS
|
||||
gz_statep state;
|
||||
|
||||
if (file == NULL)
|
||||
return Z_STREAM_ERROR;
|
||||
state = (gz_statep)file;
|
||||
|
||||
return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
|
||||
#else
|
||||
return gzclose_r(file);
|
||||
#endif
|
||||
}
|
132
src/engine/external/zlib/gzguts.h
vendored
132
src/engine/external/zlib/gzguts.h
vendored
|
@ -1,132 +0,0 @@
|
|||
/* gzguts.h -- zlib internal header definitions for gz* operations
|
||||
* Copyright (C) 2004, 2005, 2010 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
#ifdef _LARGEFILE64_SOURCE
|
||||
# ifndef _LARGEFILE_SOURCE
|
||||
# define _LARGEFILE_SOURCE 1
|
||||
# endif
|
||||
# ifdef _FILE_OFFSET_BITS
|
||||
# undef _FILE_OFFSET_BITS
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if ((__GNUC__-0) * 10 + __GNUC_MINOR__-0 >= 33) && !defined(NO_VIZ)
|
||||
# define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
|
||||
#else
|
||||
# define ZLIB_INTERNAL
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include "zlib.h"
|
||||
#ifdef STDC
|
||||
# include <string.h>
|
||||
# include <stdlib.h>
|
||||
# include <limits.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
|
||||
#ifdef NO_DEFLATE /* for compatibility with old definition */
|
||||
# define NO_GZCOMPRESS
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# include <io.h>
|
||||
# define vsnprintf _vsnprintf
|
||||
#endif
|
||||
|
||||
#ifndef local
|
||||
# define local static
|
||||
#endif
|
||||
/* compile with -Dlocal if your debugger can't find static symbols */
|
||||
|
||||
/* gz* functions always use library allocation functions */
|
||||
#ifndef STDC
|
||||
extern voidp malloc OF((uInt size));
|
||||
extern void free OF((voidpf ptr));
|
||||
#endif
|
||||
|
||||
/* get errno and strerror definition */
|
||||
#if defined UNDER_CE
|
||||
# include <windows.h>
|
||||
# define zstrerror() gz_strwinerror((DWORD)GetLastError())
|
||||
#else
|
||||
# ifdef STDC
|
||||
# include <errno.h>
|
||||
# define zstrerror() strerror(errno)
|
||||
# else
|
||||
# define zstrerror() "stdio error (consult errno)"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* provide prototypes for these when building zlib without LFS */
|
||||
#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0
|
||||
ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
|
||||
ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
|
||||
ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
|
||||
ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
|
||||
#endif
|
||||
|
||||
/* default i/o buffer size -- double this for output when reading */
|
||||
#define GZBUFSIZE 8192
|
||||
|
||||
/* gzip modes, also provide a little integrity check on the passed structure */
|
||||
#define GZ_NONE 0
|
||||
#define GZ_READ 7247
|
||||
#define GZ_WRITE 31153
|
||||
#define GZ_APPEND 1 /* mode set to GZ_WRITE after the file is opened */
|
||||
|
||||
/* values for gz_state how */
|
||||
#define LOOK 0 /* look for a gzip header */
|
||||
#define COPY 1 /* copy input directly */
|
||||
#define GZIP 2 /* decompress a gzip stream */
|
||||
|
||||
/* internal gzip file state data structure */
|
||||
typedef struct {
|
||||
/* used for both reading and writing */
|
||||
int mode; /* see gzip modes above */
|
||||
int fd; /* file descriptor */
|
||||
char *path; /* path or fd for error messages */
|
||||
z_off64_t pos; /* current position in uncompressed data */
|
||||
unsigned size; /* buffer size, zero if not allocated yet */
|
||||
unsigned want; /* requested buffer size, default is GZBUFSIZE */
|
||||
unsigned char *in; /* input buffer */
|
||||
unsigned char *out; /* output buffer (double-sized when reading) */
|
||||
unsigned char *next; /* next output data to deliver or write */
|
||||
/* just for reading */
|
||||
unsigned have; /* amount of output data unused at next */
|
||||
int eof; /* true if end of input file reached */
|
||||
z_off64_t start; /* where the gzip data started, for rewinding */
|
||||
z_off64_t raw; /* where the raw data started, for seeking */
|
||||
int how; /* 0: get header, 1: copy, 2: decompress */
|
||||
int direct; /* true if last read direct, false if gzip */
|
||||
/* just for writing */
|
||||
int level; /* compression level */
|
||||
int strategy; /* compression strategy */
|
||||
/* seek request */
|
||||
z_off64_t skip; /* amount to skip (already rewound if backwards) */
|
||||
int seek; /* true if seek request pending */
|
||||
/* error information */
|
||||
int err; /* error code */
|
||||
char *msg; /* error message */
|
||||
/* zlib inflate or deflate stream */
|
||||
z_stream strm; /* stream structure in-place (not a pointer) */
|
||||
} gz_state;
|
||||
typedef gz_state FAR *gz_statep;
|
||||
|
||||
/* shared functions */
|
||||
void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *));
|
||||
#if defined UNDER_CE
|
||||
char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error));
|
||||
#endif
|
||||
|
||||
/* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
|
||||
value -- needed when comparing unsigned to z_off64_t, which is signed
|
||||
(possible z_off64_t types off_t, off64_t, and long are all signed) */
|
||||
#ifdef INT_MAX
|
||||
# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX)
|
||||
#else
|
||||
unsigned ZLIB_INTERNAL gz_intmax OF((void));
|
||||
# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax())
|
||||
#endif
|
537
src/engine/external/zlib/gzlib.c
vendored
537
src/engine/external/zlib/gzlib.c
vendored
|
@ -1,537 +0,0 @@
|
|||
/* gzlib.c -- zlib functions common to reading and writing gzip files
|
||||
* Copyright (C) 2004, 2010 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
#include "gzguts.h"
|
||||
|
||||
#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
|
||||
# define LSEEK lseek64
|
||||
#else
|
||||
# define LSEEK lseek
|
||||
#endif
|
||||
|
||||
/* Local functions */
|
||||
local void gz_reset OF((gz_statep));
|
||||
local gzFile gz_open OF((const char *, int, const char *));
|
||||
|
||||
#if defined UNDER_CE
|
||||
|
||||
/* Map the Windows error number in ERROR to a locale-dependent error message
|
||||
string and return a pointer to it. Typically, the values for ERROR come
|
||||
from GetLastError.
|
||||
|
||||
The string pointed to shall not be modified by the application, but may be
|
||||
overwritten by a subsequent call to gz_strwinerror
|
||||
|
||||
The gz_strwinerror function does not change the current setting of
|
||||
GetLastError. */
|
||||
char ZLIB_INTERNAL *gz_strwinerror (error)
|
||||
DWORD error;
|
||||
{
|
||||
static char buf[1024];
|
||||
|
||||
wchar_t *msgbuf;
|
||||
DWORD lasterr = GetLastError();
|
||||
DWORD chars = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM
|
||||
| FORMAT_MESSAGE_ALLOCATE_BUFFER,
|
||||
NULL,
|
||||
error,
|
||||
0, /* Default language */
|
||||
(LPVOID)&msgbuf,
|
||||
0,
|
||||
NULL);
|
||||
if (chars != 0) {
|
||||
/* If there is an \r\n appended, zap it. */
|
||||
if (chars >= 2
|
||||
&& msgbuf[chars - 2] == '\r' && msgbuf[chars - 1] == '\n') {
|
||||
chars -= 2;
|
||||
msgbuf[chars] = 0;
|
||||
}
|
||||
|
||||
if (chars > sizeof (buf) - 1) {
|
||||
chars = sizeof (buf) - 1;
|
||||
msgbuf[chars] = 0;
|
||||
}
|
||||
|
||||
wcstombs(buf, msgbuf, chars + 1);
|
||||
LocalFree(msgbuf);
|
||||
}
|
||||
else {
|
||||
sprintf(buf, "unknown win32 error (%ld)", error);
|
||||
}
|
||||
|
||||
SetLastError(lasterr);
|
||||
return buf;
|
||||
}
|
||||
|
||||
#endif /* UNDER_CE */
|
||||
|
||||
/* Reset gzip file state */
|
||||
local void gz_reset(state)
|
||||
gz_statep state;
|
||||
{
|
||||
if (state->mode == GZ_READ) { /* for reading ... */
|
||||
state->have = 0; /* no output data available */
|
||||
state->eof = 0; /* not at end of file */
|
||||
state->how = LOOK; /* look for gzip header */
|
||||
state->direct = 1; /* default for empty file */
|
||||
}
|
||||
state->seek = 0; /* no seek request pending */
|
||||
gz_error(state, Z_OK, NULL); /* clear error */
|
||||
state->pos = 0; /* no uncompressed data yet */
|
||||
state->strm.avail_in = 0; /* no input data yet */
|
||||
}
|
||||
|
||||
/* Open a gzip file either by name or file descriptor. */
|
||||
local gzFile gz_open(path, fd, mode)
|
||||
const char *path;
|
||||
int fd;
|
||||
const char *mode;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* allocate gzFile structure to return */
|
||||
state = malloc(sizeof(gz_state));
|
||||
if (state == NULL)
|
||||
return NULL;
|
||||
state->size = 0; /* no buffers allocated yet */
|
||||
state->want = GZBUFSIZE; /* requested buffer size */
|
||||
state->msg = NULL; /* no error message yet */
|
||||
|
||||
/* interpret mode */
|
||||
state->mode = GZ_NONE;
|
||||
state->level = Z_DEFAULT_COMPRESSION;
|
||||
state->strategy = Z_DEFAULT_STRATEGY;
|
||||
while (*mode) {
|
||||
if (*mode >= '0' && *mode <= '9')
|
||||
state->level = *mode - '0';
|
||||
else
|
||||
switch (*mode) {
|
||||
case 'r':
|
||||
state->mode = GZ_READ;
|
||||
break;
|
||||
#ifndef NO_GZCOMPRESS
|
||||
case 'w':
|
||||
state->mode = GZ_WRITE;
|
||||
break;
|
||||
case 'a':
|
||||
state->mode = GZ_APPEND;
|
||||
break;
|
||||
#endif
|
||||
case '+': /* can't read and write at the same time */
|
||||
free(state);
|
||||
return NULL;
|
||||
case 'b': /* ignore -- will request binary anyway */
|
||||
break;
|
||||
case 'f':
|
||||
state->strategy = Z_FILTERED;
|
||||
break;
|
||||
case 'h':
|
||||
state->strategy = Z_HUFFMAN_ONLY;
|
||||
break;
|
||||
case 'R':
|
||||
state->strategy = Z_RLE;
|
||||
break;
|
||||
case 'F':
|
||||
state->strategy = Z_FIXED;
|
||||
default: /* could consider as an error, but just ignore */
|
||||
;
|
||||
}
|
||||
mode++;
|
||||
}
|
||||
|
||||
/* must provide an "r", "w", or "a" */
|
||||
if (state->mode == GZ_NONE) {
|
||||
free(state);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* save the path name for error messages */
|
||||
state->path = malloc(strlen(path) + 1);
|
||||
if (state->path == NULL) {
|
||||
free(state);
|
||||
return NULL;
|
||||
}
|
||||
strcpy(state->path, path);
|
||||
|
||||
/* open the file with the appropriate mode (or just use fd) */
|
||||
state->fd = fd != -1 ? fd :
|
||||
open(path,
|
||||
#ifdef O_LARGEFILE
|
||||
O_LARGEFILE |
|
||||
#endif
|
||||
#ifdef O_BINARY
|
||||
O_BINARY |
|
||||
#endif
|
||||
(state->mode == GZ_READ ?
|
||||
O_RDONLY :
|
||||
(O_WRONLY | O_CREAT | (
|
||||
state->mode == GZ_WRITE ?
|
||||
O_TRUNC :
|
||||
O_APPEND))),
|
||||
0666);
|
||||
if (state->fd == -1) {
|
||||
free(state->path);
|
||||
free(state);
|
||||
return NULL;
|
||||
}
|
||||
if (state->mode == GZ_APPEND)
|
||||
state->mode = GZ_WRITE; /* simplify later checks */
|
||||
|
||||
/* save the current position for rewinding (only if reading) */
|
||||
if (state->mode == GZ_READ) {
|
||||
state->start = LSEEK(state->fd, 0, SEEK_CUR);
|
||||
if (state->start == -1) state->start = 0;
|
||||
}
|
||||
|
||||
/* initialize stream */
|
||||
gz_reset(state);
|
||||
|
||||
/* return stream */
|
||||
return (gzFile)state;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
gzFile ZEXPORT gzopen(path, mode)
|
||||
const char *path;
|
||||
const char *mode;
|
||||
{
|
||||
return gz_open(path, -1, mode);
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
gzFile ZEXPORT gzopen64(path, mode)
|
||||
const char *path;
|
||||
const char *mode;
|
||||
{
|
||||
return gz_open(path, -1, mode);
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
gzFile ZEXPORT gzdopen(fd, mode)
|
||||
int fd;
|
||||
const char *mode;
|
||||
{
|
||||
char *path; /* identifier for error messages */
|
||||
gzFile gz;
|
||||
|
||||
if (fd == -1 || (path = malloc(7 + 3 * sizeof(int))) == NULL)
|
||||
return NULL;
|
||||
sprintf(path, "<fd:%d>", fd); /* for debugging */
|
||||
gz = gz_open(path, fd, mode);
|
||||
free(path);
|
||||
return gz;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzbuffer(file, size)
|
||||
gzFile file;
|
||||
unsigned size;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure and check integrity */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
if (state->mode != GZ_READ && state->mode != GZ_WRITE)
|
||||
return -1;
|
||||
|
||||
/* make sure we haven't already allocated memory */
|
||||
if (state->size != 0)
|
||||
return -1;
|
||||
|
||||
/* check and set requested size */
|
||||
if (size == 0)
|
||||
return -1;
|
||||
state->want = size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzrewind(file)
|
||||
gzFile file;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
|
||||
/* check that we're reading and that there's no error */
|
||||
if (state->mode != GZ_READ || state->err != Z_OK)
|
||||
return -1;
|
||||
|
||||
/* back up and start over */
|
||||
if (LSEEK(state->fd, state->start, SEEK_SET) == -1)
|
||||
return -1;
|
||||
gz_reset(state);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
z_off64_t ZEXPORT gzseek64(file, offset, whence)
|
||||
gzFile file;
|
||||
z_off64_t offset;
|
||||
int whence;
|
||||
{
|
||||
unsigned n;
|
||||
z_off64_t ret;
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure and check integrity */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
if (state->mode != GZ_READ && state->mode != GZ_WRITE)
|
||||
return -1;
|
||||
|
||||
/* check that there's no error */
|
||||
if (state->err != Z_OK)
|
||||
return -1;
|
||||
|
||||
/* can only seek from start or relative to current position */
|
||||
if (whence != SEEK_SET && whence != SEEK_CUR)
|
||||
return -1;
|
||||
|
||||
/* normalize offset to a SEEK_CUR specification */
|
||||
if (whence == SEEK_SET)
|
||||
offset -= state->pos;
|
||||
else if (state->seek)
|
||||
offset += state->skip;
|
||||
state->seek = 0;
|
||||
|
||||
/* if within raw area while reading, just go there */
|
||||
if (state->mode == GZ_READ && state->how == COPY &&
|
||||
state->pos + offset >= state->raw) {
|
||||
ret = LSEEK(state->fd, offset - state->have, SEEK_CUR);
|
||||
if (ret == -1)
|
||||
return -1;
|
||||
state->have = 0;
|
||||
state->eof = 0;
|
||||
state->seek = 0;
|
||||
gz_error(state, Z_OK, NULL);
|
||||
state->strm.avail_in = 0;
|
||||
state->pos += offset;
|
||||
return state->pos;
|
||||
}
|
||||
|
||||
/* calculate skip amount, rewinding if needed for back seek when reading */
|
||||
if (offset < 0) {
|
||||
if (state->mode != GZ_READ) /* writing -- can't go backwards */
|
||||
return -1;
|
||||
offset += state->pos;
|
||||
if (offset < 0) /* before start of file! */
|
||||
return -1;
|
||||
if (gzrewind(file) == -1) /* rewind, then skip to offset */
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* if reading, skip what's in output buffer (one less gzgetc() check) */
|
||||
if (state->mode == GZ_READ) {
|
||||
n = GT_OFF(state->have) || (z_off64_t)state->have > offset ?
|
||||
(unsigned)offset : state->have;
|
||||
state->have -= n;
|
||||
state->next += n;
|
||||
state->pos += n;
|
||||
offset -= n;
|
||||
}
|
||||
|
||||
/* request skip (if not zero) */
|
||||
if (offset) {
|
||||
state->seek = 1;
|
||||
state->skip = offset;
|
||||
}
|
||||
return state->pos + offset;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
z_off_t ZEXPORT gzseek(file, offset, whence)
|
||||
gzFile file;
|
||||
z_off_t offset;
|
||||
int whence;
|
||||
{
|
||||
z_off64_t ret;
|
||||
|
||||
ret = gzseek64(file, (z_off64_t)offset, whence);
|
||||
return ret == (z_off_t)ret ? (z_off_t)ret : -1;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
z_off64_t ZEXPORT gztell64(file)
|
||||
gzFile file;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure and check integrity */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
if (state->mode != GZ_READ && state->mode != GZ_WRITE)
|
||||
return -1;
|
||||
|
||||
/* return position */
|
||||
return state->pos + (state->seek ? state->skip : 0);
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
z_off_t ZEXPORT gztell(file)
|
||||
gzFile file;
|
||||
{
|
||||
z_off64_t ret;
|
||||
|
||||
ret = gztell64(file);
|
||||
return ret == (z_off_t)ret ? (z_off_t)ret : -1;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
z_off64_t ZEXPORT gzoffset64(file)
|
||||
gzFile file;
|
||||
{
|
||||
z_off64_t offset;
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure and check integrity */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
if (state->mode != GZ_READ && state->mode != GZ_WRITE)
|
||||
return -1;
|
||||
|
||||
/* compute and return effective offset in file */
|
||||
offset = LSEEK(state->fd, 0, SEEK_CUR);
|
||||
if (offset == -1)
|
||||
return -1;
|
||||
if (state->mode == GZ_READ) /* reading */
|
||||
offset -= state->strm.avail_in; /* don't count buffered input */
|
||||
return offset;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
z_off_t ZEXPORT gzoffset(file)
|
||||
gzFile file;
|
||||
{
|
||||
z_off64_t ret;
|
||||
|
||||
ret = gzoffset64(file);
|
||||
return ret == (z_off_t)ret ? (z_off_t)ret : -1;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzeof(file)
|
||||
gzFile file;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure and check integrity */
|
||||
if (file == NULL)
|
||||
return 0;
|
||||
state = (gz_statep)file;
|
||||
if (state->mode != GZ_READ && state->mode != GZ_WRITE)
|
||||
return 0;
|
||||
|
||||
/* return end-of-file state */
|
||||
return state->mode == GZ_READ ?
|
||||
(state->eof && state->strm.avail_in == 0 && state->have == 0) : 0;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
const char * ZEXPORT gzerror(file, errnum)
|
||||
gzFile file;
|
||||
int *errnum;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure and check integrity */
|
||||
if (file == NULL)
|
||||
return NULL;
|
||||
state = (gz_statep)file;
|
||||
if (state->mode != GZ_READ && state->mode != GZ_WRITE)
|
||||
return NULL;
|
||||
|
||||
/* return error information */
|
||||
if (errnum != NULL)
|
||||
*errnum = state->err;
|
||||
return state->msg == NULL ? "" : state->msg;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
void ZEXPORT gzclearerr(file)
|
||||
gzFile file;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure and check integrity */
|
||||
if (file == NULL)
|
||||
return;
|
||||
state = (gz_statep)file;
|
||||
if (state->mode != GZ_READ && state->mode != GZ_WRITE)
|
||||
return;
|
||||
|
||||
/* clear error and end-of-file */
|
||||
if (state->mode == GZ_READ)
|
||||
state->eof = 0;
|
||||
gz_error(state, Z_OK, NULL);
|
||||
}
|
||||
|
||||
/* Create an error message in allocated memory and set state->err and
|
||||
state->msg accordingly. Free any previous error message already there. Do
|
||||
not try to free or allocate space if the error is Z_MEM_ERROR (out of
|
||||
memory). Simply save the error message as a static string. If there is an
|
||||
allocation failure constructing the error message, then convert the error to
|
||||
out of memory. */
|
||||
void ZLIB_INTERNAL gz_error(state, err, msg)
|
||||
gz_statep state;
|
||||
int err;
|
||||
const char *msg;
|
||||
{
|
||||
/* free previously allocated message and clear */
|
||||
if (state->msg != NULL) {
|
||||
if (state->err != Z_MEM_ERROR)
|
||||
free(state->msg);
|
||||
state->msg = NULL;
|
||||
}
|
||||
|
||||
/* set error code, and if no message, then done */
|
||||
state->err = err;
|
||||
if (msg == NULL)
|
||||
return;
|
||||
|
||||
/* for an out of memory error, save as static string */
|
||||
if (err == Z_MEM_ERROR) {
|
||||
state->msg = (char *)msg;
|
||||
return;
|
||||
}
|
||||
|
||||
/* construct error message with path */
|
||||
if ((state->msg = malloc(strlen(state->path) + strlen(msg) + 3)) == NULL) {
|
||||
state->err = Z_MEM_ERROR;
|
||||
state->msg = (char *)"out of memory";
|
||||
return;
|
||||
}
|
||||
strcpy(state->msg, state->path);
|
||||
strcat(state->msg, ": ");
|
||||
strcat(state->msg, msg);
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef INT_MAX
|
||||
/* portably return maximum value for an int (when limits.h presumed not
|
||||
available) -- we need to do this to cover cases where 2's complement not
|
||||
used, since C standard permits 1's complement and sign-bit representations,
|
||||
otherwise we could just use ((unsigned)-1) >> 1 */
|
||||
unsigned ZLIB_INTERNAL gz_intmax()
|
||||
{
|
||||
unsigned p, q;
|
||||
|
||||
p = 1;
|
||||
do {
|
||||
q = p;
|
||||
p <<= 1;
|
||||
p++;
|
||||
} while (p > q);
|
||||
return q >> 1;
|
||||
}
|
||||
#endif
|
653
src/engine/external/zlib/gzread.c
vendored
653
src/engine/external/zlib/gzread.c
vendored
|
@ -1,653 +0,0 @@
|
|||
/* gzread.c -- zlib functions for reading gzip files
|
||||
* Copyright (C) 2004, 2005, 2010 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
#include "gzguts.h"
|
||||
|
||||
/* Local functions */
|
||||
local int gz_load OF((gz_statep, unsigned char *, unsigned, unsigned *));
|
||||
local int gz_avail OF((gz_statep));
|
||||
local int gz_next4 OF((gz_statep, unsigned long *));
|
||||
local int gz_head OF((gz_statep));
|
||||
local int gz_decomp OF((gz_statep));
|
||||
local int gz_make OF((gz_statep));
|
||||
local int gz_skip OF((gz_statep, z_off64_t));
|
||||
|
||||
/* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
|
||||
state->fd, and update state->eof, state->err, and state->msg as appropriate.
|
||||
This function needs to loop on read(), since read() is not guaranteed to
|
||||
read the number of bytes requested, depending on the type of descriptor. */
|
||||
local int gz_load(state, buf, len, have)
|
||||
gz_statep state;
|
||||
unsigned char *buf;
|
||||
unsigned len;
|
||||
unsigned *have;
|
||||
{
|
||||
int ret;
|
||||
|
||||
*have = 0;
|
||||
do {
|
||||
ret = read(state->fd, buf + *have, len - *have);
|
||||
if (ret <= 0)
|
||||
break;
|
||||
*have += ret;
|
||||
} while (*have < len);
|
||||
if (ret < 0) {
|
||||
gz_error(state, Z_ERRNO, zstrerror());
|
||||
return -1;
|
||||
}
|
||||
if (ret == 0)
|
||||
state->eof = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Load up input buffer and set eof flag if last data loaded -- return -1 on
|
||||
error, 0 otherwise. Note that the eof flag is set when the end of the input
|
||||
file is reached, even though there may be unused data in the buffer. Once
|
||||
that data has been used, no more attempts will be made to read the file.
|
||||
gz_avail() assumes that strm->avail_in == 0. */
|
||||
local int gz_avail(state)
|
||||
gz_statep state;
|
||||
{
|
||||
z_streamp strm = &(state->strm);
|
||||
|
||||
if (state->err != Z_OK)
|
||||
return -1;
|
||||
if (state->eof == 0) {
|
||||
if (gz_load(state, state->in, state->size,
|
||||
(unsigned *)&(strm->avail_in)) == -1)
|
||||
return -1;
|
||||
strm->next_in = state->in;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Get next byte from input, or -1 if end or error. */
|
||||
#define NEXT() ((strm->avail_in == 0 && gz_avail(state) == -1) ? -1 : \
|
||||
(strm->avail_in == 0 ? -1 : \
|
||||
(strm->avail_in--, *(strm->next_in)++)))
|
||||
|
||||
/* Get a four-byte little-endian integer and return 0 on success and the value
|
||||
in *ret. Otherwise -1 is returned and *ret is not modified. */
|
||||
local int gz_next4(state, ret)
|
||||
gz_statep state;
|
||||
unsigned long *ret;
|
||||
{
|
||||
int ch;
|
||||
unsigned long val;
|
||||
z_streamp strm = &(state->strm);
|
||||
|
||||
val = NEXT();
|
||||
val += (unsigned)NEXT() << 8;
|
||||
val += (unsigned long)NEXT() << 16;
|
||||
ch = NEXT();
|
||||
if (ch == -1)
|
||||
return -1;
|
||||
val += (unsigned long)ch << 24;
|
||||
*ret = val;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Look for gzip header, set up for inflate or copy. state->have must be zero.
|
||||
If this is the first time in, allocate required memory. state->how will be
|
||||
left unchanged if there is no more input data available, will be set to COPY
|
||||
if there is no gzip header and direct copying will be performed, or it will
|
||||
be set to GZIP for decompression, and the gzip header will be skipped so
|
||||
that the next available input data is the raw deflate stream. If direct
|
||||
copying, then leftover input data from the input buffer will be copied to
|
||||
the output buffer. In that case, all further file reads will be directly to
|
||||
either the output buffer or a user buffer. If decompressing, the inflate
|
||||
state and the check value will be initialized. gz_head() will return 0 on
|
||||
success or -1 on failure. Failures may include read errors or gzip header
|
||||
errors. */
|
||||
local int gz_head(state)
|
||||
gz_statep state;
|
||||
{
|
||||
z_streamp strm = &(state->strm);
|
||||
int flags;
|
||||
unsigned len;
|
||||
|
||||
/* allocate read buffers and inflate memory */
|
||||
if (state->size == 0) {
|
||||
/* allocate buffers */
|
||||
state->in = malloc(state->want);
|
||||
state->out = malloc(state->want << 1);
|
||||
if (state->in == NULL || state->out == NULL) {
|
||||
if (state->out != NULL)
|
||||
free(state->out);
|
||||
if (state->in != NULL)
|
||||
free(state->in);
|
||||
gz_error(state, Z_MEM_ERROR, "out of memory");
|
||||
return -1;
|
||||
}
|
||||
state->size = state->want;
|
||||
|
||||
/* allocate inflate memory */
|
||||
state->strm.zalloc = Z_NULL;
|
||||
state->strm.zfree = Z_NULL;
|
||||
state->strm.opaque = Z_NULL;
|
||||
state->strm.avail_in = 0;
|
||||
state->strm.next_in = Z_NULL;
|
||||
if (inflateInit2(&(state->strm), -15) != Z_OK) { /* raw inflate */
|
||||
free(state->out);
|
||||
free(state->in);
|
||||
state->size = 0;
|
||||
gz_error(state, Z_MEM_ERROR, "out of memory");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* get some data in the input buffer */
|
||||
if (strm->avail_in == 0) {
|
||||
if (gz_avail(state) == -1)
|
||||
return -1;
|
||||
if (strm->avail_in == 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* look for the gzip magic header bytes 31 and 139 */
|
||||
if (strm->next_in[0] == 31) {
|
||||
strm->avail_in--;
|
||||
strm->next_in++;
|
||||
if (strm->avail_in == 0 && gz_avail(state) == -1)
|
||||
return -1;
|
||||
if (strm->avail_in && strm->next_in[0] == 139) {
|
||||
/* we have a gzip header, woo hoo! */
|
||||
strm->avail_in--;
|
||||
strm->next_in++;
|
||||
|
||||
/* skip rest of header */
|
||||
if (NEXT() != 8) { /* compression method */
|
||||
gz_error(state, Z_DATA_ERROR, "unknown compression method");
|
||||
return -1;
|
||||
}
|
||||
flags = NEXT();
|
||||
if (flags & 0xe0) { /* reserved flag bits */
|
||||
gz_error(state, Z_DATA_ERROR, "unknown header flags set");
|
||||
return -1;
|
||||
}
|
||||
NEXT(); /* modification time */
|
||||
NEXT();
|
||||
NEXT();
|
||||
NEXT();
|
||||
NEXT(); /* extra flags */
|
||||
NEXT(); /* operating system */
|
||||
if (flags & 4) { /* extra field */
|
||||
len = (unsigned)NEXT();
|
||||
len += (unsigned)NEXT() << 8;
|
||||
while (len--)
|
||||
if (NEXT() < 0)
|
||||
break;
|
||||
}
|
||||
if (flags & 8) /* file name */
|
||||
while (NEXT() > 0)
|
||||
;
|
||||
if (flags & 16) /* comment */
|
||||
while (NEXT() > 0)
|
||||
;
|
||||
if (flags & 2) { /* header crc */
|
||||
NEXT();
|
||||
NEXT();
|
||||
}
|
||||
/* an unexpected end of file is not checked for here -- it will be
|
||||
noticed on the first request for uncompressed data */
|
||||
|
||||
/* set up for decompression */
|
||||
inflateReset(strm);
|
||||
strm->adler = crc32(0L, Z_NULL, 0);
|
||||
state->how = GZIP;
|
||||
state->direct = 0;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
/* not a gzip file -- save first byte (31) and fall to raw i/o */
|
||||
state->out[0] = 31;
|
||||
state->have = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* doing raw i/o, save start of raw data for seeking, copy any leftover
|
||||
input to output -- this assumes that the output buffer is larger than
|
||||
the input buffer, which also assures space for gzungetc() */
|
||||
state->raw = state->pos;
|
||||
state->next = state->out;
|
||||
if (strm->avail_in) {
|
||||
memcpy(state->next + state->have, strm->next_in, strm->avail_in);
|
||||
state->have += strm->avail_in;
|
||||
strm->avail_in = 0;
|
||||
}
|
||||
state->how = COPY;
|
||||
state->direct = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Decompress from input to the provided next_out and avail_out in the state.
|
||||
If the end of the compressed data is reached, then verify the gzip trailer
|
||||
check value and length (modulo 2^32). state->have and state->next are set
|
||||
to point to the just decompressed data, and the crc is updated. If the
|
||||
trailer is verified, state->how is reset to LOOK to look for the next gzip
|
||||
stream or raw data, once state->have is depleted. Returns 0 on success, -1
|
||||
on failure. Failures may include invalid compressed data or a failed gzip
|
||||
trailer verification. */
|
||||
local int gz_decomp(state)
|
||||
gz_statep state;
|
||||
{
|
||||
int ret;
|
||||
unsigned had;
|
||||
unsigned long crc, len;
|
||||
z_streamp strm = &(state->strm);
|
||||
|
||||
/* fill output buffer up to end of deflate stream */
|
||||
had = strm->avail_out;
|
||||
do {
|
||||
/* get more input for inflate() */
|
||||
if (strm->avail_in == 0 && gz_avail(state) == -1)
|
||||
return -1;
|
||||
if (strm->avail_in == 0) {
|
||||
gz_error(state, Z_DATA_ERROR, "unexpected end of file");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* decompress and handle errors */
|
||||
ret = inflate(strm, Z_NO_FLUSH);
|
||||
if (ret == Z_STREAM_ERROR || ret == Z_NEED_DICT) {
|
||||
gz_error(state, Z_STREAM_ERROR,
|
||||
"internal error: inflate stream corrupt");
|
||||
return -1;
|
||||
}
|
||||
if (ret == Z_MEM_ERROR) {
|
||||
gz_error(state, Z_MEM_ERROR, "out of memory");
|
||||
return -1;
|
||||
}
|
||||
if (ret == Z_DATA_ERROR) { /* deflate stream invalid */
|
||||
gz_error(state, Z_DATA_ERROR,
|
||||
strm->msg == NULL ? "compressed data error" : strm->msg);
|
||||
return -1;
|
||||
}
|
||||
} while (strm->avail_out && ret != Z_STREAM_END);
|
||||
|
||||
/* update available output and crc check value */
|
||||
state->have = had - strm->avail_out;
|
||||
state->next = strm->next_out - state->have;
|
||||
strm->adler = crc32(strm->adler, state->next, state->have);
|
||||
|
||||
/* check gzip trailer if at end of deflate stream */
|
||||
if (ret == Z_STREAM_END) {
|
||||
if (gz_next4(state, &crc) == -1 || gz_next4(state, &len) == -1) {
|
||||
gz_error(state, Z_DATA_ERROR, "unexpected end of file");
|
||||
return -1;
|
||||
}
|
||||
if (crc != strm->adler) {
|
||||
gz_error(state, Z_DATA_ERROR, "incorrect data check");
|
||||
return -1;
|
||||
}
|
||||
if (len != (strm->total_out & 0xffffffffL)) {
|
||||
gz_error(state, Z_DATA_ERROR, "incorrect length check");
|
||||
return -1;
|
||||
}
|
||||
state->how = LOOK; /* ready for next stream, once have is 0 (leave
|
||||
state->direct unchanged to remember how) */
|
||||
}
|
||||
|
||||
/* good decompression */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Make data and put in the output buffer. Assumes that state->have == 0.
|
||||
Data is either copied from the input file or decompressed from the input
|
||||
file depending on state->how. If state->how is LOOK, then a gzip header is
|
||||
looked for (and skipped if found) to determine wither to copy or decompress.
|
||||
Returns -1 on error, otherwise 0. gz_make() will leave state->have as COPY
|
||||
or GZIP unless the end of the input file has been reached and all data has
|
||||
been processed. */
|
||||
local int gz_make(state)
|
||||
gz_statep state;
|
||||
{
|
||||
z_streamp strm = &(state->strm);
|
||||
|
||||
if (state->how == LOOK) { /* look for gzip header */
|
||||
if (gz_head(state) == -1)
|
||||
return -1;
|
||||
if (state->have) /* got some data from gz_head() */
|
||||
return 0;
|
||||
}
|
||||
if (state->how == COPY) { /* straight copy */
|
||||
if (gz_load(state, state->out, state->size << 1, &(state->have)) == -1)
|
||||
return -1;
|
||||
state->next = state->out;
|
||||
}
|
||||
else if (state->how == GZIP) { /* decompress */
|
||||
strm->avail_out = state->size << 1;
|
||||
strm->next_out = state->out;
|
||||
if (gz_decomp(state) == -1)
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
|
||||
local int gz_skip(state, len)
|
||||
gz_statep state;
|
||||
z_off64_t len;
|
||||
{
|
||||
unsigned n;
|
||||
|
||||
/* skip over len bytes or reach end-of-file, whichever comes first */
|
||||
while (len)
|
||||
/* skip over whatever is in output buffer */
|
||||
if (state->have) {
|
||||
n = GT_OFF(state->have) || (z_off64_t)state->have > len ?
|
||||
(unsigned)len : state->have;
|
||||
state->have -= n;
|
||||
state->next += n;
|
||||
state->pos += n;
|
||||
len -= n;
|
||||
}
|
||||
|
||||
/* output buffer empty -- return if we're at the end of the input */
|
||||
else if (state->eof && state->strm.avail_in == 0)
|
||||
break;
|
||||
|
||||
/* need more data to skip -- load up output buffer */
|
||||
else {
|
||||
/* get more output, looking for header if required */
|
||||
if (gz_make(state) == -1)
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzread(file, buf, len)
|
||||
gzFile file;
|
||||
voidp buf;
|
||||
unsigned len;
|
||||
{
|
||||
unsigned got, n;
|
||||
gz_statep state;
|
||||
z_streamp strm;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
strm = &(state->strm);
|
||||
|
||||
/* check that we're reading and that there's no error */
|
||||
if (state->mode != GZ_READ || state->err != Z_OK)
|
||||
return -1;
|
||||
|
||||
/* since an int is returned, make sure len fits in one, otherwise return
|
||||
with an error (this avoids the flaw in the interface) */
|
||||
if ((int)len < 0) {
|
||||
gz_error(state, Z_BUF_ERROR, "requested length does not fit in int");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* if len is zero, avoid unnecessary operations */
|
||||
if (len == 0)
|
||||
return 0;
|
||||
|
||||
/* process a skip request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
if (gz_skip(state, state->skip) == -1)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* get len bytes to buf, or less than len if at the end */
|
||||
got = 0;
|
||||
do {
|
||||
/* first just try copying data from the output buffer */
|
||||
if (state->have) {
|
||||
n = state->have > len ? len : state->have;
|
||||
memcpy(buf, state->next, n);
|
||||
state->next += n;
|
||||
state->have -= n;
|
||||
}
|
||||
|
||||
/* output buffer empty -- return if we're at the end of the input */
|
||||
else if (state->eof && strm->avail_in == 0)
|
||||
break;
|
||||
|
||||
/* need output data -- for small len or new stream load up our output
|
||||
buffer */
|
||||
else if (state->how == LOOK || len < (state->size << 1)) {
|
||||
/* get more output, looking for header if required */
|
||||
if (gz_make(state) == -1)
|
||||
return -1;
|
||||
continue; /* no progress yet -- go back to memcpy() above */
|
||||
/* the copy above assures that we will leave with space in the
|
||||
output buffer, allowing at least one gzungetc() to succeed */
|
||||
}
|
||||
|
||||
/* large len -- read directly into user buffer */
|
||||
else if (state->how == COPY) { /* read directly */
|
||||
if (gz_load(state, buf, len, &n) == -1)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* large len -- decompress directly into user buffer */
|
||||
else { /* state->how == GZIP */
|
||||
strm->avail_out = len;
|
||||
strm->next_out = buf;
|
||||
if (gz_decomp(state) == -1)
|
||||
return -1;
|
||||
n = state->have;
|
||||
state->have = 0;
|
||||
}
|
||||
|
||||
/* update progress */
|
||||
len -= n;
|
||||
buf = (char *)buf + n;
|
||||
got += n;
|
||||
state->pos += n;
|
||||
} while (len);
|
||||
|
||||
/* return number of bytes read into user buffer (will fit in int) */
|
||||
return (int)got;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzgetc(file)
|
||||
gzFile file;
|
||||
{
|
||||
int ret;
|
||||
unsigned char buf[1];
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
|
||||
/* check that we're reading and that there's no error */
|
||||
if (state->mode != GZ_READ || state->err != Z_OK)
|
||||
return -1;
|
||||
|
||||
/* try output buffer (no need to check for skip request) */
|
||||
if (state->have) {
|
||||
state->have--;
|
||||
state->pos++;
|
||||
return *(state->next)++;
|
||||
}
|
||||
|
||||
/* nothing there -- try gzread() */
|
||||
ret = gzread(file, buf, 1);
|
||||
return ret < 1 ? -1 : buf[0];
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzungetc(c, file)
|
||||
int c;
|
||||
gzFile file;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
|
||||
/* check that we're reading and that there's no error */
|
||||
if (state->mode != GZ_READ || state->err != Z_OK)
|
||||
return -1;
|
||||
|
||||
/* process a skip request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
if (gz_skip(state, state->skip) == -1)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* can't push EOF */
|
||||
if (c < 0)
|
||||
return -1;
|
||||
|
||||
/* if output buffer empty, put byte at end (allows more pushing) */
|
||||
if (state->have == 0) {
|
||||
state->have = 1;
|
||||
state->next = state->out + (state->size << 1) - 1;
|
||||
state->next[0] = c;
|
||||
state->pos--;
|
||||
return c;
|
||||
}
|
||||
|
||||
/* if no room, give up (must have already done a gzungetc()) */
|
||||
if (state->have == (state->size << 1)) {
|
||||
gz_error(state, Z_BUF_ERROR, "out of room to push characters");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* slide output data if needed and insert byte before existing data */
|
||||
if (state->next == state->out) {
|
||||
unsigned char *src = state->out + state->have;
|
||||
unsigned char *dest = state->out + (state->size << 1);
|
||||
while (src > state->out)
|
||||
*--dest = *--src;
|
||||
state->next = dest;
|
||||
}
|
||||
state->have++;
|
||||
state->next--;
|
||||
state->next[0] = c;
|
||||
state->pos--;
|
||||
return c;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
char * ZEXPORT gzgets(file, buf, len)
|
||||
gzFile file;
|
||||
char *buf;
|
||||
int len;
|
||||
{
|
||||
unsigned left, n;
|
||||
char *str;
|
||||
unsigned char *eol;
|
||||
gz_statep state;
|
||||
|
||||
/* check parameters and get internal structure */
|
||||
if (file == NULL || buf == NULL || len < 1)
|
||||
return NULL;
|
||||
state = (gz_statep)file;
|
||||
|
||||
/* check that we're reading and that there's no error */
|
||||
if (state->mode != GZ_READ || state->err != Z_OK)
|
||||
return NULL;
|
||||
|
||||
/* process a skip request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
if (gz_skip(state, state->skip) == -1)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* copy output bytes up to new line or len - 1, whichever comes first --
|
||||
append a terminating zero to the string (we don't check for a zero in
|
||||
the contents, let the user worry about that) */
|
||||
str = buf;
|
||||
left = (unsigned)len - 1;
|
||||
if (left) do {
|
||||
/* assure that something is in the output buffer */
|
||||
if (state->have == 0) {
|
||||
if (gz_make(state) == -1)
|
||||
return NULL; /* error */
|
||||
if (state->have == 0) { /* end of file */
|
||||
if (buf == str) /* got bupkus */
|
||||
return NULL;
|
||||
break; /* got something -- return it */
|
||||
}
|
||||
}
|
||||
|
||||
/* look for end-of-line in current output buffer */
|
||||
n = state->have > left ? left : state->have;
|
||||
eol = memchr(state->next, '\n', n);
|
||||
if (eol != NULL)
|
||||
n = (unsigned)(eol - state->next) + 1;
|
||||
|
||||
/* copy through end-of-line, or remainder if not found */
|
||||
memcpy(buf, state->next, n);
|
||||
state->have -= n;
|
||||
state->next += n;
|
||||
state->pos += n;
|
||||
left -= n;
|
||||
buf += n;
|
||||
} while (left && eol == NULL);
|
||||
|
||||
/* found end-of-line or out of space -- terminate string and return it */
|
||||
buf[0] = 0;
|
||||
return str;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzdirect(file)
|
||||
gzFile file;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return 0;
|
||||
state = (gz_statep)file;
|
||||
|
||||
/* check that we're reading */
|
||||
if (state->mode != GZ_READ)
|
||||
return 0;
|
||||
|
||||
/* if the state is not known, but we can find out, then do so (this is
|
||||
mainly for right after a gzopen() or gzdopen()) */
|
||||
if (state->how == LOOK && state->have == 0)
|
||||
(void)gz_head(state);
|
||||
|
||||
/* return 1 if reading direct, 0 if decompressing a gzip stream */
|
||||
return state->direct;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzclose_r(file)
|
||||
gzFile file;
|
||||
{
|
||||
int ret;
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return Z_STREAM_ERROR;
|
||||
state = (gz_statep)file;
|
||||
|
||||
/* check that we're reading */
|
||||
if (state->mode != GZ_READ)
|
||||
return Z_STREAM_ERROR;
|
||||
|
||||
/* free memory and close file */
|
||||
if (state->size) {
|
||||
inflateEnd(&(state->strm));
|
||||
free(state->out);
|
||||
free(state->in);
|
||||
}
|
||||
gz_error(state, Z_OK, NULL);
|
||||
free(state->path);
|
||||
ret = close(state->fd);
|
||||
free(state);
|
||||
return ret ? Z_ERRNO : Z_OK;
|
||||
}
|
531
src/engine/external/zlib/gzwrite.c
vendored
531
src/engine/external/zlib/gzwrite.c
vendored
|
@ -1,531 +0,0 @@
|
|||
/* gzwrite.c -- zlib functions for writing gzip files
|
||||
* Copyright (C) 2004, 2005, 2010 Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
#include "gzguts.h"
|
||||
|
||||
/* Local functions */
|
||||
local int gz_init OF((gz_statep));
|
||||
local int gz_comp OF((gz_statep, int));
|
||||
local int gz_zero OF((gz_statep, z_off64_t));
|
||||
|
||||
/* Initialize state for writing a gzip file. Mark initialization by setting
|
||||
state->size to non-zero. Return -1 on failure or 0 on success. */
|
||||
local int gz_init(state)
|
||||
gz_statep state;
|
||||
{
|
||||
int ret;
|
||||
z_streamp strm = &(state->strm);
|
||||
|
||||
/* allocate input and output buffers */
|
||||
state->in = malloc(state->want);
|
||||
state->out = malloc(state->want);
|
||||
if (state->in == NULL || state->out == NULL) {
|
||||
if (state->out != NULL)
|
||||
free(state->out);
|
||||
if (state->in != NULL)
|
||||
free(state->in);
|
||||
gz_error(state, Z_MEM_ERROR, "out of memory");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* allocate deflate memory, set up for gzip compression */
|
||||
strm->zalloc = Z_NULL;
|
||||
strm->zfree = Z_NULL;
|
||||
strm->opaque = Z_NULL;
|
||||
ret = deflateInit2(strm, state->level, Z_DEFLATED,
|
||||
15 + 16, 8, state->strategy);
|
||||
if (ret != Z_OK) {
|
||||
free(state->in);
|
||||
gz_error(state, Z_MEM_ERROR, "out of memory");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* mark state as initialized */
|
||||
state->size = state->want;
|
||||
|
||||
/* initialize write buffer */
|
||||
strm->avail_out = state->size;
|
||||
strm->next_out = state->out;
|
||||
state->next = strm->next_out;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Compress whatever is at avail_in and next_in and write to the output file.
|
||||
Return -1 if there is an error writing to the output file, otherwise 0.
|
||||
flush is assumed to be a valid deflate() flush value. If flush is Z_FINISH,
|
||||
then the deflate() state is reset to start a new gzip stream. */
|
||||
local int gz_comp(state, flush)
|
||||
gz_statep state;
|
||||
int flush;
|
||||
{
|
||||
int ret, got;
|
||||
unsigned have;
|
||||
z_streamp strm = &(state->strm);
|
||||
|
||||
/* allocate memory if this is the first time through */
|
||||
if (state->size == 0 && gz_init(state) == -1)
|
||||
return -1;
|
||||
|
||||
/* run deflate() on provided input until it produces no more output */
|
||||
ret = Z_OK;
|
||||
do {
|
||||
/* write out current buffer contents if full, or if flushing, but if
|
||||
doing Z_FINISH then don't write until we get to Z_STREAM_END */
|
||||
if (strm->avail_out == 0 || (flush != Z_NO_FLUSH &&
|
||||
(flush != Z_FINISH || ret == Z_STREAM_END))) {
|
||||
have = (unsigned)(strm->next_out - state->next);
|
||||
if (have && ((got = write(state->fd, state->next, have)) < 0 ||
|
||||
(unsigned)got != have)) {
|
||||
gz_error(state, Z_ERRNO, zstrerror());
|
||||
return -1;
|
||||
}
|
||||
if (strm->avail_out == 0) {
|
||||
strm->avail_out = state->size;
|
||||
strm->next_out = state->out;
|
||||
}
|
||||
state->next = strm->next_out;
|
||||
}
|
||||
|
||||
/* compress */
|
||||
have = strm->avail_out;
|
||||
ret = deflate(strm, flush);
|
||||
if (ret == Z_STREAM_ERROR) {
|
||||
gz_error(state, Z_STREAM_ERROR,
|
||||
"internal error: deflate stream corrupt");
|
||||
return -1;
|
||||
}
|
||||
have -= strm->avail_out;
|
||||
} while (have);
|
||||
|
||||
/* if that completed a deflate stream, allow another to start */
|
||||
if (flush == Z_FINISH)
|
||||
deflateReset(strm);
|
||||
|
||||
/* all done, no errors */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Compress len zeros to output. Return -1 on error, 0 on success. */
|
||||
local int gz_zero(state, len)
|
||||
gz_statep state;
|
||||
z_off64_t len;
|
||||
{
|
||||
int first;
|
||||
unsigned n;
|
||||
z_streamp strm = &(state->strm);
|
||||
|
||||
/* consume whatever's left in the input buffer */
|
||||
if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
|
||||
return -1;
|
||||
|
||||
/* compress len zeros (len guaranteed > 0) */
|
||||
first = 1;
|
||||
while (len) {
|
||||
n = GT_OFF(state->size) || (z_off64_t)state->size > len ?
|
||||
(unsigned)len : state->size;
|
||||
if (first) {
|
||||
memset(state->in, 0, n);
|
||||
first = 0;
|
||||
}
|
||||
strm->avail_in = n;
|
||||
strm->next_in = state->in;
|
||||
state->pos += n;
|
||||
if (gz_comp(state, Z_NO_FLUSH) == -1)
|
||||
return -1;
|
||||
len -= n;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzwrite(file, buf, len)
|
||||
gzFile file;
|
||||
voidpc buf;
|
||||
unsigned len;
|
||||
{
|
||||
unsigned put = len;
|
||||
unsigned n;
|
||||
gz_statep state;
|
||||
z_streamp strm;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return 0;
|
||||
state = (gz_statep)file;
|
||||
strm = &(state->strm);
|
||||
|
||||
/* check that we're writing and that there's no error */
|
||||
if (state->mode != GZ_WRITE || state->err != Z_OK)
|
||||
return 0;
|
||||
|
||||
/* since an int is returned, make sure len fits in one, otherwise return
|
||||
with an error (this avoids the flaw in the interface) */
|
||||
if ((int)len < 0) {
|
||||
gz_error(state, Z_BUF_ERROR, "requested length does not fit in int");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* if len is zero, avoid unnecessary operations */
|
||||
if (len == 0)
|
||||
return 0;
|
||||
|
||||
/* allocate memory if this is the first time through */
|
||||
if (state->size == 0 && gz_init(state) == -1)
|
||||
return 0;
|
||||
|
||||
/* check for seek request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
if (gz_zero(state, state->skip) == -1)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* for small len, copy to input buffer, otherwise compress directly */
|
||||
if (len < state->size) {
|
||||
/* copy to input buffer, compress when full */
|
||||
do {
|
||||
if (strm->avail_in == 0)
|
||||
strm->next_in = state->in;
|
||||
n = state->size - strm->avail_in;
|
||||
if (n > len)
|
||||
n = len;
|
||||
memcpy(strm->next_in + strm->avail_in, buf, n);
|
||||
strm->avail_in += n;
|
||||
state->pos += n;
|
||||
buf = (char *)buf + n;
|
||||
len -= n;
|
||||
if (len && gz_comp(state, Z_NO_FLUSH) == -1)
|
||||
return 0;
|
||||
} while (len);
|
||||
}
|
||||
else {
|
||||
/* consume whatever's left in the input buffer */
|
||||
if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
|
||||
return 0;
|
||||
|
||||
/* directly compress user buffer to file */
|
||||
strm->avail_in = len;
|
||||
strm->next_in = (voidp)buf;
|
||||
state->pos += len;
|
||||
if (gz_comp(state, Z_NO_FLUSH) == -1)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* input was all buffered or compressed (put will fit in int) */
|
||||
return (int)put;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzputc(file, c)
|
||||
gzFile file;
|
||||
int c;
|
||||
{
|
||||
unsigned char buf[1];
|
||||
gz_statep state;
|
||||
z_streamp strm;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
strm = &(state->strm);
|
||||
|
||||
/* check that we're writing and that there's no error */
|
||||
if (state->mode != GZ_WRITE || state->err != Z_OK)
|
||||
return -1;
|
||||
|
||||
/* check for seek request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
if (gz_zero(state, state->skip) == -1)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* try writing to input buffer for speed (state->size == 0 if buffer not
|
||||
initialized) */
|
||||
if (strm->avail_in < state->size) {
|
||||
if (strm->avail_in == 0)
|
||||
strm->next_in = state->in;
|
||||
strm->next_in[strm->avail_in++] = c;
|
||||
state->pos++;
|
||||
return c;
|
||||
}
|
||||
|
||||
/* no room in buffer or not initialized, use gz_write() */
|
||||
buf[0] = c;
|
||||
if (gzwrite(file, buf, 1) != 1)
|
||||
return -1;
|
||||
return c;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzputs(file, str)
|
||||
gzFile file;
|
||||
const char *str;
|
||||
{
|
||||
int ret;
|
||||
unsigned len;
|
||||
|
||||
/* write string */
|
||||
len = (unsigned)strlen(str);
|
||||
ret = gzwrite(file, str, len);
|
||||
return ret == 0 && len != 0 ? -1 : ret;
|
||||
}
|
||||
|
||||
#ifdef STDC
|
||||
#include <stdarg.h>
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORTVA gzprintf (gzFile file, const char *format, ...)
|
||||
{
|
||||
int size, len;
|
||||
gz_statep state;
|
||||
z_streamp strm;
|
||||
va_list va;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
strm = &(state->strm);
|
||||
|
||||
/* check that we're writing and that there's no error */
|
||||
if (state->mode != GZ_WRITE || state->err != Z_OK)
|
||||
return 0;
|
||||
|
||||
/* make sure we have some buffer space */
|
||||
if (state->size == 0 && gz_init(state) == -1)
|
||||
return 0;
|
||||
|
||||
/* check for seek request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
if (gz_zero(state, state->skip) == -1)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* consume whatever's left in the input buffer */
|
||||
if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
|
||||
return 0;
|
||||
|
||||
/* do the printf() into the input buffer, put length in len */
|
||||
size = (int)(state->size);
|
||||
state->in[size - 1] = 0;
|
||||
va_start(va, format);
|
||||
#ifdef NO_vsnprintf
|
||||
# ifdef HAS_vsprintf_void
|
||||
(void)vsprintf(state->in, format, va);
|
||||
va_end(va);
|
||||
for (len = 0; len < size; len++)
|
||||
if (state->in[len] == 0) break;
|
||||
# else
|
||||
len = vsprintf(state->in, format, va);
|
||||
va_end(va);
|
||||
# endif
|
||||
#else
|
||||
# ifdef HAS_vsnprintf_void
|
||||
(void)vsnprintf(state->in, size, format, va);
|
||||
va_end(va);
|
||||
len = strlen(state->in);
|
||||
# else
|
||||
len = vsnprintf((char *)(state->in), size, format, va);
|
||||
va_end(va);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* check that printf() results fit in buffer */
|
||||
if (len <= 0 || len >= (int)size || state->in[size - 1] != 0)
|
||||
return 0;
|
||||
|
||||
/* update buffer and position, defer compression until needed */
|
||||
strm->avail_in = (unsigned)len;
|
||||
strm->next_in = state->in;
|
||||
state->pos += len;
|
||||
return len;
|
||||
}
|
||||
|
||||
#else /* !STDC */
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
|
||||
a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
|
||||
gzFile file;
|
||||
const char *format;
|
||||
int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
|
||||
a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
|
||||
{
|
||||
int size, len;
|
||||
gz_statep state;
|
||||
z_streamp strm;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
strm = &(state->strm);
|
||||
|
||||
/* check that we're writing and that there's no error */
|
||||
if (state->mode != GZ_WRITE || state->err != Z_OK)
|
||||
return 0;
|
||||
|
||||
/* make sure we have some buffer space */
|
||||
if (state->size == 0 && gz_init(state) == -1)
|
||||
return 0;
|
||||
|
||||
/* check for seek request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
if (gz_zero(state, state->skip) == -1)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* consume whatever's left in the input buffer */
|
||||
if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
|
||||
return 0;
|
||||
|
||||
/* do the printf() into the input buffer, put length in len */
|
||||
size = (int)(state->size);
|
||||
state->in[size - 1] = 0;
|
||||
#ifdef NO_snprintf
|
||||
# ifdef HAS_sprintf_void
|
||||
sprintf(state->in, format, a1, a2, a3, a4, a5, a6, a7, a8,
|
||||
a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
|
||||
for (len = 0; len < size; len++)
|
||||
if (state->in[len] == 0) break;
|
||||
# else
|
||||
len = sprintf(state->in, format, a1, a2, a3, a4, a5, a6, a7, a8,
|
||||
a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
|
||||
# endif
|
||||
#else
|
||||
# ifdef HAS_snprintf_void
|
||||
snprintf(state->in, size, format, a1, a2, a3, a4, a5, a6, a7, a8,
|
||||
a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
|
||||
len = strlen(state->in);
|
||||
# else
|
||||
len = snprintf(state->in, size, format, a1, a2, a3, a4, a5, a6, a7, a8,
|
||||
a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* check that printf() results fit in buffer */
|
||||
if (len <= 0 || len >= (int)size || state->in[size - 1] != 0)
|
||||
return 0;
|
||||
|
||||
/* update buffer and position, defer compression until needed */
|
||||
strm->avail_in = (unsigned)len;
|
||||
strm->next_in = state->in;
|
||||
state->pos += len;
|
||||
return len;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzflush(file, flush)
|
||||
gzFile file;
|
||||
int flush;
|
||||
{
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return -1;
|
||||
state = (gz_statep)file;
|
||||
|
||||
/* check that we're writing and that there's no error */
|
||||
if (state->mode != GZ_WRITE || state->err != Z_OK)
|
||||
return Z_STREAM_ERROR;
|
||||
|
||||
/* check flush parameter */
|
||||
if (flush < 0 || flush > Z_FINISH)
|
||||
return Z_STREAM_ERROR;
|
||||
|
||||
/* check for seek request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
if (gz_zero(state, state->skip) == -1)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* compress remaining data with requested flush */
|
||||
gz_comp(state, flush);
|
||||
return state->err;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzsetparams(file, level, strategy)
|
||||
gzFile file;
|
||||
int level;
|
||||
int strategy;
|
||||
{
|
||||
gz_statep state;
|
||||
z_streamp strm;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return Z_STREAM_ERROR;
|
||||
state = (gz_statep)file;
|
||||
strm = &(state->strm);
|
||||
|
||||
/* check that we're writing and that there's no error */
|
||||
if (state->mode != GZ_WRITE || state->err != Z_OK)
|
||||
return Z_STREAM_ERROR;
|
||||
|
||||
/* if no change is requested, then do nothing */
|
||||
if (level == state->level && strategy == state->strategy)
|
||||
return Z_OK;
|
||||
|
||||
/* check for seek request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
if (gz_zero(state, state->skip) == -1)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* change compression parameters for subsequent input */
|
||||
if (state->size) {
|
||||
/* flush previous input with previous parameters before changing */
|
||||
if (strm->avail_in && gz_comp(state, Z_PARTIAL_FLUSH) == -1)
|
||||
return state->err;
|
||||
deflateParams(strm, level, strategy);
|
||||
}
|
||||
state->level = level;
|
||||
state->strategy = strategy;
|
||||
return Z_OK;
|
||||
}
|
||||
|
||||
/* -- see zlib.h -- */
|
||||
int ZEXPORT gzclose_w(file)
|
||||
gzFile file;
|
||||
{
|
||||
int ret = 0;
|
||||
gz_statep state;
|
||||
|
||||
/* get internal structure */
|
||||
if (file == NULL)
|
||||
return Z_STREAM_ERROR;
|
||||
state = (gz_statep)file;
|
||||
|
||||
/* check that we're writing */
|
||||
if (state->mode != GZ_WRITE)
|
||||
return Z_STREAM_ERROR;
|
||||
|
||||
/* check for seek request */
|
||||
if (state->seek) {
|
||||
state->seek = 0;
|
||||
ret += gz_zero(state, state->skip);
|
||||
}
|
||||
|
||||
/* flush, free memory, and close file */
|
||||
ret += gz_comp(state, Z_FINISH);
|
||||
(void)deflateEnd(&(state->strm));
|
||||
free(state->out);
|
||||
free(state->in);
|
||||
gz_error(state, Z_OK, NULL);
|
||||
free(state->path);
|
||||
ret += close(state->fd);
|
||||
free(state);
|
||||
return ret ? Z_ERRNO : Z_OK;
|
||||
}
|
|
@ -5,7 +5,6 @@
|
|||
|
||||
#include "kernel.h"
|
||||
|
||||
#include <base/tl/threading.h>
|
||||
|
||||
class CImageInfo
|
||||
{
|
||||
|
@ -77,6 +76,8 @@ public:
|
|||
virtual void BlendNone() = 0;
|
||||
virtual void BlendNormal() = 0;
|
||||
virtual void BlendAdditive() = 0;
|
||||
virtual void WrapNormal() = 0;
|
||||
virtual void WrapClamp() = 0;
|
||||
virtual int MemoryUsage() const = 0;
|
||||
|
||||
virtual int LoadPNG(CImageInfo *pImg, const char *pFilename, int StorageType) = 0;
|
||||
|
@ -137,7 +138,7 @@ public:
|
|||
virtual void Swap() = 0;
|
||||
|
||||
// syncronization
|
||||
virtual void InsertSignal(semaphore *pSemaphore) = 0;
|
||||
virtual void InsertSignal(class semaphore *pSemaphore) = 0;
|
||||
virtual bool IsIdle() = 0;
|
||||
virtual void WaitForIdle() = 0;
|
||||
};
|
||||
|
|
|
@ -65,6 +65,7 @@ public:
|
|||
virtual void Kick(int ClientID, const char *pReason) = 0;
|
||||
|
||||
virtual void DemoRecorder_HandleAutoStart() = 0;
|
||||
virtual bool DemoRecorder_IsRecording() = 0;
|
||||
|
||||
// DDRace
|
||||
|
||||
|
|
|
@ -1336,7 +1336,7 @@ int CServer::Run()
|
|||
|
||||
// start server
|
||||
NETADDR BindAddr;
|
||||
if(g_Config.m_SvBindaddr[0] && net_host_lookup(g_Config.m_SvBindaddr, &BindAddr, NETTYPE_ALL) == 0)
|
||||
if(g_Config.m_Bindaddr[0] && net_host_lookup(g_Config.m_Bindaddr, &BindAddr, NETTYPE_ALL) == 0)
|
||||
{
|
||||
// sweet!
|
||||
BindAddr.port = g_Config.m_SvPort;
|
||||
|
@ -1350,7 +1350,7 @@ int CServer::Run()
|
|||
|
||||
if(!m_NetServer.Open(BindAddr, &m_ServerBan, g_Config.m_SvMaxClients, g_Config.m_SvMaxClientsPerIP, 0))
|
||||
{
|
||||
dbg_msg("server", "couldn't open socket. port might already be in use");
|
||||
dbg_msg("server", "couldn't open socket. port %d might already be in use", g_Config.m_SvPort);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -1567,6 +1567,11 @@ void CServer::DemoRecorder_HandleAutoStart()
|
|||
}
|
||||
}
|
||||
|
||||
bool CServer::DemoRecorder_IsRecording()
|
||||
{
|
||||
return m_DemoRecorder.IsRecording();
|
||||
}
|
||||
|
||||
void CServer::ConRecord(IConsole::IResult *pResult, void *pUser)
|
||||
{
|
||||
CServer* pServer = (CServer *)pUser;
|
||||
|
@ -1742,7 +1747,7 @@ int main(int argc, const char **argv) // ignore_convention
|
|||
IGameServer *pGameServer = CreateGameServer();
|
||||
IConsole *pConsole = CreateConsole(CFGFLAG_SERVER|CFGFLAG_ECON);
|
||||
IEngineMasterServer *pEngineMasterServer = CreateEngineMasterServer();
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", argc, argv); // ignore_convention
|
||||
IStorage *pStorage = CreateStorage("Teeworlds", IStorage::STORAGETYPE_SERVER, argc, argv); // ignore_convention
|
||||
IConfig *pConfig = CreateConfig();
|
||||
|
||||
pServer->InitRegister(&pServer->m_NetServer, pEngineMasterServer, pConsole);
|
||||
|
|
|
@ -181,6 +181,7 @@ public:
|
|||
void Kick(int ClientID, const char *pReason);
|
||||
|
||||
void DemoRecorder_HandleAutoStart();
|
||||
bool DemoRecorder_IsRecording();
|
||||
|
||||
//int Tick()
|
||||
int64 TickStartTime(int Tick);
|
||||
|
|
|
@ -17,6 +17,7 @@ MACRO_CONFIG_INT(ConsoleOutputLevel, console_output_level, 0, 0, 2, CFGFLAG_CLIE
|
|||
|
||||
MACRO_CONFIG_INT(ClCpuThrottle, cl_cpu_throttle, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "")
|
||||
MACRO_CONFIG_INT(ClEditor, cl_editor, 0, 0, 1, CFGFLAG_CLIENT, "")
|
||||
MACRO_CONFIG_INT(ClLoadCountryFlags, cl_load_country_flags, 1, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Load and show country flags")
|
||||
|
||||
MACRO_CONFIG_INT(ClAutoDemoRecord, cl_auto_demo_record, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Automatically record demos")
|
||||
MACRO_CONFIG_INT(ClAutoDemoMax, cl_auto_demo_max, 10, 0, 1000, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Maximum number of automatically recorded demos (0 = no limit)")
|
||||
|
@ -47,7 +48,7 @@ MACRO_CONFIG_INT(BrSort, br_sort, 0, 0, 256, CFGFLAG_SAVE|CFGFLAG_CLIENT, "")
|
|||
MACRO_CONFIG_INT(BrSortOrder, br_sort_order, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "")
|
||||
MACRO_CONFIG_INT(BrMaxRequests, br_max_requests, 25, 0, 1000, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Number of requests to use when refreshing server browser")
|
||||
|
||||
MACRO_CONFIG_INT(SndBufferSize, snd_buffer_size, 512, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Sound buffer size")
|
||||
MACRO_CONFIG_INT(SndBufferSize, snd_buffer_size, 512, 128, 32768, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Sound buffer size")
|
||||
MACRO_CONFIG_INT(SndRate, snd_rate, 48000, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Sound mixing rate")
|
||||
MACRO_CONFIG_INT(SndEnable, snd_enable, 1, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Sound enable")
|
||||
MACRO_CONFIG_INT(SndMusic, snd_enable_music, 1, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Play background music")
|
||||
|
@ -77,7 +78,7 @@ MACRO_CONFIG_INT(GfxThreaded, gfx_threaded, 1, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT
|
|||
MACRO_CONFIG_INT(InpMousesens, inp_mousesens, 100, 5, 100000, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Mouse sensitivity")
|
||||
|
||||
MACRO_CONFIG_STR(SvName, sv_name, 128, "unnamed server", CFGFLAG_SERVER, "Server name")
|
||||
MACRO_CONFIG_STR(SvBindaddr, sv_bindaddr, 128, "", CFGFLAG_SERVER, "Address to bind the server to")
|
||||
MACRO_CONFIG_STR(Bindaddr, bindaddr, 128, "", CFGFLAG_CLIENT|CFGFLAG_SERVER|CFGFLAG_MASTER, "Address to bind the client/server to")
|
||||
MACRO_CONFIG_INT(SvPort, sv_port, 8303, 0, 0, CFGFLAG_SERVER, "Port to use for the server")
|
||||
MACRO_CONFIG_INT(SvExternalPort, sv_external_port, 0, 0, 0, CFGFLAG_SERVER, "External port to report to the master servers")
|
||||
MACRO_CONFIG_STR(SvMap, sv_map, 128, "dm1", CFGFLAG_SERVER, "Map to use on the server")
|
||||
|
|
|
@ -631,6 +631,75 @@ static void StrVariableCommand(IConsole::IResult *pResult, void *pUserData)
|
|||
}
|
||||
}
|
||||
|
||||
void CConsole::ConToggle(IConsole::IResult *pResult, void *pUser)
|
||||
{
|
||||
CConsole* pConsole = static_cast<CConsole *>(pUser);
|
||||
char aBuf[128] = {0};
|
||||
CCommand *pCommand = pConsole->FindCommand(pResult->GetString(0), pConsole->m_FlagMask);
|
||||
if(pCommand)
|
||||
{
|
||||
FCommandCallback pfnCallback = pCommand->m_pfnCallback;
|
||||
void *pUserData = pCommand->m_pUserData;
|
||||
|
||||
// check for chain
|
||||
if(pCommand->m_pfnCallback == Con_Chain)
|
||||
{
|
||||
CChain *pChainInfo = static_cast<CChain *>(pCommand->m_pUserData);
|
||||
pfnCallback = pChainInfo->m_pfnCallback;
|
||||
pUserData = pChainInfo->m_pCallbackUserData;
|
||||
}
|
||||
|
||||
if(pfnCallback == IntVariableCommand)
|
||||
{
|
||||
CIntVariableData *pData = static_cast<CIntVariableData *>(pUserData);
|
||||
int Val = *(pData->m_pVariable)==pResult->GetInteger(1) ? pResult->GetInteger(2) : pResult->GetInteger(1);
|
||||
str_format(aBuf, sizeof(aBuf), "%s %i", pResult->GetString(0), Val);
|
||||
pConsole->ExecuteLine(aBuf);
|
||||
aBuf[0] = 0;
|
||||
}
|
||||
else
|
||||
str_format(aBuf, sizeof(aBuf), "Invalid command: '%s'.", pResult->GetString(0));
|
||||
}
|
||||
else
|
||||
str_format(aBuf, sizeof(aBuf), "No such command: '%s'.", pResult->GetString(0));
|
||||
|
||||
if(aBuf[0] != 0)
|
||||
pConsole->Print(OUTPUT_LEVEL_STANDARD, "Console", aBuf);
|
||||
}
|
||||
|
||||
void CConsole::ConToggleStroke(IConsole::IResult *pResult, void *pUser)
|
||||
{
|
||||
CConsole* pConsole = static_cast<CConsole *>(pUser);
|
||||
char aBuf[128] = {0};
|
||||
CCommand *pCommand = pConsole->FindCommand(pResult->GetString(1), pConsole->m_FlagMask);
|
||||
if(pCommand)
|
||||
{
|
||||
FCommandCallback pfnCallback = pCommand->m_pfnCallback;
|
||||
|
||||
// check for chain
|
||||
if(pCommand->m_pfnCallback == Con_Chain)
|
||||
{
|
||||
CChain *pChainInfo = static_cast<CChain *>(pCommand->m_pUserData);
|
||||
pfnCallback = pChainInfo->m_pfnCallback;
|
||||
}
|
||||
|
||||
if(pfnCallback == IntVariableCommand)
|
||||
{
|
||||
int Val = pResult->GetInteger(0)==0 ? pResult->GetInteger(3) : pResult->GetInteger(2);
|
||||
str_format(aBuf, sizeof(aBuf), "%s %i", pResult->GetString(1), Val);
|
||||
pConsole->ExecuteLine(aBuf);
|
||||
aBuf[0] = 0;
|
||||
}
|
||||
else
|
||||
str_format(aBuf, sizeof(aBuf), "Invalid command: '%s'.", pResult->GetString(1));
|
||||
}
|
||||
else
|
||||
str_format(aBuf, sizeof(aBuf), "No such command: '%s'.", pResult->GetString(1));
|
||||
|
||||
if(aBuf[0] != 0)
|
||||
pConsole->Print(OUTPUT_LEVEL_STANDARD, "Console", aBuf);
|
||||
}
|
||||
|
||||
CConsole::CConsole(int FlagMask)
|
||||
{
|
||||
m_FlagMask = FlagMask;
|
||||
|
@ -652,6 +721,9 @@ CConsole::CConsole(int FlagMask)
|
|||
Register("echo", "r", CFGFLAG_SERVER|CFGFLAG_CLIENT, Con_Echo, this, "Echo the text");
|
||||
Register("exec", "r", CFGFLAG_SERVER|CFGFLAG_CLIENT, Con_Exec, this, "Execute the specified file");
|
||||
|
||||
Register("toggle", "sii", CFGFLAG_SERVER|CFGFLAG_CLIENT, ConToggle, this, "Toggle config value");
|
||||
Register("+toggle", "sii", CFGFLAG_CLIENT, ConToggleStroke, this, "Toggle config value via keypress");
|
||||
|
||||
Register("mod_command", "s?i", CFGFLAG_SERVER, ConModCommandAccess, this, "Specify command accessibility for moderators");
|
||||
Register("mod_status", "", CFGFLAG_SERVER, ConModCommandStatus, this, "List all commands which are accessible for moderators");
|
||||
Register("user_status", "", CFGFLAG_SERVER, ConUserCommandStatus, this, "List all commands which are accessible for users");
|
||||
|
|
|
@ -54,6 +54,8 @@ class CConsole : public IConsole
|
|||
static void Con_Chain(IResult *pResult, void *pUserData);
|
||||
static void Con_Echo(IResult *pResult, void *pUserData);
|
||||
static void Con_Exec(IResult *pResult, void *pUserData);
|
||||
static void ConToggle(IResult *pResult, void *pUser);
|
||||
static void ConToggleStroke(IResult *pResult, void *pUser);
|
||||
static void ConModCommandAccess(IResult *pResult, void *pUser);
|
||||
static void ConModCommandStatus(IConsole::IResult *pResult, void *pUser);
|
||||
|
||||
|
|
|
@ -13,8 +13,9 @@
|
|||
#include "snapshot.h"
|
||||
|
||||
static const unsigned char gs_aHeaderMarker[7] = {'T', 'W', 'D', 'E', 'M', 'O', 0};
|
||||
static const unsigned char gs_ActVersion = 3;
|
||||
static const unsigned char gs_ActVersion = 4;
|
||||
static const int gs_LengthOffset = 152;
|
||||
static const int gs_NumMarkersOffset = 176;
|
||||
|
||||
|
||||
CDemoRecorder::CDemoRecorder(class CSnapshotDelta *pSnapshotDelta)
|
||||
|
@ -89,6 +90,8 @@ int CDemoRecorder::Start(class IStorage *pStorage, class IConsole *pConsole, con
|
|||
str_copy(Header.m_aType, pType, sizeof(Header.m_aType));
|
||||
// Header.m_Length - add this on stop
|
||||
str_timestamp(Header.m_aTimestamp, sizeof(Header.m_aTimestamp));
|
||||
// Header.m_aNumTimelineMarkers - add this on stop
|
||||
// Header.m_aTimelineMarkers - add this on stop
|
||||
io_write(DemoFile, &Header, sizeof(Header));
|
||||
|
||||
// write map data
|
||||
|
@ -105,6 +108,7 @@ int CDemoRecorder::Start(class IStorage *pStorage, class IConsole *pConsole, con
|
|||
m_LastKeyFrame = -1;
|
||||
m_LastTickMarker = -1;
|
||||
m_FirstTick = -1;
|
||||
m_NumTimelineMarkers = 0;
|
||||
|
||||
char aBuf[256];
|
||||
str_format(aBuf, sizeof(aBuf), "Recording to '%s'", pFilename);
|
||||
|
@ -266,6 +270,25 @@ int CDemoRecorder::Stop()
|
|||
aLength[3] = (DemoLength)&0xff;
|
||||
io_write(m_File, aLength, sizeof(aLength));
|
||||
|
||||
// add the timeline markers to the header
|
||||
io_seek(m_File, gs_NumMarkersOffset, IOSEEK_START);
|
||||
char aNumMarkers[4];
|
||||
aNumMarkers[0] = (m_NumTimelineMarkers>>24)&0xff;
|
||||
aNumMarkers[1] = (m_NumTimelineMarkers>>16)&0xff;
|
||||
aNumMarkers[2] = (m_NumTimelineMarkers>>8)&0xff;
|
||||
aNumMarkers[3] = (m_NumTimelineMarkers)&0xff;
|
||||
io_write(m_File, aNumMarkers, sizeof(aNumMarkers));
|
||||
for(int i = 0; i < m_NumTimelineMarkers; i++)
|
||||
{
|
||||
int Marker = m_aTimelineMarkers[i];
|
||||
char aMarker[4];
|
||||
aMarker[0] = (Marker>>24)&0xff;
|
||||
aMarker[1] = (Marker>>16)&0xff;
|
||||
aMarker[2] = (Marker>>8)&0xff;
|
||||
aMarker[3] = (Marker)&0xff;
|
||||
io_write(m_File, aMarker, sizeof(aMarker));
|
||||
}
|
||||
|
||||
io_close(m_File);
|
||||
m_File = 0;
|
||||
m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_recorder", "Stopped recording");
|
||||
|
@ -273,6 +296,24 @@ int CDemoRecorder::Stop()
|
|||
return 0;
|
||||
}
|
||||
|
||||
void CDemoRecorder::AddDemoMarker()
|
||||
{
|
||||
if(m_LastTickMarker < 0 || m_NumTimelineMarkers >= MAX_TIMELINE_MARKERS)
|
||||
return;
|
||||
|
||||
// not more than 1 marker in a second
|
||||
if(m_NumTimelineMarkers > 0)
|
||||
{
|
||||
int Diff = m_LastTickMarker - m_aTimelineMarkers[m_NumTimelineMarkers-1];
|
||||
if(Diff < SERVER_TICK_SPEED*1.0f)
|
||||
return;
|
||||
}
|
||||
|
||||
m_aTimelineMarkers[m_NumTimelineMarkers++] = m_LastTickMarker;
|
||||
|
||||
m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "demo_recorder", "Added timeline marker");
|
||||
}
|
||||
|
||||
|
||||
|
||||
CDemoPlayer::CDemoPlayer(class CSnapshotDelta *pSnapshotDelta)
|
||||
|
@ -622,6 +663,16 @@ int CDemoPlayer::Load(class IStorage *pStorage, class IConsole *pConsole, const
|
|||
mem_free(pMapData);
|
||||
}
|
||||
|
||||
// get timeline markers
|
||||
int Num = ((m_Info.m_Header.m_aNumTimelineMarkers[0]<<24)&0xFF000000) | ((m_Info.m_Header.m_aNumTimelineMarkers[1]<<16)&0xFF0000) |
|
||||
((m_Info.m_Header.m_aNumTimelineMarkers[2]<<8)&0xFF00) | (m_Info.m_Header.m_aNumTimelineMarkers[3]&0xFF);
|
||||
m_Info.m_Info.m_NumTimelineMarkers = Num;
|
||||
for(int i = 0; i < Num && i < MAX_TIMELINE_MARKERS; i++)
|
||||
{
|
||||
char *pTimelineMarker = m_Info.m_Header.m_aTimelineMarkers[i];
|
||||
m_Info.m_Info.m_aTimelineMarkers[i] = ((pTimelineMarker[0]<<24)&0xFF000000) | ((pTimelineMarker[1]<<16)&0xFF0000) |
|
||||
((pTimelineMarker[2]<<8)&0xFF00) | (pTimelineMarker[3]&0xFF);
|
||||
}
|
||||
|
||||
// scan the file for interessting points
|
||||
ScanFile();
|
||||
|
|
|
@ -17,6 +17,8 @@ class CDemoRecorder : public IDemoRecorder
|
|||
int m_FirstTick;
|
||||
unsigned char m_aLastSnapshotData[CSnapshot::MAX_SIZE];
|
||||
class CSnapshotDelta *m_pSnapshotDelta;
|
||||
int m_NumTimelineMarkers;
|
||||
int m_aTimelineMarkers[MAX_TIMELINE_MARKERS];
|
||||
|
||||
void WriteTickMarker(int Tick, int Keyframe);
|
||||
void Write(int Type, const void *pData, int Size);
|
||||
|
@ -25,6 +27,7 @@ public:
|
|||
|
||||
int Start(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename, const char *pNetversion, const char *pMap, unsigned MapCrc, const char *pType);
|
||||
int Stop();
|
||||
void AddDemoMarker();
|
||||
|
||||
void RecordSnapshot(int Tick, const void *pData, int Size);
|
||||
void RecordMessage(const void *pData, int Size);
|
||||
|
@ -108,7 +111,7 @@ public:
|
|||
void Unpause();
|
||||
int Stop();
|
||||
void SetSpeed(float Speed);
|
||||
int SetPos(float Precent);
|
||||
int SetPos(float Percent);
|
||||
const CInfo *BaseInfo() const { return &m_Info.m_Info; }
|
||||
void GetDemoName(char *pBuffer, int BufferSize) const;
|
||||
bool GetDemoInfo(class IStorage *pStorage, const char *pFilename, int StorageType, CDemoHeader *pDemoHeader) const;
|
||||
|
|
|
@ -141,7 +141,7 @@ void CEcon::Update()
|
|||
else if(m_aClients[ClientID].m_State == CClient::STATE_AUTHED)
|
||||
{
|
||||
char aFormatted[256];
|
||||
str_format(aFormatted, sizeof(aBuf), "cid=%d cmd='%s'", ClientID, aBuf);
|
||||
str_format(aFormatted, sizeof(aFormatted), "cid=%d cmd='%s'", ClientID, aBuf);
|
||||
Console()->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "server", aFormatted);
|
||||
m_UserClientID = ClientID;
|
||||
Console()->ExecuteLine(aBuf);
|
||||
|
|
|
@ -583,7 +583,7 @@ void CNetBan::ConBansSave(IConsole::IResult *pResult, void *pUser)
|
|||
{
|
||||
int Min = pBan->m_Info.m_Expires>-1 ? (pBan->m_Info.m_Expires-Now+59)/60 : -1;
|
||||
net_addr_str(&pBan->m_Data, aAddrStr1, sizeof(aAddrStr1), false);
|
||||
str_format(aBuf, sizeof(aBuf), "ban_ip %s %i %s", aAddrStr1, Min, pBan->m_Info.m_aReason);
|
||||
str_format(aBuf, sizeof(aBuf), "ban %s %i %s", aAddrStr1, Min, pBan->m_Info.m_aReason);
|
||||
io_write(File, aBuf, str_length(aBuf));
|
||||
io_write_newline(File);
|
||||
}
|
||||
|
@ -592,7 +592,7 @@ void CNetBan::ConBansSave(IConsole::IResult *pResult, void *pUser)
|
|||
int Min = pBan->m_Info.m_Expires>-1 ? (pBan->m_Info.m_Expires-Now+59)/60 : -1;
|
||||
net_addr_str(&pBan->m_Data.m_LB, aAddrStr1, sizeof(aAddrStr1), false);
|
||||
net_addr_str(&pBan->m_Data.m_UB, aAddrStr2, sizeof(aAddrStr2), false);
|
||||
str_format(aBuf, sizeof(aBuf), "ban_range %s %i %s", aAddrStr1, aAddrStr2, Min, pBan->m_Info.m_aReason);
|
||||
str_format(aBuf, sizeof(aBuf), "ban_range %s %s %i %s", aAddrStr1, aAddrStr2, Min, pBan->m_Info.m_aReason);
|
||||
io_write(File, aBuf, str_length(aBuf));
|
||||
io_write_newline(File);
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ public:
|
|||
m_aUserdir[0] = 0;
|
||||
}
|
||||
|
||||
int Init(const char *pApplicationName, int NumArgs, const char **ppArguments)
|
||||
int Init(const char *pApplicationName, int StorageType, int NumArgs, const char **ppArguments)
|
||||
{
|
||||
// get userdir
|
||||
fs_storage_path(pApplicationName, m_aUserdir, sizeof(m_aUserdir));
|
||||
|
@ -52,14 +52,17 @@ public:
|
|||
}
|
||||
|
||||
// add save directories
|
||||
if(m_NumPaths && (!m_aaStoragePaths[TYPE_SAVE][0] || !fs_makedir(m_aaStoragePaths[TYPE_SAVE])))
|
||||
if(StorageType != STORAGETYPE_BASIC && m_NumPaths && (!m_aaStoragePaths[TYPE_SAVE][0] || !fs_makedir(m_aaStoragePaths[TYPE_SAVE])))
|
||||
{
|
||||
char aPath[MAX_PATH_LENGTH];
|
||||
fs_makedir(GetPath(TYPE_SAVE, "screenshots", aPath, sizeof(aPath)));
|
||||
fs_makedir(GetPath(TYPE_SAVE, "screenshots/auto", aPath, sizeof(aPath)));
|
||||
fs_makedir(GetPath(TYPE_SAVE, "maps", aPath, sizeof(aPath)));
|
||||
if(StorageType == STORAGETYPE_CLIENT)
|
||||
{
|
||||
fs_makedir(GetPath(TYPE_SAVE, "screenshots", aPath, sizeof(aPath)));
|
||||
fs_makedir(GetPath(TYPE_SAVE, "screenshots/auto", aPath, sizeof(aPath)));
|
||||
fs_makedir(GetPath(TYPE_SAVE, "maps", aPath, sizeof(aPath)));
|
||||
fs_makedir(GetPath(TYPE_SAVE, "downloadedmaps", aPath, sizeof(aPath)));
|
||||
}
|
||||
fs_makedir(GetPath(TYPE_SAVE, "dumps", aPath, sizeof(aPath)));
|
||||
fs_makedir(GetPath(TYPE_SAVE, "downloadedmaps", aPath, sizeof(aPath)));
|
||||
fs_makedir(GetPath(TYPE_SAVE, "demos", aPath, sizeof(aPath)));
|
||||
fs_makedir(GetPath(TYPE_SAVE, "demos/auto", aPath, sizeof(aPath)));
|
||||
fs_makedir(GetPath(TYPE_SAVE, "ghosts", aPath, sizeof(aPath)));
|
||||
|
@ -378,10 +381,22 @@ public:
|
|||
return !fs_makedir(GetPath(Type, pFoldername, aBuffer, sizeof(aBuffer)));
|
||||
}
|
||||
|
||||
static IStorage *Create(const char *pApplicationName, int NumArgs, const char **ppArguments)
|
||||
virtual void GetCompletePath(int Type, const char *pDir, char *pBuffer, unsigned BufferSize)
|
||||
{
|
||||
if(Type < 0 || Type >= m_NumPaths)
|
||||
{
|
||||
if(BufferSize > 0)
|
||||
pBuffer[0] = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
GetPath(Type, pDir, pBuffer, BufferSize);
|
||||
}
|
||||
|
||||
static IStorage *Create(const char *pApplicationName, int StorageType, int NumArgs, const char **ppArguments)
|
||||
{
|
||||
CStorage *p = new CStorage();
|
||||
if(p && p->Init(pApplicationName, NumArgs, ppArguments))
|
||||
if(p && p->Init(pApplicationName, StorageType, NumArgs, ppArguments))
|
||||
{
|
||||
dbg_msg("storage", "initialisation failed");
|
||||
delete p;
|
||||
|
@ -391,4 +406,4 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
IStorage *CreateStorage(const char *pApplicationName, int NumArgs, const char **ppArguments) { return CStorage::Create(pApplicationName, NumArgs, ppArguments); }
|
||||
IStorage *CreateStorage(const char *pApplicationName, int StorageType, int NumArgs, const char **ppArguments) { return CStorage::Create(pApplicationName, StorageType, NumArgs, ppArguments); }
|
||||
|
|
|
@ -12,7 +12,11 @@ public:
|
|||
enum
|
||||
{
|
||||
TYPE_SAVE = 0,
|
||||
TYPE_ALL = -1
|
||||
TYPE_ALL = -1,
|
||||
|
||||
STORAGETYPE_BASIC = 0,
|
||||
STORAGETYPE_SERVER,
|
||||
STORAGETYPE_CLIENT,
|
||||
};
|
||||
|
||||
virtual void ListDirectory(int Type, const char *pPath, FS_LISTDIR_CALLBACK pfnCallback, void *pUser) = 0;
|
||||
|
@ -21,9 +25,10 @@ public:
|
|||
virtual bool RemoveFile(const char *pFilename, int Type) = 0;
|
||||
virtual bool RenameFile(const char* pOldFilename, const char* pNewFilename, int Type) = 0;
|
||||
virtual bool CreateFolder(const char *pFoldername, int Type) = 0;
|
||||
virtual void GetCompletePath(int Type, const char *pDir, char *pBuffer, unsigned BufferSize) = 0;
|
||||
};
|
||||
|
||||
extern IStorage *CreateStorage(const char *pApplicationName, int NumArgs, const char **ppArguments);
|
||||
extern IStorage *CreateStorage(const char *pApplicationName, int StorageType, int NumArgs, const char **ppArguments);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -43,6 +43,11 @@ void CChat::OnReset()
|
|||
m_PlaceholderOffset = 0;
|
||||
m_PlaceholderLength = 0;
|
||||
m_pHistoryEntry = 0x0;
|
||||
m_PendingChatCounter = 0;
|
||||
m_LastChatSend = 0;
|
||||
|
||||
for(int i = 0; i < CHAT_NUM; ++i)
|
||||
m_aLastSoundPlayed[i] = 0;
|
||||
}
|
||||
|
||||
void CChat::OnRelease()
|
||||
|
@ -109,9 +114,13 @@ bool CChat::OnInput(IInput::CEvent Event)
|
|||
{
|
||||
if(m_Input.GetString()[0])
|
||||
{
|
||||
Say(m_Mode == MODE_ALL ? 0 : 1, m_Input.GetString());
|
||||
char *pEntry = m_History.Allocate(m_Input.GetLength()+1);
|
||||
mem_copy(pEntry, m_Input.GetString(), m_Input.GetLength()+1);
|
||||
if(m_LastChatSend+time_freq() < time_get())
|
||||
Say(m_Mode == MODE_ALL ? 0 : 1, m_Input.GetString());
|
||||
else
|
||||
++m_PendingChatCounter;
|
||||
CHistoryEntry *pEntry = m_History.Allocate(sizeof(CHistoryEntry)+m_Input.GetLength());
|
||||
pEntry->m_Team = m_Mode == MODE_ALL ? 0 : 1;
|
||||
mem_copy(pEntry->m_aText, m_Input.GetString(), m_Input.GetLength()+1);
|
||||
}
|
||||
m_pHistoryEntry = 0x0;
|
||||
m_Mode = MODE_NONE;
|
||||
|
@ -201,26 +210,26 @@ bool CChat::OnInput(IInput::CEvent Event)
|
|||
}
|
||||
if(Event.m_Flags&IInput::FLAG_PRESS && Event.m_Key == KEY_UP)
|
||||
{
|
||||
if (m_pHistoryEntry)
|
||||
if(m_pHistoryEntry)
|
||||
{
|
||||
char *pTest = m_History.Prev(m_pHistoryEntry);
|
||||
CHistoryEntry *pTest = m_History.Prev(m_pHistoryEntry);
|
||||
|
||||
if (pTest)
|
||||
if(pTest)
|
||||
m_pHistoryEntry = pTest;
|
||||
}
|
||||
else
|
||||
m_pHistoryEntry = m_History.Last();
|
||||
|
||||
if (m_pHistoryEntry)
|
||||
m_Input.Set(m_pHistoryEntry);
|
||||
if(m_pHistoryEntry)
|
||||
m_Input.Set(m_pHistoryEntry->m_aText);
|
||||
}
|
||||
else if (Event.m_Flags&IInput::FLAG_PRESS && Event.m_Key == KEY_DOWN)
|
||||
{
|
||||
if (m_pHistoryEntry)
|
||||
if(m_pHistoryEntry)
|
||||
m_pHistoryEntry = m_History.Next(m_pHistoryEntry);
|
||||
|
||||
if (m_pHistoryEntry)
|
||||
m_Input.Set(m_pHistoryEntry);
|
||||
m_Input.Set(m_pHistoryEntry->m_aText);
|
||||
else
|
||||
m_Input.Clear();
|
||||
}
|
||||
|
@ -259,7 +268,8 @@ void CChat::OnMessage(int MsgType, void *pRawMsg)
|
|||
void CChat::AddLine(int ClientID, int Team, const char *pLine)
|
||||
{
|
||||
if(ClientID != -1 && (m_pClient->m_aClients[ClientID].m_aName[0] == '\0' || // unknown client
|
||||
m_pClient->m_aClients[ClientID].m_ChatIgnore))
|
||||
m_pClient->m_aClients[ClientID].m_ChatIgnore ||
|
||||
(m_pClient->m_Snap.m_LocalClientID != ClientID && g_Config.m_ClShowChatFriends && !m_pClient->m_aClients[ClientID].m_Friend)))
|
||||
return;
|
||||
|
||||
bool Highlighted = false;
|
||||
|
@ -324,16 +334,50 @@ void CChat::AddLine(int ClientID, int Team, const char *pLine)
|
|||
}
|
||||
|
||||
// play sound
|
||||
int64 Now = time_get();
|
||||
if(ClientID == -1)
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_GUI, SOUND_CHAT_SERVER, 0, vec2(0,0));
|
||||
{
|
||||
if(Now-m_aLastSoundPlayed[CHAT_SERVER] >= time_freq()*3/10)
|
||||
{
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_GUI, SOUND_CHAT_SERVER, 0);
|
||||
m_aLastSoundPlayed[CHAT_SERVER] = Now;
|
||||
}
|
||||
}
|
||||
else if(Highlighted)
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_GUI, SOUND_CHAT_HIGHLIGHT, 0, vec2(0.0f, 0.0f));
|
||||
{
|
||||
if(Now-m_aLastSoundPlayed[CHAT_HIGHLIGHT] >= time_freq()*3/10)
|
||||
{
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_GUI, SOUND_CHAT_CLIENT, 0);
|
||||
m_aLastSoundPlayed[CHAT_HIGHLIGHT] = Now;
|
||||
}
|
||||
}
|
||||
else
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_GUI, SOUND_CHAT_CLIENT, 0, vec2(0,0));
|
||||
{
|
||||
if(Now-m_aLastSoundPlayed[CHAT_CLIENT] >= time_freq()*3/10)
|
||||
{
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_GUI, SOUND_CHAT_HIGHLIGHT, 0);
|
||||
m_aLastSoundPlayed[CHAT_CLIENT] = Now;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CChat::OnRender()
|
||||
{
|
||||
// send pending chat messages
|
||||
if(m_PendingChatCounter > 0 && m_LastChatSend+time_freq() < time_get())
|
||||
{
|
||||
CHistoryEntry *pEntry = m_History.Last();
|
||||
for(int i = m_PendingChatCounter-1; pEntry; --i, pEntry = m_History.Prev(pEntry))
|
||||
{
|
||||
if(i == 0)
|
||||
{
|
||||
Say(pEntry->m_Team, pEntry->m_aText);
|
||||
break;
|
||||
}
|
||||
}
|
||||
--m_PendingChatCounter;
|
||||
}
|
||||
|
||||
float Width = 300.0f*Graphics()->ScreenAspect();
|
||||
Graphics()->MapScreen(0.0f, 0.0f, Width, 300.0f);
|
||||
float x = 5.0f;
|
||||
|
@ -459,9 +503,11 @@ void CChat::OnRender()
|
|||
|
||||
void CChat::Say(int Team, const char *pLine)
|
||||
{
|
||||
m_LastChatSend = time_get();
|
||||
|
||||
// send chat message
|
||||
CNetMsg_Cl_Say Msg;
|
||||
Msg.m_Team = Team;
|
||||
Msg.m_pMessage = pLine;
|
||||
Client()->SendPackMsg(&Msg, MSGFLAG_VITAL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,6 +36,11 @@ class CChat : public CComponent
|
|||
MODE_NONE=0,
|
||||
MODE_ALL,
|
||||
MODE_TEAM,
|
||||
|
||||
CHAT_SERVER=0,
|
||||
CHAT_HIGHLIGHT,
|
||||
CHAT_CLIENT,
|
||||
CHAT_NUM,
|
||||
};
|
||||
|
||||
int m_Mode;
|
||||
|
@ -47,8 +52,17 @@ class CChat : public CComponent
|
|||
char m_aCompletionBuffer[256];
|
||||
int m_PlaceholderOffset;
|
||||
int m_PlaceholderLength;
|
||||
char *m_pHistoryEntry;
|
||||
TStaticRingBuffer<char, 64*1024, CRingBufferBase::FLAG_RECYCLE> m_History;
|
||||
|
||||
struct CHistoryEntry
|
||||
{
|
||||
int m_Team;
|
||||
char m_aText[1];
|
||||
};
|
||||
CHistoryEntry *m_pHistoryEntry;
|
||||
TStaticRingBuffer<CHistoryEntry, 64*1024, CRingBufferBase::FLAG_RECYCLE> m_History;
|
||||
int m_PendingChatCounter;
|
||||
int64 m_LastChatSend;
|
||||
int64 m_aLastSoundPlayed[CHAT_NUM];
|
||||
|
||||
static void ConSay(IConsole::IResult *pResult, void *pUserData);
|
||||
static void ConSayTeam(IConsole::IResult *pResult, void *pUserData);
|
||||
|
|
|
@ -202,7 +202,7 @@ int CControls::SnapInput(int *pData)
|
|||
void CControls::OnRender()
|
||||
{
|
||||
// update target pos
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && !(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED || m_pClient->m_Snap.m_SpecInfo.m_Active))
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && !m_pClient->m_Snap.m_SpecInfo.m_Active)
|
||||
m_TargetPos = m_pClient->m_LocalCharacterPos + m_MousePos;
|
||||
else if(m_pClient->m_Snap.m_SpecInfo.m_Active && m_pClient->m_Snap.m_SpecInfo.m_UsePosition)
|
||||
m_TargetPos = m_pClient->m_Snap.m_SpecInfo.m_Position + m_MousePos;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <engine/console.h>
|
||||
#include <engine/graphics.h>
|
||||
#include <engine/storage.h>
|
||||
#include <engine/textrender.h>
|
||||
#include <engine/shared/config.h>
|
||||
#include <engine/shared/linereader.h>
|
||||
|
||||
|
@ -57,34 +58,57 @@ void CCountryFlags::LoadCountryflagsIndexfile()
|
|||
|
||||
// load the graphic file
|
||||
char aBuf[128];
|
||||
str_format(aBuf, sizeof(aBuf), "countryflags/%s.png", aOrigin);
|
||||
CImageInfo Info;
|
||||
if(!Graphics()->LoadPNG(&Info, aBuf, IStorage::TYPE_ALL))
|
||||
if(g_Config.m_ClLoadCountryFlags)
|
||||
{
|
||||
char aMsg[128];
|
||||
str_format(aMsg, sizeof(aMsg), "failed to load '%s'", aBuf);
|
||||
Console()->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "countryflags", aMsg);
|
||||
continue;
|
||||
str_format(aBuf, sizeof(aBuf), "countryflags/%s.png", aOrigin);
|
||||
if(!Graphics()->LoadPNG(&Info, aBuf, IStorage::TYPE_ALL))
|
||||
{
|
||||
char aMsg[128];
|
||||
str_format(aMsg, sizeof(aMsg), "failed to load '%s'", aBuf);
|
||||
Console()->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "countryflags", aMsg);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// add entry
|
||||
CCountryFlag CountryFlag;
|
||||
CountryFlag.m_CountryCode = CountryCode;
|
||||
str_copy(CountryFlag.m_aCountryCodeString, aOrigin, sizeof(CountryFlag.m_aCountryCodeString));
|
||||
CountryFlag.m_Texture = Graphics()->LoadTextureRaw(Info.m_Width, Info.m_Height, Info.m_Format, Info.m_pData, Info.m_Format, 0);
|
||||
mem_free(Info.m_pData);
|
||||
if(g_Config.m_ClLoadCountryFlags)
|
||||
{
|
||||
CountryFlag.m_Texture = Graphics()->LoadTextureRaw(Info.m_Width, Info.m_Height, Info.m_Format, Info.m_pData, Info.m_Format, 0);
|
||||
mem_free(Info.m_pData);
|
||||
}
|
||||
else
|
||||
CountryFlag.m_Texture = -1;
|
||||
if(g_Config.m_Debug)
|
||||
{
|
||||
str_format(aBuf, sizeof(aBuf), "loaded country flag '%s'", aOrigin);
|
||||
Console()->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "countryflags", aBuf);
|
||||
}
|
||||
m_aCountryFlags.add(CountryFlag);
|
||||
m_aCountryFlags.add_unsorted(CountryFlag);
|
||||
}
|
||||
io_close(File);
|
||||
m_aCountryFlags.sort_range();
|
||||
|
||||
mem_zero(m_CodeIndexLUT, sizeof(m_CodeIndexLUT));
|
||||
// find index of default item
|
||||
int DefaultIndex = 0, Index = 0;
|
||||
for(sorted_array<CCountryFlag>::range r = m_aCountryFlags.all(); !r.empty(); r.pop_front(), ++Index)
|
||||
if(r.front().m_CountryCode == -1)
|
||||
{
|
||||
DefaultIndex = Index;
|
||||
break;
|
||||
}
|
||||
|
||||
// init LUT
|
||||
if(DefaultIndex != 0)
|
||||
for(int i = 0; i < CODE_RANGE; ++i)
|
||||
m_CodeIndexLUT[i] = DefaultIndex;
|
||||
else
|
||||
mem_zero(m_CodeIndexLUT, sizeof(m_CodeIndexLUT));
|
||||
for(int i = 0; i < m_aCountryFlags.size(); ++i)
|
||||
m_CodeIndexLUT[max(0, (m_aCountryFlags[i].m_CountryCode-CODE_LB)%CODE_RANGE)] = i+1;
|
||||
m_CodeIndexLUT[max(0, (m_aCountryFlags[i].m_CountryCode-CODE_LB)%CODE_RANGE)] = i;
|
||||
}
|
||||
|
||||
void CCountryFlags::OnInit()
|
||||
|
@ -110,10 +134,31 @@ int CCountryFlags::Num() const
|
|||
|
||||
const CCountryFlags::CCountryFlag *CCountryFlags::GetByCountryCode(int CountryCode) const
|
||||
{
|
||||
return GetByIndex(m_CodeIndexLUT[max(0, (CountryCode-CODE_LB)%CODE_RANGE)]-1);
|
||||
return GetByIndex(m_CodeIndexLUT[max(0, (CountryCode-CODE_LB)%CODE_RANGE)]);
|
||||
}
|
||||
|
||||
const CCountryFlags::CCountryFlag *CCountryFlags::GetByIndex(int Index) const
|
||||
{
|
||||
return &m_aCountryFlags[max(0, Index%m_aCountryFlags.size())];
|
||||
}
|
||||
|
||||
void CCountryFlags::Render(int CountryCode, const vec4 *pColor, float x, float y, float w, float h)
|
||||
{
|
||||
const CCountryFlag *pFlag = GetByCountryCode(CountryCode);
|
||||
if(pFlag->m_Texture != -1)
|
||||
{
|
||||
Graphics()->TextureSet(pFlag->m_Texture);
|
||||
Graphics()->QuadsBegin();
|
||||
Graphics()->SetColor(pColor->r, pColor->g, pColor->b, pColor->a);
|
||||
IGraphics::CQuadItem QuadItem(x, y, w, h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
}
|
||||
else
|
||||
{
|
||||
CTextCursor Cursor;
|
||||
TextRender()->SetCursor(&Cursor, x, y, 10.0f, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END);
|
||||
Cursor.m_LineWidth = w;
|
||||
TextRender()->TextEx(&Cursor, pFlag->m_aCountryCodeString, -1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ public:
|
|||
int Num() const;
|
||||
const CCountryFlag *GetByCountryCode(int CountryCode) const;
|
||||
const CCountryFlag *GetByIndex(int Index) const;
|
||||
//int Find(int CountryCode) const;
|
||||
void Render(int CountryCode, const vec4 *pColor, float x, float y, float w, float h);
|
||||
|
||||
private:
|
||||
enum
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
||||
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
||||
#include <engine/demo.h>
|
||||
#include <engine/graphics.h>
|
||||
#include <game/generated/protocol.h>
|
||||
#include <game/generated/client_data.h>
|
||||
|
@ -46,11 +47,25 @@ void CDamageInd::Create(vec2 Pos, vec2 Dir)
|
|||
|
||||
void CDamageInd::OnRender()
|
||||
{
|
||||
|
||||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_GAME].m_Id);
|
||||
Graphics()->QuadsBegin();
|
||||
static float s_LastLocalTime = Client()->LocalTime();
|
||||
for(int i = 0; i < m_NumItems;)
|
||||
{
|
||||
if(Client()->State() == IClient::STATE_DEMOPLAYBACK)
|
||||
{
|
||||
const IDemoPlayer::CInfo *pInfo = DemoPlayer()->BaseInfo();
|
||||
if(pInfo->m_Paused)
|
||||
m_aItems[i].m_StartTime += Client()->LocalTime()-s_LastLocalTime;
|
||||
else
|
||||
m_aItems[i].m_StartTime += (Client()->LocalTime()-s_LastLocalTime)*(1.0f-pInfo->m_Speed);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED)
|
||||
m_aItems[i].m_StartTime += Client()->LocalTime()-s_LastLocalTime;
|
||||
}
|
||||
|
||||
float Life = 0.75f - (Client()->LocalTime() - m_aItems[i].m_StartTime);
|
||||
if(Life < 0.0f)
|
||||
DestroyI(&m_aItems[i]);
|
||||
|
@ -64,6 +79,7 @@ void CDamageInd::OnRender()
|
|||
i++;
|
||||
}
|
||||
}
|
||||
s_LastLocalTime = Client()->LocalTime();
|
||||
Graphics()->QuadsEnd();
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ void CEffects::AirJump(vec2 Pos)
|
|||
p.m_Pos = Pos + vec2(6.0f, 16.0f);
|
||||
m_pClient->m_pParticles->Add(CParticles::GROUP_GENERAL, &p);
|
||||
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_WORLD, SOUND_PLAYER_AIRJUMP, 1.0f, Pos);
|
||||
m_pClient->m_pSounds->PlayAt(CSounds::CHN_WORLD, SOUND_PLAYER_AIRJUMP, 1.0f, Pos);
|
||||
}
|
||||
|
||||
void CEffects::DamageIndicator(vec2 Pos, vec2 Dir)
|
||||
|
@ -150,7 +150,7 @@ void CEffects::PlayerSpawn(vec2 Pos)
|
|||
m_pClient->m_pParticles->Add(CParticles::GROUP_GENERAL, &p);
|
||||
|
||||
}
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_WORLD, SOUND_PLAYER_SPAWN, 1.0f, Pos);
|
||||
m_pClient->m_pSounds->PlayAt(CSounds::CHN_WORLD, SOUND_PLAYER_SPAWN, 1.0f, Pos);
|
||||
}
|
||||
|
||||
void CEffects::PlayerDeath(vec2 Pos, int ClientID)
|
||||
|
@ -245,7 +245,7 @@ void CEffects::HammerHit(vec2 Pos)
|
|||
p.m_EndSize = 0;
|
||||
p.m_Rot = frandom()*pi*2;
|
||||
m_pClient->m_pParticles->Add(CParticles::GROUP_EXPLOSIONS, &p);
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_WORLD, SOUND_HAMMER_HIT, 1.0f, Pos);
|
||||
m_pClient->m_pSounds->PlayAt(CSounds::CHN_WORLD, SOUND_HAMMER_HIT, 1.0f, Pos);
|
||||
}
|
||||
|
||||
void CEffects::OnRender()
|
||||
|
|
|
@ -111,14 +111,14 @@ void CEmoticon::OnRender()
|
|||
|
||||
m_WasActive = true;
|
||||
|
||||
if (length(m_SelectorMouse) > 140)
|
||||
m_SelectorMouse = normalize(m_SelectorMouse) * 140;
|
||||
if (length(m_SelectorMouse) > 170.0f)
|
||||
m_SelectorMouse = normalize(m_SelectorMouse) * 170.0f;
|
||||
|
||||
float SelectedAngle = GetAngle(m_SelectorMouse) + 2*pi/24;
|
||||
if (SelectedAngle < 0)
|
||||
SelectedAngle += 2*pi;
|
||||
|
||||
if (length(m_SelectorMouse) > 100)
|
||||
if (length(m_SelectorMouse) > 110.0f)
|
||||
m_SelectedEmote = (int)(SelectedAngle / (2*pi) * NUM_EMOTICONS);
|
||||
|
||||
CUIRect Screen = *UI()->Screen();
|
||||
|
@ -130,7 +130,7 @@ void CEmoticon::OnRender()
|
|||
Graphics()->TextureSet(-1);
|
||||
Graphics()->QuadsBegin();
|
||||
Graphics()->SetColor(0,0,0,0.3f);
|
||||
DrawCircle(Screen.w/2, Screen.h/2, 160, 64);
|
||||
DrawCircle(Screen.w/2, Screen.h/2, 190.0f, 64);
|
||||
Graphics()->QuadsEnd();
|
||||
|
||||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_EMOTICONS].m_Id);
|
||||
|
@ -144,10 +144,10 @@ void CEmoticon::OnRender()
|
|||
|
||||
bool Selected = m_SelectedEmote == i;
|
||||
|
||||
float Size = Selected ? 80 : 32;
|
||||
float Size = Selected ? 80.0f : 50.0f;
|
||||
|
||||
float NudgeX = 120 * cosf(Angle);
|
||||
float NudgeY = 120 * sinf(Angle);
|
||||
float NudgeX = 150.0f * cosf(Angle);
|
||||
float NudgeY = 150.0f * sinf(Angle);
|
||||
RenderTools()->SelectSprite(SPRITE_OOP + i);
|
||||
IGraphics::CQuadItem QuadItem(Screen.w/2 + NudgeX, Screen.h/2 + NudgeY, Size, Size);
|
||||
Graphics()->QuadsDraw(&QuadItem, 1);
|
||||
|
|
|
@ -72,6 +72,18 @@ void CHud::RenderGameTimer()
|
|||
}
|
||||
}
|
||||
|
||||
void CHud::RenderPauseNotification()
|
||||
{
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED &&
|
||||
!(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_GAMEOVER))
|
||||
{
|
||||
const char *pText = Localize("Game paused");
|
||||
float FontSize = 20.0f;
|
||||
float w = TextRender()->TextWidth(0, FontSize,pText, -1);
|
||||
TextRender()->Text(0, 150.0f*Graphics()->ScreenAspect()+-w/2.0f, 50.0f, FontSize, pText, -1);
|
||||
}
|
||||
}
|
||||
|
||||
void CHud::RenderSuddenDeath()
|
||||
{
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_SUDDENDEATH)
|
||||
|
@ -91,6 +103,7 @@ void CHud::RenderScoreHud()
|
|||
{
|
||||
int GameFlags = m_pClient->m_Snap.m_pGameInfoObj->m_GameFlags;
|
||||
float Whole = 300*Graphics()->ScreenAspect();
|
||||
float StartY = 229.0f;
|
||||
|
||||
if(GameFlags&GAMEFLAG_TEAMS && m_pClient->m_Snap.m_pGameDataObj)
|
||||
{
|
||||
|
@ -113,11 +126,11 @@ void CHud::RenderScoreHud()
|
|||
Graphics()->SetColor(1.0f, 0.0f, 0.0f, 0.25f);
|
||||
else
|
||||
Graphics()->SetColor(0.0f, 0.0f, 1.0f, 0.25f);
|
||||
RenderTools()->DrawRoundRectExt(Whole-ScoreWidthMax-ImageSize-2*Split, 245.0f+t*20, ScoreWidthMax+ImageSize+2*Split, 18.0f, 5.0f, CUI::CORNER_L);
|
||||
RenderTools()->DrawRoundRectExt(Whole-ScoreWidthMax-ImageSize-2*Split, StartY+t*20, ScoreWidthMax+ImageSize+2*Split, 18.0f, 5.0f, CUI::CORNER_L);
|
||||
Graphics()->QuadsEnd();
|
||||
|
||||
// draw score
|
||||
TextRender()->Text(0, Whole-ScoreWidthMax+(ScoreWidthMax-aScoreTeamWidth[t])/2-Split, 245.0f+t*20, 14.0f, aScoreTeam[t], -1);
|
||||
TextRender()->Text(0, Whole-ScoreWidthMax+(ScoreWidthMax-aScoreTeamWidth[t])/2-Split, StartY+t*20, 14.0f, aScoreTeam[t], -1);
|
||||
|
||||
if(GameFlags&GAMEFLAG_FLAGS)
|
||||
{
|
||||
|
@ -130,7 +143,7 @@ void CHud::RenderScoreHud()
|
|||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_GAME].m_Id);
|
||||
Graphics()->QuadsBegin();
|
||||
RenderTools()->SelectSprite(t==0?SPRITE_FLAG_RED:SPRITE_FLAG_BLUE);
|
||||
IGraphics::CQuadItem QuadItem(Whole-ScoreWidthMax-ImageSize, 246.0f+t*20, ImageSize/2, ImageSize);
|
||||
IGraphics::CQuadItem QuadItem(Whole-ScoreWidthMax-ImageSize, StartY+1.0f+t*20, ImageSize/2, ImageSize);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
}
|
||||
|
@ -139,16 +152,17 @@ void CHud::RenderScoreHud()
|
|||
// draw name of the flag holder
|
||||
int ID = FlagCarrier[t]%MAX_CLIENTS;
|
||||
const char *pName = m_pClient->m_aClients[ID].m_aName;
|
||||
float w = TextRender()->TextWidth(0, 10.0f, pName, -1);
|
||||
TextRender()->Text(0, Whole-ScoreWidthMax-ImageSize-3*Split-w, 247.0f+t*20, 10.0f, pName, -1);
|
||||
float w = TextRender()->TextWidth(0, 8.0f, pName, -1);
|
||||
TextRender()->Text(0, min(Whole-w-1.0f, Whole-ScoreWidthMax-ImageSize-2*Split), StartY+(t+1)*20.0f-3.0f, 8.0f, pName, -1);
|
||||
|
||||
// draw tee of the flag holder
|
||||
CTeeRenderInfo Info = m_pClient->m_aClients[ID].m_RenderInfo;
|
||||
Info.m_Size = 18.0f;
|
||||
RenderTools()->RenderTee(CAnimState::GetIdle(), &Info, EMOTE_NORMAL, vec2(1,0),
|
||||
vec2(Whole-ScoreWidthMax-Info.m_Size/2-Split, 246.0f+Info.m_Size/2+t*20));
|
||||
vec2(Whole-ScoreWidthMax-Info.m_Size/2-Split, StartY+1.0f+Info.m_Size/2+t*20));
|
||||
}
|
||||
}
|
||||
StartY += 8.0f;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -204,25 +218,33 @@ void CHud::RenderScoreHud()
|
|||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.25f);
|
||||
else
|
||||
Graphics()->SetColor(0.0f, 0.0f, 0.0f, 0.25f);
|
||||
RenderTools()->DrawRoundRectExt(Whole-ScoreWidthMax-ImageSize-2*Split-PosSize, 245.0f+t*20, ScoreWidthMax+ImageSize+2*Split+PosSize, 18.0f, 5.0f, CUI::CORNER_L);
|
||||
RenderTools()->DrawRoundRectExt(Whole-ScoreWidthMax-ImageSize-2*Split-PosSize, StartY+t*20, ScoreWidthMax+ImageSize+2*Split+PosSize, 18.0f, 5.0f, CUI::CORNER_L);
|
||||
Graphics()->QuadsEnd();
|
||||
|
||||
// draw score
|
||||
TextRender()->Text(0, Whole-ScoreWidthMax+(ScoreWidthMax-aScoreWidth[t])/2-Split, 245.0f+t*20, 14.0f, aScore[t], -1);
|
||||
TextRender()->Text(0, Whole-ScoreWidthMax+(ScoreWidthMax-aScoreWidth[t])/2-Split, StartY+t*20, 14.0f, aScore[t], -1);
|
||||
|
||||
// draw tee
|
||||
if(apPlayerInfo[t])
|
||||
{
|
||||
CTeeRenderInfo Info = m_pClient->m_aClients[apPlayerInfo[t]->m_ClientID].m_RenderInfo;
|
||||
// draw name
|
||||
int ID = apPlayerInfo[t]->m_ClientID;
|
||||
const char *pName = m_pClient->m_aClients[ID].m_aName;
|
||||
float w = TextRender()->TextWidth(0, 8.0f, pName, -1);
|
||||
TextRender()->Text(0, min(Whole-w-1.0f, Whole-ScoreWidthMax-ImageSize-2*Split-PosSize), StartY+(t+1)*20.0f-3.0f, 8.0f, pName, -1);
|
||||
|
||||
// draw tee
|
||||
CTeeRenderInfo Info = m_pClient->m_aClients[ID].m_RenderInfo;
|
||||
Info.m_Size = 18.0f;
|
||||
RenderTools()->RenderTee(CAnimState::GetIdle(), &Info, EMOTE_NORMAL, vec2(1,0),
|
||||
vec2(Whole-ScoreWidthMax-Info.m_Size/2-Split, 246.0f+Info.m_Size/2+t*20));
|
||||
vec2(Whole-ScoreWidthMax-Info.m_Size/2-Split, StartY+1.0f+Info.m_Size/2+t*20));
|
||||
}
|
||||
|
||||
// draw position
|
||||
char aBuf[32];
|
||||
str_format(aBuf, sizeof(aBuf), "%d.", aPos[t]);
|
||||
TextRender()->Text(0, Whole-ScoreWidthMax-ImageSize-Split-PosSize, 247.0f+t*20, 10.0f, aBuf, -1);
|
||||
TextRender()->Text(0, Whole-ScoreWidthMax-ImageSize-Split-PosSize, StartY+2.0f+t*20, 10.0f, aBuf, -1);
|
||||
|
||||
StartY += 8.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -456,6 +478,7 @@ void CHud::OnRender()
|
|||
}
|
||||
|
||||
RenderGameTimer();
|
||||
RenderPauseNotification();
|
||||
RenderSuddenDeath();
|
||||
RenderScoreHud();
|
||||
RenderWarmupTimer();
|
||||
|
|
|
@ -17,6 +17,7 @@ class CHud : public CComponent
|
|||
void RenderVoting();
|
||||
void RenderHealthAndAmmo(const CNetObj_Character *pCharacter);
|
||||
void RenderGameTimer();
|
||||
void RenderPauseNotification();
|
||||
void RenderSuddenDeath();
|
||||
void RenderScoreHud();
|
||||
void RenderSpectatorHud();
|
||||
|
|
|
@ -41,7 +41,10 @@ void CItems::RenderProjectile(const CNetObj_Projectile *pCurrent, int ItemID)
|
|||
Speed = m_pClient->m_Tuning.m_GunSpeed;
|
||||
}
|
||||
|
||||
float Ct = (Client()->PrevGameTick()-pCurrent->m_StartTick)/(float)SERVER_TICK_SPEED + Client()->GameTickTime();
|
||||
static float s_LastGameTickTime = Client()->GameTickTime();
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && !(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED))
|
||||
s_LastGameTickTime = Client()->GameTickTime();
|
||||
float Ct = (Client()->PrevGameTick()-pCurrent->m_StartTick)/(float)SERVER_TICK_SPEED + s_LastGameTickTime;
|
||||
if(Ct < 0)
|
||||
return; // projectile havn't been shot yet
|
||||
|
||||
|
@ -63,22 +66,23 @@ void CItems::RenderProjectile(const CNetObj_Projectile *pCurrent, int ItemID)
|
|||
if(pCurrent->m_Type == WEAPON_GRENADE)
|
||||
{
|
||||
m_pClient->m_pEffects->SmokeTrail(Pos, Vel*-1);
|
||||
static float s_Time = 0.0f;
|
||||
static float s_LastLocalTime = Client()->LocalTime();
|
||||
|
||||
if(Client()->State() == IClient::STATE_DEMOPLAYBACK)
|
||||
{
|
||||
const IDemoPlayer::CInfo *pInfo = DemoPlayer()->BaseInfo();
|
||||
static float Time = 0;
|
||||
static float LastLocalTime = Client()->LocalTime();
|
||||
|
||||
if(!pInfo->m_Paused)
|
||||
Time += (Client()->LocalTime()-LastLocalTime)*pInfo->m_Speed;
|
||||
|
||||
Graphics()->QuadsSetRotation(Time*pi*2*2 + ItemID);
|
||||
|
||||
LastLocalTime = Client()->LocalTime();
|
||||
s_Time += (Client()->LocalTime()-s_LastLocalTime)*pInfo->m_Speed;
|
||||
}
|
||||
else
|
||||
Graphics()->QuadsSetRotation(Client()->LocalTime()*pi*2*2 + ItemID);
|
||||
{
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && !(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED))
|
||||
s_Time += Client()->LocalTime()-s_LastLocalTime;
|
||||
}
|
||||
|
||||
Graphics()->QuadsSetRotation(s_Time*pi*2*2 + ItemID);
|
||||
s_LastLocalTime = Client()->LocalTime();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -130,26 +134,23 @@ void CItems::RenderPickup(const CNetObj_Pickup *pPrev, const CNetObj_Pickup *pCu
|
|||
|
||||
Graphics()->QuadsSetRotation(Angle);
|
||||
|
||||
static float s_Time = 0.0f;
|
||||
static float s_LastLocalTime = Client()->LocalTime();
|
||||
float Offset = Pos.y/32.0f + Pos.x/32.0f;
|
||||
if(Client()->State() == IClient::STATE_DEMOPLAYBACK)
|
||||
{
|
||||
const IDemoPlayer::CInfo *pInfo = DemoPlayer()->BaseInfo();
|
||||
static float Time = 0;
|
||||
static float LastLocalTime = Client()->LocalTime();
|
||||
|
||||
if(!pInfo->m_Paused)
|
||||
Time += (Client()->LocalTime()-LastLocalTime)*pInfo->m_Speed;
|
||||
|
||||
Pos.x += cosf(Time*2.0f+Offset)*2.5f;
|
||||
Pos.y += sinf(Time*2.0f+Offset)*2.5f;
|
||||
|
||||
LastLocalTime = Client()->LocalTime();
|
||||
s_Time += (Client()->LocalTime()-s_LastLocalTime)*pInfo->m_Speed;
|
||||
}
|
||||
else
|
||||
{
|
||||
Pos.x += cosf(Client()->LocalTime()*2.0f+Offset)*2.5f;
|
||||
Pos.y += sinf(Client()->LocalTime()*2.0f+Offset)*2.5f;
|
||||
}
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && !(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED))
|
||||
s_Time += Client()->LocalTime()-s_LastLocalTime;
|
||||
}
|
||||
Pos.x += cosf(s_Time*2.0f+Offset)*2.5f;
|
||||
Pos.y += sinf(s_Time*2.0f+Offset)*2.5f;
|
||||
s_LastLocalTime = Client()->LocalTime();
|
||||
RenderTools()->DrawSprite(Pos.x, Pos.y, Size);
|
||||
Graphics()->QuadsEnd();
|
||||
}
|
||||
|
|
|
@ -77,7 +77,8 @@ void CMapLayers::EnvelopeEval(float TimeOffset, int Env, float *pChannels, void
|
|||
|
||||
CMapItemEnvelope *pItem = (CMapItemEnvelope *)pThis->m_pLayers->Map()->GetItem(Start+Env, 0, 0);
|
||||
|
||||
static float Time = 0;
|
||||
static float s_Time = 0.0f;
|
||||
static float s_LastLocalTime = pThis->Client()->LocalTime();
|
||||
if(pThis->Client()->State() == IClient::STATE_DEMOPLAYBACK)
|
||||
{
|
||||
const IDemoPlayer::CInfo *pInfo = pThis->DemoPlayer()->BaseInfo();
|
||||
|
@ -90,25 +91,28 @@ void CMapLayers::EnvelopeEval(float TimeOffset, int Env, float *pChannels, void
|
|||
pThis->m_CurrentLocalTick = pInfo->m_CurrentTick;
|
||||
}
|
||||
|
||||
Time = mix(pThis->m_LastLocalTick / (float)pThis->Client()->GameTickSpeed(),
|
||||
s_Time = mix(pThis->m_LastLocalTick / (float)pThis->Client()->GameTickSpeed(),
|
||||
pThis->m_CurrentLocalTick / (float)pThis->Client()->GameTickSpeed(),
|
||||
pThis->Client()->IntraGameTick());
|
||||
}
|
||||
|
||||
pThis->RenderTools()->RenderEvalEnvelope(pPoints+pItem->m_StartPoint, pItem->m_NumPoints, 4, Time+TimeOffset, pChannels);
|
||||
pThis->RenderTools()->RenderEvalEnvelope(pPoints+pItem->m_StartPoint, pItem->m_NumPoints, 4, s_Time+TimeOffset, pChannels);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(pItem->m_Version < 2 || pItem->m_Synchronized)
|
||||
if(pThis->m_pClient->m_Snap.m_pGameInfoObj && !(pThis->m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED))
|
||||
{
|
||||
if(pThis->m_pClient->m_Snap.m_pGameInfoObj)
|
||||
Time = mix((pThis->Client()->PrevGameTick()-pThis->m_pClient->m_Snap.m_pGameInfoObj->m_RoundStartTick) / (float)pThis->Client()->GameTickSpeed(),
|
||||
if(pItem->m_Version < 2 || pItem->m_Synchronized)
|
||||
{
|
||||
s_Time = mix((pThis->Client()->PrevGameTick()-pThis->m_pClient->m_Snap.m_pGameInfoObj->m_RoundStartTick) / (float)pThis->Client()->GameTickSpeed(),
|
||||
(pThis->Client()->GameTick()-pThis->m_pClient->m_Snap.m_pGameInfoObj->m_RoundStartTick) / (float)pThis->Client()->GameTickSpeed(),
|
||||
pThis->Client()->IntraGameTick());
|
||||
}
|
||||
else
|
||||
s_Time += pThis->Client()->LocalTime()-s_LastLocalTime;
|
||||
}
|
||||
else
|
||||
Time = pThis->Client()->LocalTime();
|
||||
pThis->RenderTools()->RenderEvalEnvelope(pPoints+pItem->m_StartPoint, pItem->m_NumPoints, 4, Time+TimeOffset, pChannels);
|
||||
pThis->RenderTools()->RenderEvalEnvelope(pPoints+pItem->m_StartPoint, pItem->m_NumPoints, 4, s_Time+TimeOffset, pChannels);
|
||||
s_LastLocalTime = pThis->Client()->LocalTime();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -99,14 +99,16 @@ int CMenus::DoButton_Icon(int ImageId, int SpriteId, const CUIRect *pRect)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int CMenus::DoButton_Toggle(const void *pID, int Checked, const CUIRect *pRect)
|
||||
int CMenus::DoButton_Toggle(const void *pID, int Checked, const CUIRect *pRect, bool Active)
|
||||
{
|
||||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_GUIBUTTONS].m_Id);
|
||||
Graphics()->QuadsBegin();
|
||||
if(!Active)
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.5f);
|
||||
RenderTools()->SelectSprite(Checked?SPRITE_GUIBUTTON_ON:SPRITE_GUIBUTTON_OFF);
|
||||
IGraphics::CQuadItem QuadItem(pRect->x, pRect->y, pRect->w, pRect->h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
if((UI()->HotItem() == pID))
|
||||
if(UI()->HotItem() == pID && Active)
|
||||
{
|
||||
RenderTools()->SelectSprite(SPRITE_GUIBUTTON_HOVER);
|
||||
IGraphics::CQuadItem QuadItem(pRect->x, pRect->y, pRect->w, pRect->h);
|
||||
|
@ -114,7 +116,7 @@ int CMenus::DoButton_Toggle(const void *pID, int Checked, const CUIRect *pRect)
|
|||
}
|
||||
Graphics()->QuadsEnd();
|
||||
|
||||
return UI()->DoButtonLogic(pID, "", Checked, pRect);
|
||||
return Active ? UI()->DoButtonLogic(pID, "", Checked, pRect) : 0;
|
||||
}
|
||||
|
||||
int CMenus::DoButton_Menu(const void *pID, const char *pText, int Checked, const CUIRect *pRect)
|
||||
|
@ -1149,12 +1151,8 @@ int CMenus::Render()
|
|||
float OldWidth = Item.m_Rect.w;
|
||||
Item.m_Rect.w = Item.m_Rect.h*2;
|
||||
Item.m_Rect.x += (OldWidth-Item.m_Rect.w)/ 2.0f;
|
||||
Graphics()->TextureSet(pEntry->m_Texture);
|
||||
Graphics()->QuadsBegin();
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
IGraphics::CQuadItem QuadItem(Item.m_Rect.x, Item.m_Rect.y, Item.m_Rect.w, Item.m_Rect.h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
vec4 Color(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
m_pClient->m_pCountryFlags->Render(pEntry->m_CountryCode, &Color, Item.m_Rect.x, Item.m_Rect.y, Item.m_Rect.w, Item.m_Rect.h);
|
||||
UI()->DoLabel(&Label, pEntry->m_aCountryCodeString, 10.0f, 0);
|
||||
}
|
||||
}
|
||||
|
@ -1420,8 +1418,8 @@ void CMenus::OnStateChange(int NewState, int OldState)
|
|||
|
||||
if(NewState == IClient::STATE_OFFLINE)
|
||||
{
|
||||
if(OldState >= IClient::STATE_ONLINE)
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_MUSIC, SOUND_MENU, 1.0f, vec2(0, 0));
|
||||
if(OldState >= IClient::STATE_ONLINE && NewState < IClient::STATE_QUITING)
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_MUSIC, SOUND_MENU, 1.0f);
|
||||
m_Popup = POPUP_NONE;
|
||||
if(Client()->ErrorString() && Client()->ErrorString()[0] != 0)
|
||||
{
|
||||
|
|
|
@ -40,7 +40,7 @@ class CMenus : public CComponent
|
|||
|
||||
int DoButton_DemoPlayer(const void *pID, const char *pText, int Checked, const CUIRect *pRect);
|
||||
int DoButton_Sprite(const void *pID, int ImageID, int SpriteID, int Checked, const CUIRect *pRect, int Corners);
|
||||
int DoButton_Toggle(const void *pID, int Checked, const CUIRect *pRect);
|
||||
int DoButton_Toggle(const void *pID, int Checked, const CUIRect *pRect, bool Active);
|
||||
int DoButton_Menu(const void *pID, const char *pText, int Checked, const CUIRect *pRect);
|
||||
int DoButton_MenuTab(const void *pID, const char *pText, int Checked, const CUIRect *pRect, int Corners);
|
||||
|
||||
|
|
|
@ -567,12 +567,8 @@ void CMenus::RenderServerbrowserFilters(CUIRect View)
|
|||
float OldWidth = Rect.w;
|
||||
Rect.w = Rect.h*2;
|
||||
Rect.x += (OldWidth-Rect.w)/2.0f;
|
||||
Graphics()->TextureSet(m_pClient->m_pCountryFlags->GetByCountryCode(g_Config.m_BrFilterCountryIndex)->m_Texture);
|
||||
Graphics()->QuadsBegin();
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, g_Config.m_BrFilterCountry?1.0f: 0.5f);
|
||||
IGraphics::CQuadItem QuadItem(Rect.x, Rect.y, Rect.w, Rect.h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
vec4 Color(1.0f, 1.0f, 1.0f, g_Config.m_BrFilterCountry?1.0f: 0.5f);
|
||||
m_pClient->m_pCountryFlags->Render(g_Config.m_BrFilterCountryIndex, &Color, Rect.x, Rect.y, Rect.w, Rect.h);
|
||||
|
||||
if(g_Config.m_BrFilterCountry && UI()->DoButtonLogic(&g_Config.m_BrFilterCountryIndex, "", 0, &Rect))
|
||||
m_Popup = POPUP_COUNTRY;
|
||||
|
@ -766,12 +762,8 @@ void CMenus::RenderServerbrowserServerDetail(CUIRect View)
|
|||
TextRender()->TextEx(&Cursor, pClan, -1);
|
||||
|
||||
// flag
|
||||
Graphics()->TextureSet(m_pClient->m_pCountryFlags->GetByCountryCode(pSelectedServer->m_aClients[i].m_Country)->m_Texture);
|
||||
Graphics()->QuadsBegin();
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.5f);
|
||||
IGraphics::CQuadItem QuadItem(Flag.x, Flag.y, Flag.w, Flag.h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
vec4 Color(1.0f, 1.0f, 1.0f, 0.5f);
|
||||
m_pClient->m_pCountryFlags->Render(pSelectedServer->m_aClients[i].m_Country, &Color, Flag.x, Flag.y, Flag.w, Flag.h);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,15 +88,28 @@ void CMenus::RenderDemoPlayer(CUIRect MainView)
|
|||
void *id = &s_SeekBarID;
|
||||
char aBuffer[128];
|
||||
|
||||
// draw seek bar
|
||||
RenderTools()->DrawUIRect(&SeekBar, vec4(0,0,0,0.5f), CUI::CORNER_ALL, 5.0f);
|
||||
|
||||
// draw filled bar
|
||||
float Amount = CurrentTick/(float)TotalTicks;
|
||||
|
||||
CUIRect FilledBar = SeekBar;
|
||||
FilledBar.w = 10.0f + (FilledBar.w-10.0f)*Amount;
|
||||
|
||||
RenderTools()->DrawUIRect(&FilledBar, vec4(1,1,1,0.5f), CUI::CORNER_ALL, 5.0f);
|
||||
|
||||
// draw markers
|
||||
for(int i = 0; i < pInfo->m_NumTimelineMarkers; i++)
|
||||
{
|
||||
float Ratio = (pInfo->m_aTimelineMarkers[i]-pInfo->m_FirstTick) / (float)TotalTicks;
|
||||
Graphics()->TextureSet(-1);
|
||||
Graphics()->QuadsBegin();
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
IGraphics::CQuadItem QuadItem(SeekBar.x + (SeekBar.w-10.0f)*Ratio, SeekBar.y, UI()->PixelSize(), SeekBar.h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
}
|
||||
|
||||
// draw time
|
||||
str_format(aBuffer, sizeof(aBuffer), "%d:%02d / %d:%02d",
|
||||
CurrentTick/SERVER_TICK_SPEED/60, (CurrentTick/SERVER_TICK_SPEED)%60,
|
||||
TotalTicks/SERVER_TICK_SPEED/60, (TotalTicks/SERVER_TICK_SPEED)%60);
|
||||
|
|
|
@ -189,15 +189,18 @@ void CMenus::RenderPlayers(CUIRect MainView)
|
|||
ButtonBar.VSplitLeft(Width, &Button, &ButtonBar);
|
||||
Button.VSplitLeft((Width-Button.h)/4.0f, 0, &Button);
|
||||
Button.VSplitLeft(Button.h, &Button, 0);
|
||||
if(DoButton_Toggle(&s_aPlayerIDs[Index][0], m_pClient->m_aClients[Index].m_ChatIgnore, &Button))
|
||||
m_pClient->m_aClients[Index].m_ChatIgnore ^= 1;
|
||||
if(&g_Config.m_ClShowChatFriends && !m_pClient->m_aClients[Index].m_Friend)
|
||||
DoButton_Toggle(&s_aPlayerIDs[Index][0], 1, &Button, false);
|
||||
else
|
||||
if(DoButton_Toggle(&s_aPlayerIDs[Index][0], m_pClient->m_aClients[Index].m_ChatIgnore, &Button, true))
|
||||
m_pClient->m_aClients[Index].m_ChatIgnore ^= 1;
|
||||
|
||||
// friend button
|
||||
ButtonBar.VSplitLeft(20.0f, &Button, &ButtonBar);
|
||||
ButtonBar.VSplitLeft(Width, &Button, &ButtonBar);
|
||||
Button.VSplitLeft((Width-Button.h)/4.0f, 0, &Button);
|
||||
Button.VSplitLeft(Button.h, &Button, 0);
|
||||
if(DoButton_Toggle(&s_aPlayerIDs[Index][1], m_pClient->m_aClients[Index].m_Friend, &Button))
|
||||
if(DoButton_Toggle(&s_aPlayerIDs[Index][1], m_pClient->m_aClients[Index].m_Friend, &Button, true))
|
||||
{
|
||||
if(m_pClient->m_aClients[Index].m_Friend)
|
||||
m_pClient->Friends()->RemoveFriend(m_pClient->m_aClients[Index].m_aName, m_pClient->m_aClients[Index].m_aClan);
|
||||
|
|
|
@ -98,6 +98,12 @@ void CMenus::RenderSettingsGeneral(CUIRect MainView)
|
|||
if(DoButton_CheckBox(&g_Config.m_ClShowhud, Localize("Show ingame HUD"), g_Config.m_ClShowhud, &Button))
|
||||
g_Config.m_ClShowhud ^= 1;
|
||||
|
||||
// chat messages
|
||||
Left.HSplitTop(5.0f, 0, &Left);
|
||||
Left.HSplitTop(20.0f, &Button, &Left);
|
||||
if(DoButton_CheckBox(&g_Config.m_ClShowChatFriends, Localize("Show only chat messages from friends"), g_Config.m_ClShowChatFriends, &Button))
|
||||
g_Config.m_ClShowChatFriends ^= 1;
|
||||
|
||||
// name plates
|
||||
Right.HSplitTop(20.0f, &Button, &Right);
|
||||
if(DoButton_CheckBox(&g_Config.m_ClNameplates, Localize("Show name plates"), g_Config.m_ClNameplates, &Button))
|
||||
|
@ -223,13 +229,10 @@ void CMenus::RenderSettingsPlayer(CUIRect MainView)
|
|||
float OldWidth = Item.m_Rect.w;
|
||||
Item.m_Rect.w = Item.m_Rect.h*2;
|
||||
Item.m_Rect.x += (OldWidth-Item.m_Rect.w)/ 2.0f;
|
||||
Graphics()->TextureSet(pEntry->m_Texture);
|
||||
Graphics()->QuadsBegin();
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
IGraphics::CQuadItem QuadItem(Item.m_Rect.x, Item.m_Rect.y, Item.m_Rect.w, Item.m_Rect.h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
UI()->DoLabel(&Label, pEntry->m_aCountryCodeString, 10.0f, 0);
|
||||
vec4 Color(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
m_pClient->m_pCountryFlags->Render(pEntry->m_CountryCode, &Color, Item.m_Rect.x, Item.m_Rect.y, Item.m_Rect.w, Item.m_Rect.h);
|
||||
if(pEntry->m_Texture != -1)
|
||||
UI()->DoLabel(&Label, pEntry->m_aCountryCodeString, 10.0f, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -448,13 +451,14 @@ static CKeyInfo gs_aKeys[] =
|
|||
{ "Remote console", "toggle_remote_console", 0 },
|
||||
{ "Screenshot", "screenshot", 0 },
|
||||
{ "Scoreboard", "+scoreboard", 0 },
|
||||
{ "Respawn", "kill", 0 },
|
||||
};
|
||||
|
||||
/* This is for scripts/update_localization.py to work, don't remove!
|
||||
Localize("Move left");Localize("Move right");Localize("Jump");Localize("Fire");Localize("Hook");Localize("Hammer");
|
||||
Localize("Pistol");Localize("Shotgun");Localize("Grenade");Localize("Rifle");Localize("Next weapon");Localize("Prev. weapon");
|
||||
Localize("Vote yes");Localize("Vote no");Localize("Chat");Localize("Team chat");Localize("Show chat");Localize("Emoticon");
|
||||
Localize("Spectator mode");Localize("Spectate next");Localize("Spectate previous");Localize("Console");Localize("Remote console");Localize("Screenshot");Localize("Scoreboard");
|
||||
Localize("Spectator mode");Localize("Spectate next");Localize("Spectate previous");Localize("Console");Localize("Remote console");Localize("Screenshot");Localize("Scoreboard");Localize("Respawn");
|
||||
*/
|
||||
|
||||
const int g_KeyCount = sizeof(gs_aKeys) / sizeof(CKeyInfo);
|
||||
|
@ -594,7 +598,7 @@ void CMenus::RenderSettingsControls(CUIRect MainView)
|
|||
TextRender()->Text(0, MiscSettings.x, MiscSettings.y, 14.0f*UI()->Scale(), Localize("Miscellaneous"), -1);
|
||||
|
||||
MiscSettings.HSplitTop(14.0f+5.0f+10.0f, 0, &MiscSettings);
|
||||
UiDoGetButtons(17, 25, MiscSettings);
|
||||
UiDoGetButtons(17, 26, MiscSettings);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -765,7 +769,7 @@ void CMenus::RenderSettingsSound(CUIRect MainView)
|
|||
if(g_Config.m_SndEnable)
|
||||
{
|
||||
if(g_Config.m_SndMusic)
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_MUSIC, SOUND_MENU, 1.0f, vec2(0, 0));
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_MUSIC, SOUND_MENU, 1.0f);
|
||||
}
|
||||
else
|
||||
m_pClient->m_pSounds->Stop(SOUND_MENU);
|
||||
|
@ -780,7 +784,7 @@ void CMenus::RenderSettingsSound(CUIRect MainView)
|
|||
{
|
||||
g_Config.m_SndMusic ^= 1;
|
||||
if(g_Config.m_SndMusic)
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_MUSIC, SOUND_MENU, 1.0f, vec2(0, 0));
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_MUSIC, SOUND_MENU, 1.0f);
|
||||
else
|
||||
m_pClient->m_pSounds->Stop(SOUND_MENU);
|
||||
}
|
||||
|
@ -921,11 +925,8 @@ void CMenus::RenderLanguageSelection(CUIRect MainView)
|
|||
Item.m_Rect.VSplitLeft(Item.m_Rect.h*2.0f, &Rect, &Item.m_Rect);
|
||||
Rect.VMargin(6.0f, &Rect);
|
||||
Rect.HMargin(3.0f, &Rect);
|
||||
Graphics()->TextureSet(m_pClient->m_pCountryFlags->GetByCountryCode(r.front().m_CountryCode)->m_Texture);
|
||||
Graphics()->QuadsBegin();
|
||||
IGraphics::CQuadItem QuadItem(Rect.x, Rect.y, Rect.w, Rect.h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
vec4 Color(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
m_pClient->m_pCountryFlags->Render(r.front().m_CountryCode, &Color, Rect.x, Rect.y, Rect.w, Rect.h);
|
||||
Item.m_Rect.HSplitTop(2.0f, 0, &Item.m_Rect);
|
||||
UI()->DoLabelScaled(&Item.m_Rect, r.front().m_Name, 16.0f, -1);
|
||||
}
|
||||
|
|
|
@ -43,6 +43,11 @@ void CParticles::Add(int Group, CParticle *pPart)
|
|||
if(pInfo->m_Paused)
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED)
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_FirstFree == -1)
|
||||
return;
|
||||
|
@ -142,7 +147,10 @@ void CParticles::OnRender()
|
|||
Update((float)((t-LastTime)/(double)time_freq())*pInfo->m_Speed);
|
||||
}
|
||||
else
|
||||
Update((float)((t-LastTime)/(double)time_freq()));
|
||||
{
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && !(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED))
|
||||
Update((float)((t-LastTime)/(double)time_freq()));
|
||||
}
|
||||
|
||||
LastTime = t;
|
||||
}
|
||||
|
|
|
@ -98,30 +98,7 @@ void CPlayers::RenderHook(
|
|||
Player = *pPlayerChar;
|
||||
|
||||
CNetObj_PlayerInfo pInfo = *pPlayerInfo;
|
||||
CTeeRenderInfo RenderInfo = m_pClient->m_aClients[pInfo.m_ClientID].m_RenderInfo;
|
||||
|
||||
// check for teamplay modes
|
||||
bool IsTeamplay = false;
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj)
|
||||
IsTeamplay = (m_pClient->m_Snap.m_pGameInfoObj->m_GameFlags&GAMEFLAG_TEAMS) != 0;
|
||||
|
||||
// check for ninja
|
||||
if (Player.m_Weapon == WEAPON_NINJA)
|
||||
{
|
||||
// change the skin for the player to the ninja
|
||||
int Skin = m_pClient->m_pSkins->Find("x_ninja");
|
||||
if(Skin != -1)
|
||||
{
|
||||
if(IsTeamplay)
|
||||
RenderInfo.m_Texture = m_pClient->m_pSkins->Get(Skin)->m_ColorTexture;
|
||||
else
|
||||
{
|
||||
RenderInfo.m_Texture = m_pClient->m_pSkins->Get(Skin)->m_OrgTexture;
|
||||
RenderInfo.m_ColorBody = vec4(1,1,1,1);
|
||||
RenderInfo.m_ColorFeet = vec4(1,1,1,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
CTeeRenderInfo RenderInfo = m_aRenderInfo[pInfo.m_ClientID];
|
||||
|
||||
float IntraTick = Client()->IntraGameTick();
|
||||
|
||||
|
@ -221,31 +198,9 @@ void CPlayers::RenderPlayer(
|
|||
Player = *pPlayerChar;
|
||||
|
||||
CNetObj_PlayerInfo pInfo = *pPlayerInfo;
|
||||
CTeeRenderInfo RenderInfo = m_pClient->m_aClients[pInfo.m_ClientID].m_RenderInfo;
|
||||
CTeeRenderInfo RenderInfo = m_aRenderInfo[pInfo.m_ClientID];
|
||||
|
||||
// check for teamplay modes
|
||||
bool IsTeamplay = false;
|
||||
bool NewTick = m_pClient->m_NewTick;
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj)
|
||||
IsTeamplay = (m_pClient->m_Snap.m_pGameInfoObj->m_GameFlags&GAMEFLAG_TEAMS) != 0;
|
||||
|
||||
// check for ninja
|
||||
if (Player.m_Weapon == WEAPON_NINJA)
|
||||
{
|
||||
// change the skin for the player to the ninja
|
||||
int Skin = m_pClient->m_pSkins->Find("x_ninja");
|
||||
if(Skin != -1)
|
||||
{
|
||||
if(IsTeamplay)
|
||||
RenderInfo.m_Texture = m_pClient->m_pSkins->Get(Skin)->m_ColorTexture;
|
||||
else
|
||||
{
|
||||
RenderInfo.m_Texture = m_pClient->m_pSkins->Get(Skin)->m_OrgTexture;
|
||||
RenderInfo.m_ColorBody = vec4(1,1,1,1);
|
||||
RenderInfo.m_ColorFeet = vec4(1,1,1,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// set size
|
||||
RenderInfo.m_Size = 64.0f;
|
||||
|
@ -333,14 +288,17 @@ void CPlayers::RenderPlayer(
|
|||
else if(!WantOtherDir)
|
||||
State.Add(&g_pData->m_aAnimations[ANIM_WALK], WalkTime, 1.0f);
|
||||
|
||||
static float s_LastGameTickTime = Client()->GameTickTime();
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && !(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED))
|
||||
s_LastGameTickTime = Client()->GameTickTime();
|
||||
if (Player.m_Weapon == WEAPON_HAMMER)
|
||||
{
|
||||
float ct = (Client()->PrevGameTick()-Player.m_AttackTick)/(float)SERVER_TICK_SPEED + Client()->GameTickTime();
|
||||
float ct = (Client()->PrevGameTick()-Player.m_AttackTick)/(float)SERVER_TICK_SPEED + s_LastGameTickTime;
|
||||
State.Add(&g_pData->m_aAnimations[ANIM_HAMMER_SWING], clamp(ct*5.0f,0.0f,1.0f), 1.0f);
|
||||
}
|
||||
if (Player.m_Weapon == WEAPON_NINJA)
|
||||
{
|
||||
float ct = (Client()->PrevGameTick()-Player.m_AttackTick)/(float)SERVER_TICK_SPEED + Client()->GameTickTime();
|
||||
float ct = (Client()->PrevGameTick()-Player.m_AttackTick)/(float)SERVER_TICK_SPEED + s_LastGameTickTime;
|
||||
State.Add(&g_pData->m_aAnimations[ANIM_NINJA_SWING], clamp(ct*2.0f,0.0f,1.0f), 1.0f);
|
||||
}
|
||||
|
||||
|
@ -350,7 +308,7 @@ void CPlayers::RenderPlayer(
|
|||
static int64 SkidSoundTime = 0;
|
||||
if(time_get()-SkidSoundTime > time_freq()/10)
|
||||
{
|
||||
m_pClient->m_pSounds->Play(CSounds::CHN_WORLD, SOUND_PLAYER_SKID, 0.25f, Position);
|
||||
m_pClient->m_pSounds->PlayAt(CSounds::CHN_WORLD, SOUND_PLAYER_SKID, 0.25f, Position);
|
||||
SkidSoundTime = time_get();
|
||||
}
|
||||
|
||||
|
@ -412,15 +370,22 @@ void CPlayers::RenderPlayer(
|
|||
if ((Client()->GameTick()-Player.m_AttackTick) <= (SERVER_TICK_SPEED / 6) && g_pData->m_Weapons.m_aId[iw].m_NumSpriteMuzzles)
|
||||
{
|
||||
int IteX = rand() % g_pData->m_Weapons.m_aId[iw].m_NumSpriteMuzzles;
|
||||
static int s_LastIteX = IteX;
|
||||
if(Client()->State() == IClient::STATE_DEMOPLAYBACK)
|
||||
{
|
||||
static int s_LastIteX = IteX;
|
||||
const IDemoPlayer::CInfo *pInfo = DemoPlayer()->BaseInfo();
|
||||
if(pInfo->m_Paused)
|
||||
IteX = s_LastIteX;
|
||||
else
|
||||
s_LastIteX = IteX;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED)
|
||||
IteX = s_LastIteX;
|
||||
else
|
||||
s_LastIteX = IteX;
|
||||
}
|
||||
if(g_pData->m_Weapons.m_aId[iw].m_aSpriteMuzzles[IteX])
|
||||
{
|
||||
vec2 Dir = vec2(pPlayerChar->m_X,pPlayerChar->m_Y) - vec2(pPrevChar->m_X, pPrevChar->m_Y);
|
||||
|
@ -441,7 +406,11 @@ void CPlayers::RenderPlayer(
|
|||
{
|
||||
// TODO: should be an animation
|
||||
Recoil = 0;
|
||||
float a = (Client()->GameTick()-Player.m_AttackTick+IntraTick)/5.0f;
|
||||
static float s_LastIntraTick = IntraTick;
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && !(m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED))
|
||||
s_LastIntraTick = IntraTick;
|
||||
|
||||
float a = (Client()->GameTick()-Player.m_AttackTick+s_LastIntraTick)/5.0f;
|
||||
if(a < 1)
|
||||
Recoil = sinf(a*pi);
|
||||
p = Position + Dir * g_pData->m_Weapons.m_aId[iw].m_Offsetx - Dir*Recoil*10.0f;
|
||||
|
@ -463,6 +432,22 @@ void CPlayers::RenderPlayer(
|
|||
}
|
||||
|
||||
int IteX = rand() % g_pData->m_Weapons.m_aId[iw].m_NumSpriteMuzzles;
|
||||
static int s_LastIteX = IteX;
|
||||
if(Client()->State() == IClient::STATE_DEMOPLAYBACK)
|
||||
{
|
||||
const IDemoPlayer::CInfo *pInfo = DemoPlayer()->BaseInfo();
|
||||
if(pInfo->m_Paused)
|
||||
IteX = s_LastIteX;
|
||||
else
|
||||
s_LastIteX = IteX;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj && m_pClient->m_Snap.m_pGameInfoObj->m_GameStateFlags&GAMESTATEFLAG_PAUSED)
|
||||
IteX = s_LastIteX;
|
||||
else
|
||||
s_LastIteX = IteX;
|
||||
}
|
||||
if (Alpha > 0.0f && g_pData->m_Weapons.m_aId[iw].m_aSpriteMuzzles[IteX])
|
||||
{
|
||||
float OffsetY = -g_pData->m_Weapons.m_aId[iw].m_Muzzleoffsety;
|
||||
|
@ -549,6 +534,31 @@ void CPlayers::RenderPlayer(
|
|||
|
||||
void CPlayers::OnRender()
|
||||
{
|
||||
// update RenderInfo for ninja
|
||||
bool IsTeamplay = false;
|
||||
if(m_pClient->m_Snap.m_pGameInfoObj)
|
||||
IsTeamplay = (m_pClient->m_Snap.m_pGameInfoObj->m_GameFlags&GAMEFLAG_TEAMS) != 0;
|
||||
for(int i = 0; i < MAX_CLIENTS; ++i)
|
||||
{
|
||||
m_aRenderInfo[i] = m_pClient->m_aClients[i].m_RenderInfo;
|
||||
if(m_pClient->m_Snap.m_aCharacters[i].m_Cur.m_Weapon == WEAPON_NINJA)
|
||||
{
|
||||
// change the skin for the player to the ninja
|
||||
int Skin = m_pClient->m_pSkins->Find("x_ninja");
|
||||
if(Skin != -1)
|
||||
{
|
||||
if(IsTeamplay)
|
||||
m_aRenderInfo[i].m_Texture = m_pClient->m_pSkins->Get(Skin)->m_ColorTexture;
|
||||
else
|
||||
{
|
||||
m_aRenderInfo[i].m_Texture = m_pClient->m_pSkins->Get(Skin)->m_OrgTexture;
|
||||
m_aRenderInfo[i].m_ColorBody = vec4(1,1,1,1);
|
||||
m_aRenderInfo[i].m_ColorFeet = vec4(1,1,1,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// render other players in two passes, first pass we render the other, second pass we render our self
|
||||
for(int p = 0; p < 4; p++)
|
||||
{
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
class CPlayers : public CComponent
|
||||
{
|
||||
CTeeRenderInfo m_aRenderInfo[MAX_CLIENTS];
|
||||
void RenderHand(class CTeeRenderInfo *pInfo, vec2 CenterPos, vec2 Dir, float AngleOffset, vec2 PostRotOffset);
|
||||
void RenderPlayer(
|
||||
const CNetObj_Character *pPrevChar,
|
||||
|
|
|
@ -305,12 +305,9 @@ void CScoreboard::RenderScoreboard(float x, float y, float w, int Team, const ch
|
|||
TextRender()->TextEx(&Cursor, m_pClient->m_aClients[pInfo->m_ClientID].m_aClan, -1);
|
||||
|
||||
// country flag
|
||||
Graphics()->TextureSet(m_pClient->m_pCountryFlags->GetByCountryCode(m_pClient->m_aClients[pInfo->m_ClientID].m_Country)->m_Texture);
|
||||
Graphics()->QuadsBegin();
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 0.5f);
|
||||
IGraphics::CQuadItem QuadItem(CountryOffset, y+(Spacing+TeeSizeMod*5.0f)/2.0f, CountryLength, LineHeight-Spacing-TeeSizeMod*5.0f);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
vec4 Color(1.0f, 1.0f, 1.0f, 0.5f);
|
||||
m_pClient->m_pCountryFlags->Render(m_pClient->m_aClients[pInfo->m_ClientID].m_Country, &Color,
|
||||
CountryOffset, y+(Spacing+TeeSizeMod*5.0f)/2.0f, CountryLength, LineHeight-Spacing-TeeSizeMod*5.0f);
|
||||
|
||||
// ping
|
||||
str_format(aBuf, sizeof(aBuf), "%d", clamp(pInfo->m_Latency, 0, 1000));
|
||||
|
|
|
@ -37,6 +37,30 @@ static int LoadSoundsThread(void *pUser)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CSounds::GetSampleId(int SetId)
|
||||
{
|
||||
if(!g_Config.m_SndEnable || !Sound()->IsSoundEnabled() || m_WaitForSoundJob || SetId < 0 || SetId >= g_pData->m_NumSounds)
|
||||
return -1;
|
||||
|
||||
CDataSoundset *pSet = &g_pData->m_aSounds[SetId];
|
||||
if(!pSet->m_NumSounds)
|
||||
return -1;
|
||||
|
||||
if(pSet->m_NumSounds == 1)
|
||||
return pSet->m_aSounds[0].m_Id;
|
||||
|
||||
// return random one
|
||||
int Id;
|
||||
do
|
||||
{
|
||||
Id = rand() % pSet->m_NumSounds;
|
||||
}
|
||||
while(Id == pSet->m_Last);
|
||||
pSet->m_Last = Id;
|
||||
return pSet->m_aSounds[Id].m_Id;
|
||||
}
|
||||
|
||||
void CSounds::OnInit()
|
||||
{
|
||||
// setup sound channels
|
||||
|
@ -101,7 +125,7 @@ void CSounds::OnRender()
|
|||
int64 Now = time_get();
|
||||
if(m_QueueWaitTime <= Now)
|
||||
{
|
||||
Play(m_aQueue[0].m_Channel, m_aQueue[0].m_SetId, 1.0f, vec2(0,0));
|
||||
Play(m_aQueue[0].m_Channel, m_aQueue[0].m_SetId, 1.0f);
|
||||
m_QueueWaitTime = Now+time_freq()*3/10; // wait 300ms before playing the next one
|
||||
if(--m_QueuePos > 0)
|
||||
mem_move(m_aQueue, m_aQueue+1, m_QueuePos*sizeof(QueueEntry));
|
||||
|
@ -135,38 +159,39 @@ void CSounds::PlayAndRecord(int Chn, int SetId, float Vol, vec2 Pos)
|
|||
Msg.m_SoundID = SetId;
|
||||
Client()->SendPackMsg(&Msg, MSGFLAG_NOSEND|MSGFLAG_RECORD);
|
||||
|
||||
Play(Chn, SetId, Vol, Pos);
|
||||
Play(Chn, SetId, Vol);
|
||||
}
|
||||
|
||||
void CSounds::Play(int Chn, int SetId, float Vol, vec2 Pos)
|
||||
void CSounds::Play(int Chn, int SetId, float Vol)
|
||||
{
|
||||
if(!g_Config.m_SndEnable || !Sound()->IsSoundEnabled() || (Chn == CHN_MUSIC && !g_Config.m_SndMusic) || m_WaitForSoundJob || SetId < 0 || SetId >= g_pData->m_NumSounds)
|
||||
if(Chn == CHN_MUSIC && !g_Config.m_SndMusic)
|
||||
return;
|
||||
|
||||
CDataSoundset *pSet = &g_pData->m_aSounds[SetId];
|
||||
|
||||
if(!pSet->m_NumSounds)
|
||||
int SampleId = GetSampleId(SetId);
|
||||
if(SampleId == -1)
|
||||
return;
|
||||
|
||||
int Flags = 0;
|
||||
if(Chn == CHN_MUSIC)
|
||||
Flags = ISound::FLAG_LOOP;
|
||||
|
||||
if(pSet->m_NumSounds == 1)
|
||||
{
|
||||
Sound()->PlayAt(Chn, pSet->m_aSounds[0].m_Id, Flags, Pos.x, Pos.y);
|
||||
return;
|
||||
}
|
||||
Sound()->Play(Chn, SampleId, Flags);
|
||||
}
|
||||
|
||||
// play a random one
|
||||
int Id;
|
||||
do
|
||||
{
|
||||
Id = rand() % pSet->m_NumSounds;
|
||||
}
|
||||
while(Id == pSet->m_Last);
|
||||
Sound()->PlayAt(Chn, pSet->m_aSounds[Id].m_Id, Flags, Pos.x, Pos.y);
|
||||
pSet->m_Last = Id;
|
||||
void CSounds::PlayAt(int Chn, int SetId, float Vol, vec2 Pos)
|
||||
{
|
||||
if(Chn == CHN_MUSIC && !g_Config.m_SndMusic)
|
||||
return;
|
||||
|
||||
int SampleId = GetSampleId(SetId);
|
||||
if(SampleId == -1)
|
||||
return;
|
||||
|
||||
int Flags = 0;
|
||||
if(Chn == CHN_MUSIC)
|
||||
Flags = ISound::FLAG_LOOP;
|
||||
|
||||
Sound()->PlayAt(Chn, SampleId, Flags, Pos.x, Pos.y);
|
||||
}
|
||||
|
||||
void CSounds::Stop(int SetId)
|
||||
|
|
|
@ -19,6 +19,8 @@ class CSounds : public CComponent
|
|||
int64 m_QueueWaitTime;
|
||||
class CJob m_SoundJob;
|
||||
bool m_WaitForSoundJob;
|
||||
|
||||
int GetSampleId(int SetId);
|
||||
|
||||
public:
|
||||
// sound channels
|
||||
|
@ -37,7 +39,8 @@ public:
|
|||
|
||||
void ClearQueue();
|
||||
void Enqueue(int Channel, int SetId);
|
||||
void Play(int Channel, int SetId, float Vol, vec2 Pos);
|
||||
void Play(int Channel, int SetId, float Vol);
|
||||
void PlayAt(int Channel, int SetId, float Vol, vec2 Pos);
|
||||
void PlayAndRecord(int Channel, int SetId, float Vol, vec2 Pos);
|
||||
void Stop(int SetId);
|
||||
};
|
||||
|
|
|
@ -473,7 +473,7 @@ void CGameClient::OnRender()
|
|||
m_NewPredictedTick = false;
|
||||
|
||||
// check if client info has to be resent
|
||||
if(m_LastSendInfo && Client()->State() == IClient::STATE_ONLINE && !m_pMenus->IsActive() && m_LastSendInfo+time_freq()*5 < time_get())
|
||||
if(m_LastSendInfo && Client()->State() == IClient::STATE_ONLINE && m_Snap.m_LocalClientID >= 0 && !m_pMenus->IsActive() && m_LastSendInfo+time_freq()*5 < time_get())
|
||||
{
|
||||
// resend if client info differs
|
||||
if(str_comp(g_Config.m_PlayerName, m_aClients[m_Snap.m_LocalClientID].m_aName) ||
|
||||
|
@ -575,7 +575,7 @@ void CGameClient::OnMessage(int MsgId, CUnpacker *pUnpacker)
|
|||
pMsg->m_SoundID == SOUND_CTF_GRAB_PL)
|
||||
g_GameClient.m_pSounds->Enqueue(CSounds::CHN_GLOBAL, pMsg->m_SoundID);
|
||||
else
|
||||
g_GameClient.m_pSounds->Play(CSounds::CHN_GLOBAL, pMsg->m_SoundID, 1.0f, vec2(0,0));
|
||||
g_GameClient.m_pSounds->Play(CSounds::CHN_GLOBAL, pMsg->m_SoundID, 1.0f);
|
||||
}
|
||||
else if(MsgId == NETMSGTYPE_CL_TEAMSSTATE)
|
||||
{
|
||||
|
@ -679,7 +679,7 @@ void CGameClient::ProcessEvents()
|
|||
else if(Item.m_Type == NETEVENTTYPE_SOUNDWORLD)
|
||||
{
|
||||
CNetEvent_SoundWorld *ev = (CNetEvent_SoundWorld *)pData;
|
||||
g_GameClient.m_pSounds->Play(CSounds::CHN_WORLD, ev->m_SoundID, 1.0f, vec2(ev->m_X, ev->m_Y));
|
||||
g_GameClient.m_pSounds->PlayAt(CSounds::CHN_WORLD, ev->m_SoundID, 1.0f, vec2(ev->m_X, ev->m_Y));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -946,6 +946,15 @@ void CGameClient::OnNewSnapshot()
|
|||
m_ServerMode = SERVERMODE_PUREMOD;
|
||||
}
|
||||
|
||||
// add tuning to demo
|
||||
if(DemoRecorder()->IsRecording() && mem_comp(&StandardTuning, &m_Tuning, sizeof(CTuningParams)) != 0)
|
||||
{
|
||||
CMsgPacker Msg(NETMSGTYPE_SV_TUNEPARAMS);
|
||||
int *pParams = (int *)&m_Tuning;
|
||||
for(unsigned i = 0; i < sizeof(m_Tuning)/sizeof(int); i++)
|
||||
Msg.AddInt(pParams[i]);
|
||||
Client()->SendMsg(&Msg, MSGFLAG_RECORD|MSGFLAG_NOSEND);
|
||||
}
|
||||
if(!m_DDRaceMsgSent && m_Snap.m_pLocalInfo)
|
||||
{
|
||||
CNetMsg_Cl_IsDDRace Msg;
|
||||
|
|
|
@ -74,6 +74,11 @@ CUIRect *CUI::Screen()
|
|||
return &m_Screen;
|
||||
}
|
||||
|
||||
float CUI::PixelSize()
|
||||
{
|
||||
return Screen()->w/Graphics()->ScreenWidth();
|
||||
}
|
||||
|
||||
void CUI::SetScale(float s)
|
||||
{
|
||||
g_Config.m_UiScale = (int)(s*100.0f);
|
||||
|
|
|
@ -82,6 +82,7 @@ public:
|
|||
void ConvertMouseMove(float *x, float *y);
|
||||
|
||||
CUIRect *Screen();
|
||||
float PixelSize();
|
||||
void ClipEnable(const CUIRect *pRect);
|
||||
void ClipDisable();
|
||||
|
||||
|
|
|
@ -223,7 +223,6 @@ void CEditor::EnvelopeEval(float TimeOffset, int Env, float *pChannels, void *pU
|
|||
|
||||
// copied from gc_menu.cpp, should be more generalized
|
||||
//extern int ui_do_edit_box(void *id, const CUIRect *rect, char *str, int str_size, float font_size, bool hidden=false);
|
||||
|
||||
int CEditor::DoEditBox(void *pID, const CUIRect *pRect, char *pStr, unsigned StrSize, float FontSize, float *Offset, bool Hidden, int Corners)
|
||||
{
|
||||
int Inside = UI()->MouseInside(pRect);
|
||||
|
@ -237,6 +236,7 @@ int CEditor::DoEditBox(void *pID, const CUIRect *pRect, char *pStr, unsigned Str
|
|||
|
||||
if(UI()->LastActiveItem() == pID)
|
||||
{
|
||||
m_EditBoxActive = 2;
|
||||
int Len = str_length(pStr);
|
||||
if(Len == 0)
|
||||
s_AtIndex = 0;
|
||||
|
@ -1015,7 +1015,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
|||
// refocus button
|
||||
TB_Bottom.VSplitLeft(50.0f, &Button, &TB_Bottom);
|
||||
static int s_RefocusButton = 0;
|
||||
if(DoButton_Editor(&s_RefocusButton, "Refocus", m_WorldOffsetX&&m_WorldOffsetY?0:-1, &Button, 0, "[HOME] Restore map focus") || Input()->KeyDown(KEY_HOME))
|
||||
if(DoButton_Editor(&s_RefocusButton, "Refocus", m_WorldOffsetX&&m_WorldOffsetY?0:-1, &Button, 0, "[HOME] Restore map focus") || (m_EditBoxActive == 0 && Input()->KeyDown(KEY_HOME)))
|
||||
{
|
||||
m_WorldOffsetX = 0;
|
||||
m_WorldOffsetY = 0;
|
||||
|
@ -1706,6 +1706,12 @@ void CEditor::DoMapEditor(CUIRect View, CUIRect ToolBar)
|
|||
pT->ShowInfo();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// fix aspect ratio of the image in the picker
|
||||
float Max = min(View.w, View.h);
|
||||
View.w = View.h = Max;
|
||||
}
|
||||
|
||||
static void *s_pEditorID = (void *)&s_pEditorID;
|
||||
int Inside = UI()->MouseInside(&View);
|
||||
|
@ -2030,7 +2036,7 @@ void CEditor::DoMapEditor(CUIRect View, CUIRect ToolBar)
|
|||
}
|
||||
}
|
||||
|
||||
if(GetSelectedGroup() && GetSelectedGroup()->m_UseClipping)
|
||||
if(!m_ShowPicker && GetSelectedGroup() && GetSelectedGroup()->m_UseClipping)
|
||||
{
|
||||
CLayerGroup *g = m_Map.m_pGameGroup;
|
||||
g->MapScreen();
|
||||
|
@ -2738,11 +2744,12 @@ void CEditor::RenderImages(CUIRect ToolBox, CUIRect ToolBar, CUIRect View)
|
|||
r.h *= m_Map.m_lImages[i]->m_Height/Max;
|
||||
Graphics()->TextureSet(m_Map.m_lImages[i]->m_TexID);
|
||||
Graphics()->BlendNormal();
|
||||
Graphics()->WrapClamp();
|
||||
Graphics()->QuadsBegin();
|
||||
IGraphics::CQuadItem QuadItem(r.x, r.y, r.w, r.h);
|
||||
Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
Graphics()->QuadsEnd();
|
||||
|
||||
Graphics()->WrapNormal();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2839,11 +2846,13 @@ void CEditor::RenderFileDialog()
|
|||
RenderTools()->DrawUIRect(&View, vec4(0,0,0,0.75f), CUI::CORNER_ALL, 5.0f);
|
||||
View.Margin(10.0f, &View);
|
||||
|
||||
CUIRect Title, FileBox, FileBoxLabel, ButtonBar, Scroll;
|
||||
CUIRect Title, FileBox, FileBoxLabel, ButtonBar, Scroll, PathBox;
|
||||
View.HSplitTop(18.0f, &Title, &View);
|
||||
View.HSplitTop(5.0f, 0, &View); // some spacing
|
||||
View.HSplitBottom(14.0f, &View, &ButtonBar);
|
||||
View.HSplitBottom(10.0f, &View, 0); // some spacing
|
||||
View.HSplitBottom(14.0f, &View, &PathBox);
|
||||
View.HSplitBottom(5.0f, &View, 0); // some spacing
|
||||
View.HSplitBottom(14.0f, &View, &FileBox);
|
||||
FileBox.VSplitLeft(55.0f, &FileBoxLabel, &FileBox);
|
||||
View.HSplitBottom(10.0f, &View, 0); // some spacing
|
||||
|
@ -2854,6 +2863,15 @@ void CEditor::RenderFileDialog()
|
|||
Title.VMargin(10.0f, &Title);
|
||||
UI()->DoLabel(&Title, m_pFileDialogTitle, 12.0f, -1, -1);
|
||||
|
||||
// pathbox
|
||||
char aPath[128], aBuf[128];
|
||||
if(m_FilesSelectedIndex != -1)
|
||||
Storage()->GetCompletePath(m_FileList[m_FilesSelectedIndex].m_StorageType, m_pFileDialogPath, aPath, sizeof(aPath));
|
||||
else
|
||||
aPath[0] = 0;
|
||||
str_format(aBuf, sizeof(aBuf), "Current path: %s", aPath);
|
||||
UI()->DoLabel(&PathBox, aBuf, 10.0f, -1, -1);
|
||||
|
||||
// filebox
|
||||
if(m_FileDialogStorageType == IStorage::TYPE_SAVE)
|
||||
{
|
||||
|
@ -2950,6 +2968,7 @@ void CEditor::RenderFileDialog()
|
|||
static int s_OkButton = 0;
|
||||
static int s_CancelButton = 0;
|
||||
static int s_NewFolderButton = 0;
|
||||
static int s_MapInfoButton = 0;
|
||||
|
||||
CUIRect Button;
|
||||
ButtonBar.VSplitRight(50.0f, &ButtonBar, &Button);
|
||||
|
@ -3025,6 +3044,22 @@ void CEditor::RenderFileDialog()
|
|||
UI()->SetActiveItem(0);
|
||||
}
|
||||
}
|
||||
|
||||
if(m_FileDialogStorageType == IStorage::TYPE_SAVE)
|
||||
{
|
||||
ButtonBar.VSplitLeft(40.0f, 0, &ButtonBar);
|
||||
ButtonBar.VSplitLeft(70.0f, &Button, &ButtonBar);
|
||||
if(DoButton_Editor(&s_MapInfoButton, "Map details", 0, &Button, 0, 0))
|
||||
{
|
||||
str_copy(m_Map.m_MapInfo.m_aAuthorTmp, m_Map.m_MapInfo.m_aAuthor, sizeof(m_Map.m_MapInfo.m_aAuthorTmp));
|
||||
str_copy(m_Map.m_MapInfo.m_aVersionTmp, m_Map.m_MapInfo.m_aVersion, sizeof(m_Map.m_MapInfo.m_aVersionTmp));
|
||||
str_copy(m_Map.m_MapInfo.m_aCreditsTmp, m_Map.m_MapInfo.m_aCredits, sizeof(m_Map.m_MapInfo.m_aCreditsTmp));
|
||||
str_copy(m_Map.m_MapInfo.m_aLicenseTmp, m_Map.m_MapInfo.m_aLicense, sizeof(m_Map.m_MapInfo.m_aLicenseTmp));
|
||||
static int s_MapInfoPopupID = 0;
|
||||
UiInvokePopupMenu(&s_MapInfoPopupID, 0, Width/2.0f-200.0f, Height/2.0f-100.0f, 400.0f, 200.0f, PopupMapInfo);
|
||||
UI()->SetActiveItem(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CEditor::FilelistPopulate(int StorageType)
|
||||
|
@ -3656,10 +3691,15 @@ void CEditor::RenderMenubar(CUIRect MenuBar)
|
|||
(void)0;
|
||||
*/
|
||||
|
||||
CUIRect Info;
|
||||
MenuBar.VSplitLeft(40.0f, 0, &MenuBar);
|
||||
MenuBar.VSplitLeft(MenuBar.w*0.75f, &MenuBar, &Info);
|
||||
char aBuf[128];
|
||||
str_format(aBuf, sizeof(aBuf), "File: %s", m_aFileName);
|
||||
UI()->DoLabel(&MenuBar, aBuf, 10.0f, -1, -1);
|
||||
|
||||
str_format(aBuf, sizeof(aBuf), "Z: %i, A: %.1f, G: %i", m_ZoomLevel, m_AnimateSpeed, m_GridFactor);
|
||||
UI()->DoLabel(&Info, aBuf, 10.0f, 1, -1);
|
||||
}
|
||||
|
||||
void CEditor::Render()
|
||||
|
@ -3675,6 +3715,9 @@ void CEditor::Render()
|
|||
// reset tip
|
||||
m_pTooltip = 0;
|
||||
|
||||
if(m_EditBoxActive)
|
||||
--m_EditBoxActive;
|
||||
|
||||
// render checker
|
||||
RenderBackground(View, ms_CheckerTexture, 32.0f, 1.0f);
|
||||
|
||||
|
@ -3940,6 +3983,8 @@ void CEditorMap::Clean()
|
|||
m_lEnvelopes.delete_all();
|
||||
m_lImages.delete_all();
|
||||
|
||||
m_MapInfo.Reset();
|
||||
|
||||
m_pGameLayer = 0x0;
|
||||
m_pGameGroup = 0x0;
|
||||
|
||||
|
|
|
@ -276,6 +276,34 @@ public:
|
|||
array<CEditorImage*> m_lImages;
|
||||
array<CEnvelope*> m_lEnvelopes;
|
||||
|
||||
class CMapInfo
|
||||
{
|
||||
public:
|
||||
char m_aAuthorTmp[32];
|
||||
char m_aVersionTmp[16];
|
||||
char m_aCreditsTmp[128];
|
||||
char m_aLicenseTmp[32];
|
||||
|
||||
char m_aAuthor[32];
|
||||
char m_aVersion[16];
|
||||
char m_aCredits[128];
|
||||
char m_aLicense[32];
|
||||
|
||||
void Reset()
|
||||
{
|
||||
m_aAuthorTmp[0] = 0;
|
||||
m_aVersionTmp[0] = 0;
|
||||
m_aCreditsTmp[0] = 0;
|
||||
m_aLicenseTmp[0] = 0;
|
||||
|
||||
m_aAuthor[0] = 0;
|
||||
m_aVersion[0] = 0;
|
||||
m_aCredits[0] = 0;
|
||||
m_aLicense[0] = 0;
|
||||
}
|
||||
};
|
||||
CMapInfo m_MapInfo;
|
||||
|
||||
class CLayerGame *m_pGameLayer;
|
||||
CLayerGroup *m_pGameGroup;
|
||||
|
||||
|
@ -497,6 +525,7 @@ public:
|
|||
|
||||
m_Mode = MODE_LAYERS;
|
||||
m_Dialog = 0;
|
||||
m_EditBoxActive = 0;
|
||||
m_pTooltip = 0;
|
||||
|
||||
m_GridActive = false;
|
||||
|
@ -599,6 +628,7 @@ public:
|
|||
|
||||
int m_Mode;
|
||||
int m_Dialog;
|
||||
int m_EditBoxActive;
|
||||
const char *m_pTooltip;
|
||||
|
||||
bool m_GridActive;
|
||||
|
@ -740,6 +770,7 @@ public:
|
|||
static int PopupQuad(CEditor *pEditor, CUIRect View);
|
||||
static int PopupPoint(CEditor *pEditor, CUIRect View);
|
||||
static int PopupNewFolder(CEditor *pEditor, CUIRect View);
|
||||
static int PopupMapInfo(CEditor *pEditor, CUIRect View);
|
||||
static int PopupEvent(CEditor *pEditor, CUIRect View);
|
||||
static int PopupSelectImage(CEditor *pEditor, CUIRect View);
|
||||
static int PopupSelectGametileOp(CEditor *pEditor, CUIRect View);
|
||||
|
|
|
@ -223,6 +223,31 @@ int CEditorMap::Save(class IStorage *pStorage, const char *pFileName)
|
|||
df.AddItem(MAPITEMTYPE_VERSION, 0, sizeof(Item), &Item);
|
||||
}
|
||||
|
||||
// save map info
|
||||
{
|
||||
CMapItemInfo Item;
|
||||
Item.m_Version = 1;
|
||||
|
||||
if(m_MapInfo.m_aAuthor[0])
|
||||
Item.m_Author = df.AddData(str_length(m_MapInfo.m_aAuthor)+1, m_MapInfo.m_aAuthor);
|
||||
else
|
||||
Item.m_Author = -1;
|
||||
if(m_MapInfo.m_aVersion[0])
|
||||
Item.m_MapVersion = df.AddData(str_length(m_MapInfo.m_aVersion)+1, m_MapInfo.m_aVersion);
|
||||
else
|
||||
Item.m_MapVersion = -1;
|
||||
if(m_MapInfo.m_aCredits[0])
|
||||
Item.m_Credits = df.AddData(str_length(m_MapInfo.m_aCredits)+1, m_MapInfo.m_aCredits);
|
||||
else
|
||||
Item.m_Credits = -1;
|
||||
if(m_MapInfo.m_aLicense[0])
|
||||
Item.m_License = df.AddData(str_length(m_MapInfo.m_aLicense)+1, m_MapInfo.m_aLicense);
|
||||
else
|
||||
Item.m_License = -1;
|
||||
|
||||
df.AddItem(MAPITEMTYPE_INFO, 0, sizeof(Item), &Item);
|
||||
}
|
||||
|
||||
// save images
|
||||
for(int i = 0; i < m_lImages.size(); i++)
|
||||
{
|
||||
|
@ -462,6 +487,22 @@ int CEditorMap::Load(class IStorage *pStorage, const char *pFileName, int Storag
|
|||
{
|
||||
//editor.reset(false);
|
||||
|
||||
// load map info
|
||||
{
|
||||
CMapItemInfo *pItem = (CMapItemInfo *)DataFile.FindItem(MAPITEMTYPE_INFO, 0);
|
||||
if(pItem && pItem->m_Version == 1)
|
||||
{
|
||||
if(pItem->m_Author > -1)
|
||||
str_copy(m_MapInfo.m_aAuthor, (char *)DataFile.GetData(pItem->m_Author), sizeof(m_MapInfo.m_aAuthor));
|
||||
if(pItem->m_MapVersion > -1)
|
||||
str_copy(m_MapInfo.m_aVersion, (char *)DataFile.GetData(pItem->m_MapVersion), sizeof(m_MapInfo.m_aVersion));
|
||||
if(pItem->m_Credits > -1)
|
||||
str_copy(m_MapInfo.m_aCredits, (char *)DataFile.GetData(pItem->m_Credits), sizeof(m_MapInfo.m_aCredits));
|
||||
if(pItem->m_License > -1)
|
||||
str_copy(m_MapInfo.m_aLicense, (char *)DataFile.GetData(pItem->m_License), sizeof(m_MapInfo.m_aLicense));
|
||||
}
|
||||
}
|
||||
|
||||
// load images
|
||||
{
|
||||
int Start, Num;
|
||||
|
|
|
@ -285,6 +285,8 @@ void CLayerTiles::FillSelection(bool Empty, CLayer *pBrush, CUIRect Rect)
|
|||
if(m_Readonly)
|
||||
return;
|
||||
|
||||
Snap(&Rect);
|
||||
|
||||
int sx = ConvertX(Rect.x);
|
||||
int sy = ConvertY(Rect.y);
|
||||
int w = ConvertX(Rect.w);
|
||||
|
@ -292,9 +294,9 @@ void CLayerTiles::FillSelection(bool Empty, CLayer *pBrush, CUIRect Rect)
|
|||
|
||||
CLayerTiles *pLt = static_cast<CLayerTiles*>(pBrush);
|
||||
|
||||
for(int y = 0; y <= h; y++)
|
||||
for(int y = 0; y < h; y++)
|
||||
{
|
||||
for(int x = 0; x <= w; x++)
|
||||
for(int x = 0; x < w; x++)
|
||||
{
|
||||
int fx = x+sx;
|
||||
int fy = y+sy;
|
||||
|
|
|
@ -713,6 +713,74 @@ int CEditor::PopupNewFolder(CEditor *pEditor, CUIRect View)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int CEditor::PopupMapInfo(CEditor *pEditor, CUIRect View)
|
||||
{
|
||||
CUIRect Label, ButtonBar, Button;
|
||||
|
||||
// title
|
||||
View.HSplitTop(10.0f, 0, &View);
|
||||
View.HSplitTop(30.0f, &Label, &View);
|
||||
pEditor->UI()->DoLabel(&Label, "Map details", 20.0f, 0);
|
||||
|
||||
View.HSplitBottom(10.0f, &View, 0);
|
||||
View.HSplitBottom(20.0f, &View, &ButtonBar);
|
||||
|
||||
View.VMargin(40.0f, &View);
|
||||
|
||||
// author box
|
||||
View.HSplitTop(20.0f, &Label, &View);
|
||||
pEditor->UI()->DoLabel(&Label, "Author:", 10.0f, -1);
|
||||
Label.VSplitLeft(40.0f, 0, &Button);
|
||||
Button.HSplitTop(12.0f, &Button, 0);
|
||||
static float s_AuthorBox = 0;
|
||||
pEditor->DoEditBox(&s_AuthorBox, &Button, pEditor->m_Map.m_MapInfo.m_aAuthorTmp, sizeof(pEditor->m_Map.m_MapInfo.m_aAuthorTmp), 10.0f, &s_AuthorBox);
|
||||
|
||||
// version box
|
||||
View.HSplitTop(20.0f, &Label, &View);
|
||||
pEditor->UI()->DoLabel(&Label, "Version:", 10.0f, -1);
|
||||
Label.VSplitLeft(40.0f, 0, &Button);
|
||||
Button.HSplitTop(12.0f, &Button, 0);
|
||||
static float s_VersionBox = 0;
|
||||
pEditor->DoEditBox(&s_VersionBox, &Button, pEditor->m_Map.m_MapInfo.m_aVersionTmp, sizeof(pEditor->m_Map.m_MapInfo.m_aVersionTmp), 10.0f, &s_VersionBox);
|
||||
|
||||
// credits box
|
||||
View.HSplitTop(20.0f, &Label, &View);
|
||||
pEditor->UI()->DoLabel(&Label, "Credits:", 10.0f, -1);
|
||||
Label.VSplitLeft(40.0f, 0, &Button);
|
||||
Button.HSplitTop(12.0f, &Button, 0);
|
||||
static float s_CreditsBox = 0;
|
||||
pEditor->DoEditBox(&s_CreditsBox, &Button, pEditor->m_Map.m_MapInfo.m_aCreditsTmp, sizeof(pEditor->m_Map.m_MapInfo.m_aCreditsTmp), 10.0f, &s_CreditsBox);
|
||||
|
||||
// license box
|
||||
View.HSplitTop(20.0f, &Label, &View);
|
||||
pEditor->UI()->DoLabel(&Label, "License:", 10.0f, -1);
|
||||
Label.VSplitLeft(40.0f, 0, &Button);
|
||||
Button.HSplitTop(12.0f, &Button, 0);
|
||||
static float s_LicenseBox = 0;
|
||||
pEditor->DoEditBox(&s_LicenseBox, &Button, pEditor->m_Map.m_MapInfo.m_aLicenseTmp, sizeof(pEditor->m_Map.m_MapInfo.m_aLicenseTmp), 10.0f, &s_LicenseBox);
|
||||
|
||||
// button bar
|
||||
ButtonBar.VSplitLeft(30.0f, 0, &ButtonBar);
|
||||
ButtonBar.VSplitLeft(110.0f, &Label, &ButtonBar);
|
||||
static int s_CreateButton = 0;
|
||||
if(pEditor->DoButton_Editor(&s_CreateButton, "Save", 0, &Label, 0, 0))
|
||||
{
|
||||
str_copy(pEditor->m_Map.m_MapInfo.m_aAuthor, pEditor->m_Map.m_MapInfo.m_aAuthorTmp, sizeof(pEditor->m_Map.m_MapInfo.m_aAuthor));
|
||||
str_copy(pEditor->m_Map.m_MapInfo.m_aVersion, pEditor->m_Map.m_MapInfo.m_aVersionTmp, sizeof(pEditor->m_Map.m_MapInfo.m_aVersion));
|
||||
str_copy(pEditor->m_Map.m_MapInfo.m_aCredits, pEditor->m_Map.m_MapInfo.m_aCreditsTmp, sizeof(pEditor->m_Map.m_MapInfo.m_aCredits));
|
||||
str_copy(pEditor->m_Map.m_MapInfo.m_aLicense, pEditor->m_Map.m_MapInfo.m_aLicenseTmp, sizeof(pEditor->m_Map.m_MapInfo.m_aLicense));
|
||||
return 1;
|
||||
}
|
||||
|
||||
ButtonBar.VSplitRight(30.0f, &ButtonBar, 0);
|
||||
ButtonBar.VSplitRight(110.0f, &ButtonBar, &Label);
|
||||
static int s_AbortButton = 0;
|
||||
if(pEditor->DoButton_Editor(&s_AbortButton, "Abort", 0, &Label, 0, 0))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CEditor::PopupEvent(CEditor *pEditor, CUIRect View)
|
||||
{
|
||||
CUIRect Label, ButtonBar;
|
||||
|
@ -820,13 +888,14 @@ int CEditor::PopupSelectImage(CEditor *pEditor, CUIRect View)
|
|||
ImageView.w *= pEditor->m_Map.m_lImages[ShowImage]->m_Width/Max;
|
||||
ImageView.h *= pEditor->m_Map.m_lImages[ShowImage]->m_Height/Max;
|
||||
pEditor->Graphics()->TextureSet(pEditor->m_Map.m_lImages[ShowImage]->m_TexID);
|
||||
pEditor->Graphics()->BlendNormal();
|
||||
pEditor->Graphics()->WrapClamp();
|
||||
pEditor->Graphics()->QuadsBegin();
|
||||
IGraphics::CQuadItem QuadItem(ImageView.x, ImageView.y, ImageView.w, ImageView.h);
|
||||
pEditor->Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
pEditor->Graphics()->QuadsEnd();
|
||||
pEditor->Graphics()->WrapNormal();
|
||||
}
|
||||
else
|
||||
pEditor->Graphics()->TextureSet(-1);
|
||||
pEditor->Graphics()->QuadsBegin();
|
||||
IGraphics::CQuadItem QuadItem(ImageView.x, ImageView.y, ImageView.w, ImageView.h);
|
||||
pEditor->Graphics()->QuadsDrawTL(&QuadItem, 1);
|
||||
pEditor->Graphics()->QuadsEnd();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -188,6 +188,15 @@ public:
|
|||
unsigned char m_Reserved;
|
||||
};
|
||||
|
||||
struct CMapItemInfo
|
||||
{
|
||||
int m_Version;
|
||||
int m_Author;
|
||||
int m_MapVersion;
|
||||
int m_Credits;
|
||||
int m_License;
|
||||
} ;
|
||||
|
||||
struct CMapItemImage
|
||||
{
|
||||
int m_Version;
|
||||
|
|
|
@ -730,6 +730,20 @@ void CCharacter::TickDefered()
|
|||
}
|
||||
}
|
||||
|
||||
void CCharacter::TickPaused()
|
||||
{
|
||||
++m_AttackTick;
|
||||
++m_DamageTakenTick;
|
||||
++m_Ninja.m_ActivationTick;
|
||||
++m_ReckoningTick;
|
||||
if(m_LastAction != -1)
|
||||
++m_LastAction;
|
||||
if(m_aWeapons[m_ActiveWeapon].m_AmmoRegenStart > -1)
|
||||
++m_aWeapons[m_ActiveWeapon].m_AmmoRegenStart;
|
||||
if(m_EmoteStop > -1)
|
||||
++m_EmoteStop;
|
||||
}
|
||||
|
||||
bool CCharacter::IncreaseHealth(int Amount)
|
||||
{
|
||||
if(m_Health >= 10)
|
||||
|
|
|
@ -32,6 +32,7 @@ public:
|
|||
virtual void Destroy();
|
||||
virtual void Tick();
|
||||
virtual void TickDefered();
|
||||
virtual void TickPaused();
|
||||
virtual void Snap(int SnappingClient);
|
||||
|
||||
bool IsGrounded();
|
||||
|
|
|
@ -24,6 +24,13 @@ void CFlag::Reset()
|
|||
m_GrabTick = 0;
|
||||
}
|
||||
|
||||
void CFlag::TickPaused()
|
||||
{
|
||||
++m_DropTick;
|
||||
if(m_GrabTick)
|
||||
++m_GrabTick;
|
||||
}
|
||||
|
||||
void CFlag::Snap(int SnappingClient)
|
||||
{
|
||||
if(NetworkClipped(SnappingClient))
|
||||
|
|
|
@ -22,6 +22,7 @@ public:
|
|||
CFlag(CGameWorld *pGameWorld, int Team);
|
||||
|
||||
virtual void Reset();
|
||||
virtual void TickPaused();
|
||||
virtual void Snap(int SnappingClient);
|
||||
};
|
||||
|
||||
|
|
|
@ -136,6 +136,11 @@ void CLaser::Tick()
|
|||
DoBounce();
|
||||
}
|
||||
|
||||
void CLaser::TickPaused()
|
||||
{
|
||||
++m_EvalTick;
|
||||
}
|
||||
|
||||
void CLaser::Snap(int SnappingClient)
|
||||
{
|
||||
if(NetworkClipped(SnappingClient))
|
||||
|
|
|
@ -12,6 +12,7 @@ public:
|
|||
|
||||
virtual void Reset();
|
||||
virtual void Tick();
|
||||
virtual void TickPaused();
|
||||
virtual void Snap(int SnappingClient);
|
||||
|
||||
protected:
|
||||
|
|
|
@ -139,6 +139,12 @@ void CPickup::Tick()
|
|||
}
|
||||
}
|
||||
|
||||
void CPickup::TickPaused()
|
||||
{
|
||||
/*if(m_SpawnTick != -1)
|
||||
++m_SpawnTick;*/
|
||||
}
|
||||
|
||||
void CPickup::Snap(int SnappingClient)
|
||||
{
|
||||
/*if(m_SpawnTick != -1 || NetworkClipped(SnappingClient))
|
||||
|
|
|
@ -14,6 +14,7 @@ public:
|
|||
|
||||
virtual void Reset();
|
||||
virtual void Tick();
|
||||
virtual void TickPaused();
|
||||
virtual void Snap(int SnappingClient);
|
||||
|
||||
private:
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue