2058 Commits
1.0 ... 1.4-rc1

Author SHA1 Message Date
Benau
29067b2be0 Release 1.4-rc1 2022-09-19 11:46:28 +08:00
Benau
fdc4a19e1a Copy debug symbols for android build 2022-09-19 11:28:44 +08:00
Benau
4f0b9644a8 Update download assets size 2022-09-19 11:23:44 +08:00
Benau
0b405a8642 Update translation and AppData file 2022-09-19 10:35:12 +08:00
Benau
bf0db0497b Don't throw when missing texture during ondemand loading
It can happen when the texture is deleted later
2022-09-19 10:24:55 +08:00
Benau
25540fc6a7 Add CMAKE_BUILD_TYPE=Release when building shaderc 2022-09-19 09:51:00 +08:00
Benau
7a1706834f Default to opengl render for arm64 windows
The opengl compatibility pack is pre-installed on
arm64 windows according to a user
2022-09-19 00:12:51 +08:00
Benau
dd6768911d Build for armv7 windows
No installer as armv7 windows has no x86 emulation
2022-09-18 23:54:44 +08:00
Benau
f270b4acf8 Add particle rendering in vulkan 2022-09-18 11:31:06 +08:00
Benau
4d79ccdea5 Add different texture per draw call for billboard 2022-09-18 10:54:22 +08:00
Benau
50c22a5837 Use real transparent shader first in vulkan draw call 2022-09-18 08:18:47 +08:00
Benau
7199409de4 Fix vulkan projection matrix 2022-09-17 16:26:10 +08:00
Benau
53351257fc Use vertex color alpha to draw translucently 2022-09-16 11:15:36 +08:00
Benau
a36276811e Fix missing vertex color in gles2 driver
Also make sure all vertex colors are applied after colorization is done
2022-09-16 10:58:17 +08:00
Benau
b77160527c Fix texture matrix for gles2 driver 2022-09-15 09:01:55 +08:00
Benau
16173207ee Add colorization support for gles2 driver 2022-09-15 08:30:24 +08:00
Benau
9947c87fe1 Fix #4795 2022-09-15 01:11:14 +08:00
Benau
787d157933 Add billboard rendering in vulkan 2022-09-14 16:19:38 +08:00
Benau
b1fa45437f Add dedicated skybox textures folder 2022-09-13 14:23:04 +08:00
Benau
9804416a82 Fix transparent shader drawing order
Use the same order like current engine
2022-09-12 13:38:01 +08:00
Benau
bf8a411f01 Always use GESPMBuffer for GEVulkanDrawCall::m_materials key 2022-09-12 13:14:05 +08:00
Benau
23470bbde2 Add custom vertex color to instance data 2022-09-12 11:07:22 +08:00
Benau
48730d1db4 Add billboard text rendering in vulkan 2022-09-12 10:56:39 +08:00
Benau
7cc238e101 Remove friend class in GE::GESPMBuffer 2022-09-11 15:04:38 +08:00
Benau
76c39afd8b Add colorization for vulkan 2022-09-11 11:05:33 +08:00
Benau
d3ddcd884d Fix broken splitscreen network when no track selection screen 2022-09-11 09:16:19 +08:00
Benau
8eb8c6392e Don't spam logging about missing rewinder 2022-09-11 00:47:34 +08:00
Benau
f1fdc98779 Always send (empty if applicable) kart data to ensure forward compatibility 2022-09-11 00:41:21 +08:00
Benau
ebd380c0bc Allow using real addon karts in networking 2022-09-10 15:49:21 +08:00
Benau
39e3c189da Make it possible to enable kart exhaust in legacy device 2022-09-09 10:25:33 +08:00
Benau
e52a9dce59 Fix particle xml after code change 2022-09-09 10:08:54 +08:00
Benau
dcad21b830 Use uniform rendering code for particle rendering
1. Remove pow in shader and do srgb conversion in code

2. Fix setGreen and setBlue order

3. Multiply particle color first like vertex color in the other shaders

4. Fix incorrect smoothstep
2022-09-09 09:41:32 +08:00
Benau
155b73d452 Remove unneeded pow in transparent.frag
It's only used in 2d rendering so no srgb sampling is needed
2022-09-08 15:24:40 +08:00
Benau
efcdd79d42 Fix missing snowflake in icy soccer field
It used to work in 1.2 because the top of the invisible wall was
not covered, which will affect height map calculation. Now we
ignore physics only objects when doing the height map calculation.
2022-09-07 13:53:08 +08:00
Benau
4207714352 Use GE::GERenderInfo to draw ghost kart and ctf flag in vulkan 2022-09-06 15:46:05 +08:00
Benau
885e08c559 Fix ghost kart missing for non-colorizable kart 2022-09-06 09:54:07 +08:00
Benau
2d0c945dd8 Move RenderInfo class to GE 2022-09-05 16:22:04 +08:00
Benau
647988ad30 Load colorization data for vulkan 2022-09-05 13:39:02 +08:00
Benau
5252c78a05 Fix crash when getActiveCamera is used after rendering scene 2022-09-05 09:54:42 +08:00
Benau
4335d95215 Preload icon materials to avoid hang when firstly insert item 2022-09-04 11:37:09 +08:00
Benau
9a7e2f6c39 Simplify m_icon_node handling in item class
Item::handleNewMesh already creates new m_icon_node everytime
2022-09-04 11:12:07 +08:00
Benau
79bf026c74 Don't check for descriptor indexing properties on non-apple devices
Some drivers (like ivybridge on linux) report incorrect values and
make graphics pipeline creation crash later
2022-09-04 09:05:00 +08:00
Benau
90453e6128 Update AppData file game screenshots url 2022-09-04 08:35:32 +08:00
Benau
d93b5d3b8d Fix hang when switching kart in selection screen for vulkan 2022-09-03 12:04:44 +08:00
Benau
784b77723c Add missing vkCmdBindDescriptorSets for supportsBindMeshTexturesAtOnce 2022-09-03 10:30:54 +08:00
Benau
b0b9f44aeb Always use stable_sort to avoid flickering with alpha blending 2022-09-03 09:27:06 +08:00
Benau
d55eb56d78 Fix logic error in GEVulkanTexture::getTextureData 2022-09-02 19:37:37 +08:00
Benau
1eb19e5e13 Allow changing texture compression setting without restarting stk 2022-09-02 10:04:10 +08:00
Benau
caf9fb448b Take BPTC into account for texture compression support 2022-09-02 09:12:05 +08:00
Benau
0b4bf178d7 Add texture matrix support in vulkan 2022-09-02 09:07:43 +08:00
Benau
7a5f14cb37 Don't call KartPropertiesManager::onDemandLoadKartTextures on child process 2022-09-01 16:04:47 +08:00
Benau
ad8ba4d417 Mirror UV if needed in vulkan 2022-09-01 10:54:33 +08:00
Benau
089dd025f1 Implement GEVulkanTexture::getTextureSize correctly 2022-08-31 13:09:41 +08:00
Benau
3db036d67f Fix data race when deleting GEVulkanTexture 2022-08-31 12:36:55 +08:00
Benau
4ceec85edc Fix infinite GEVulkanTexture::waitImageView if createImageView failed 2022-08-31 11:20:04 +08:00
Benau
38b995bf61 Avoid hangs if reloading textures too much 2022-08-31 11:08:48 +08:00
Benau
c929002eba Fix crash when recreating irrlicht device 2022-08-30 09:44:31 +08:00
Benau
1703e829eb Keep fullscreen checkbox focus when toggling it 2022-08-30 09:27:54 +08:00
Deve
7a9300b56a Update linux builder 2022-08-29 20:12:48 +02:00
Benau
4f3dbb43a2 Fix bad gui after toggling fullscreen ingame 2022-08-29 14:55:02 +08:00
Benau
1f53895a25 Attempt to restore vulkan device after out focus in gnome fullscreen 2022-08-29 12:30:18 +08:00
Benau
97bc2696db Fix broken IrrDriver::cancelResChange 2022-08-29 11:06:12 +08:00
Benau
3d9828b6e3 Don't check for larger window size if fullscreen is used 2022-08-29 10:48:39 +08:00
Benau
d322720147 Add option to use original fullscreen code for vulkan 2022-08-29 10:30:31 +08:00
Benau
bba636263e Use fullscreen desktop for vulkan 2022-08-28 10:55:06 +08:00
Benau
e6f8dcfdb0 Make render scale configurable in ui for vulkan 2022-08-28 09:27:08 +08:00
Benau
8f061c6367 Remove depth attachement if rtt is used 2022-08-27 13:04:22 +08:00
Benau
d31281cb6f Add render scale support in vulkan 2022-08-27 12:49:17 +08:00
Benau
97e5064535 Use location, rotation and scale instead of model matrix in vulkan 2022-08-26 09:36:30 +08:00
Benau
514e3a50ad Fix uninitialized m_compressed_data 2022-08-25 15:20:04 +08:00
Benau
57c5446e55 Add GECompressorBPTCBC7 2022-08-25 15:13:23 +08:00
Benau
3e2de9419e Update download assets size 2022-08-24 12:00:07 +08:00
Benau
adedc7e80f Update translation, AppData and Desktop file 2022-08-24 11:56:49 +08:00
Benau
fefb3c1949 Mark skybox textures to be loaded on demand 2022-08-23 08:54:27 +08:00
Benau
5699ede148 Draw skybox before transparent objects 2022-08-22 10:53:07 +08:00
Benau
4f9d40f3b2 Add GEVulkanSkyBoxRenderer 2022-08-21 14:09:56 +08:00
Benau
5aa70333ce Add GEVulkanArrayTexture 2022-08-20 15:44:38 +08:00
Benau
694c1b6c29 Fix xcode build 2022-08-19 23:28:54 +08:00
Benau
5c26ac73df Fix bottom skybox uv and revert custom irrlicht change 2022-08-19 11:26:07 +08:00
Benau
058aa45894 Increase sampler size for max 20 karts in game 2022-08-18 14:56:44 +08:00
Benau
2d1c7385c6 Fix unlocked screen track screeshot display for vulkan 2022-08-17 15:49:10 +08:00
Benau
c2ab58148f Fix missing continue button in next cutscene part 2022-08-16 14:11:37 +08:00
Benau
7aff7f9ba9 Fix broken continue button in cutscene if long loading time 2022-08-15 09:44:12 +08:00
Benau
8fead715da Add onDemandLoadTrackScreenshots for all tracks 2022-08-14 15:21:37 +08:00
Benau
f777e01a21 Make kart textures loading ondemand if needed 2022-08-13 11:44:06 +08:00
Benau
e0636495f0 Add ondemand texture loading for vulkan 2022-08-12 13:07:53 +08:00
Benau
eace871c66 Add getImageSize for all image loaders 2022-08-11 14:46:00 +08:00
Benau
c698d4a601 Wait for GEVulkanCommandLoader to finish task before deleting textures 2022-08-10 11:07:54 +08:00
Benau
ed4dcc24c6 Fix CImageLoaderJPG::isALoadableFileFormat according to upstream 2022-08-09 10:20:04 +08:00
Benau
1b42688cbf Enable vulkan texture compression in ui 2022-08-09 10:03:56 +08:00
Benau
bed0acda7a Build shaderc in android without debug symbols 2022-08-09 09:26:05 +08:00
Benau
c6dafd4b80 Make isTextureCompressionEnabled return false for MOBILE_STK 2022-08-08 11:40:26 +08:00
Benau
1b671c932a Build libsquish and astc-encoder for android 2022-08-08 11:32:01 +08:00
Benau
d7390a1824 Add GECompressorASTC4x4 2022-08-07 15:33:54 +08:00
Benau
93dc6ed770 Fix GEVulkanTexture::getTextureData for compressed internal format 2022-08-06 11:01:54 +08:00
Benau
b4b0ddc620 Add GECompressorS3TCBC3 2022-08-06 09:48:11 +08:00
QwertyChouskie
4f32435ef2 Tweaks to crash report dialog (#4789)
* Use error icon in crash report dialog

Found this change when going through old folders, looks like it never made it in.

* Update crash error message

Improve grammar; avoid reports for one-off errors; link to proper subforum (id 17 is STK General)
2022-08-05 18:08:20 +08:00
Benau
118fc7fa96 Add GEMipmapGenerator 2022-08-05 12:15:08 +08:00
Benau
211c901335 Add checking for compute in main queue 2022-08-04 10:56:29 +08:00
Benau
c96881208a Use vkResetCommandPool for every frame commands 2022-08-03 13:44:59 +08:00
Benau
00e7b04f13 Add code to render vbo and ibo individually for some devices 2022-08-02 10:21:07 +08:00
Benau
0ad22efcf7 Re-order the buffer to use less memory 2022-08-02 00:56:11 +08:00
Benau
403f748b4a Add dynamic descriptor code for some devices 2022-08-02 00:25:36 +08:00
Benau
72b177c354 Fix incorrect vertex attribute 2022-08-01 09:13:20 +08:00
Benau
331ae9a30f Fix crash when GEVulkanTexture::getTextureData failed 2022-08-01 00:59:43 +08:00
Benau
83595d55a7 Add missing dstAccessMask for indirect command 2022-07-31 10:43:11 +08:00
Benau
2696ef2567 Add shader to render ghost kart 2022-07-30 09:03:56 +08:00
Benau
1a953b8a6c Add grass shader 2022-07-29 10:51:14 +08:00
Benau
c2c8468fa8 Sort drawing based on nodes surface area 2022-07-28 15:48:06 +08:00
Benau
e9d3152c1a Add more shaders 2022-07-28 13:37:09 +08:00
Benau
3f99e63a3c Don't use sampler array for non-single texture descriptor
Devices like Apple A8 don't support it
2022-07-27 13:54:22 +08:00
Benau
6d74e84609 Reduce vram usage by removing bones data in static spm 2022-07-27 11:45:09 +08:00
Benau
d37a3b8c7e Sort materials if needed 2022-07-26 13:21:07 +08:00
Benau
d4b2b03174 Add animated mesh rendering 2022-07-26 12:47:31 +08:00
Benau
8e1de345fb Add animation support in GEVulkanAnimatedMeshSceneNode 2022-07-26 00:12:35 +08:00
Benau
b75dec1fbc Move struct Armature to GE 2022-07-25 10:54:27 +08:00
Benau
61b87d3b31 Convert irrlicht mesh for addSphere 2022-07-25 10:05:46 +08:00
Benau
819b3ad27f Add minimap rendering 2022-07-25 09:41:35 +08:00
Benau
a2228adef1 Fix padding size calculation 2022-07-24 14:32:37 +08:00
Benau
593f78a230 Move MiniGLM to graphics engine folder 2022-07-24 12:22:06 +08:00
Benau
da0cce6cd6 Add render to texture support in GEVulkanDriver 2022-07-24 11:38:02 +08:00
Benau
99d565f961 Allow using custom command buffer for draw call 2022-07-24 08:54:47 +08:00
Benau
9f25652455 Fix one possible crash 2022-07-23 15:10:45 +08:00
Benau
d325e33fc0 Use multi-draw indirect if supported 2022-07-23 14:02:37 +08:00
Benau
7f31ffa552 Add anisotropic samplers 2022-07-23 10:58:37 +08:00
Benau
e991e06640 Implement high dpi support in sdl2 properly 2022-07-22 21:10:51 +08:00
Benau
ea69c36cb3 Fix splitscreen lod (mainly for karts) 2022-07-22 11:05:30 +08:00
Benau
bf77863c53 Simplify OnRegisterSceneNode of vulkan mesh nodes 2022-07-22 08:18:18 +08:00
Benau
3d0d666e09 Add texture mapping 2022-07-21 12:26:06 +08:00
Benau
fec21afc8e Add FileIncluder to shaderc compiler 2022-07-20 13:40:55 +08:00
Benau
e9924357cd Add polycount display in GEVulkanDriver 2022-07-20 10:37:09 +08:00
Benau
f768badee0 Add initial 3d rendering 2022-07-19 15:56:08 +08:00
Benau
44b2468003 Add GEVulkanDrawCall 2022-07-18 13:28:07 +08:00
Benau
5853d618a6 Add GEVulkanMeshSceneNode and GEVulkanAnimatedMeshSceneNode 2022-07-17 16:06:52 +08:00
Benau
fc7413800c Use GEVulkanTextureDescriptor on GEVulkan2dRenderer 2022-07-16 09:54:40 +08:00
Benau
713ab53272 Add GEVulkanTextureDescriptor to avoid refilling every frame 2022-07-15 14:09:57 +08:00
Benau
3769c18288 Remove hardcoded shader names 2022-07-14 15:25:16 +08:00
Benau
15eec8a8d2 Combine vbo and ibo buffers 2022-07-14 10:44:28 +08:00
Benau
c864b9bd60 Use vma in GEVulkanMeshCache 2022-07-13 12:09:45 +08:00
Benau
cf8bafaab3 Use vma in GEVulkanDynamicBuffer 2022-07-13 11:23:08 +08:00
Benau
b0f91ff33d Use vma in GEVulkanTexture 2022-07-12 15:46:33 +08:00
Benau
0f4a21ab6e Add Vulkan Memory Allocator 2022-07-11 12:58:03 +08:00
Benau
0b4ebc35b9 Add performance validation layer code 2022-07-10 15:36:27 +08:00
Benau
27b5770ea9 Add GEVulkanDepthTexture 2022-07-10 14:48:07 +08:00
Benau
7d94bf1f6f Update vk_mvk_moltenvk.h to latest version 2022-07-09 09:01:06 +08:00
Benau
90794c2c8f Only update bounding box of lod node every frame if needed 2022-07-08 23:20:57 +08:00
Benau
d0a177c3cc Fix hang when resizing window with vsync on 2022-07-08 11:46:17 +08:00
Benau
fa72ef7246 Fix matrix in GEVulkanCameraSceneNode::render 2022-07-07 13:08:44 +08:00
Benau
8ab63edd30 Save viewport in GEVulkanCameraSceneNode 2022-07-06 10:53:26 +08:00
Benau
4351926137 Fix possible crash if throw early 2022-07-06 10:06:28 +08:00
Benau
cc6914631a Don't upload if size is empty 2022-07-05 08:54:06 +08:00
Benau
defd58a465 Add getRealSize to GEVulkanDynamicBuffer 2022-07-04 14:51:59 +08:00
Benau
0875db0db6 Add buildCommandBuffers in GEVulkanDriver 2022-07-03 11:48:07 +08:00
Benau
dfd6a1820d Fix crash when closing in RTT screen 2022-07-02 10:52:20 +08:00
Benau
dc168e1b13 Better error handling when GEVulkanDriver construction fails 2022-07-01 12:52:07 +08:00
Benau
34ae56d33a Use matrix4 directly after the removal of sse 2022-06-30 16:49:51 +08:00
Benau
8fb0005020 Remove useless sse code in matrix4 2022-06-29 15:45:08 +08:00
Benau
3a64cc9f6a Fix uninitialized values in btKart 2022-06-28 10:08:33 +08:00
Benau
21d9b4bc70 Fix lod node after updateAbsolutePosition optimization 2022-06-27 13:22:07 +08:00
Benau
11fb04bd95 Fix sp mesh node after updateAbsolutePosition optimization 2022-06-26 09:46:08 +08:00
Benau
f63ce6917b Only updateAbsolutePosition if transformation changed 2022-06-25 11:54:06 +08:00
Benau
e599a7fff8 Disable minimap in vulkan driver for now 2022-06-24 13:23:01 +08:00
Benau
648c7c84d4 Clean up and optimize lod node 2022-06-23 16:00:08 +08:00
Benau
b8cb96b81f Add GEVulkanCameraSceneNode 2022-06-16 12:00:15 +08:00
Benau
4b17d2133a Try to allow cake and plunger to have collision callbacks 2022-06-13 16:16:26 +08:00
Benau
8ea38a6103 Fix memory leak 2022-06-09 15:18:20 +08:00
Benau
d85c1e3ee7 Use class inheritance for GEVulkanMeshCache 2022-06-08 13:38:24 +08:00
Benau
b0cddc462a Add GEVulkanSceneManager 2022-06-07 10:34:08 +08:00
Benau
ca1f61b898 Add GEVulkanMeshCache 2022-05-29 12:33:06 +08:00
Benau
95d9277046 Regenerate plural forms from po files 2022-05-28 15:44:18 +08:00
Benau
8affae4861 Update translation, add Macedonian 2022-05-28 15:38:22 +08:00
Benau
2b80513a8f Add getMonoTimeMs to GE 2022-05-27 09:41:34 +08:00
Benau
ac5351ae5e Add irrlicht device pointer to vulkan driver 2022-05-26 17:22:39 +08:00
Deve
78f871d7f2 Use OpenGL ES by default for RISC-V 2022-05-26 10:06:46 +02:00
Benau
364e380dfd Update translation source, AppData and Desktop file 2022-05-25 09:03:57 +08:00
Benau
090d2e8038 Add new things to Appdata generation script 2022-05-25 09:01:04 +08:00
Benau
4c97bcbae5 Update translation file from transifex 2022-05-25 08:58:54 +08:00
Benau
1bdeffc7ed Convert b3d to GE spm 2022-05-24 10:24:15 +08:00
Benau
92accb352e Convert spm to GE spm 2022-05-23 13:46:03 +08:00
David CARLIER
096b408b9c BSD build warning little fixes, implicit cast. 2022-05-22 11:20:38 +01:00
Benau
e666e08f2d Add GE spm code 2022-05-22 11:53:02 +08:00
Benau
350773d316 Add temporary code for GE spm 2022-05-21 08:55:59 +08:00
Benau
3b0df18167 Fix crash when rubber band hits its owner 2022-05-20 08:17:15 +08:00
Benau
f61dcb2ec3 Allow reading spm vertices in physics 2022-05-19 15:53:05 +08:00
David Carlier
db8fdb9ccf illumos/solaris build fix 2022-05-14 11:31:51 +01:00
Benau
b50e977cfe Add llvm mingw building instructions 2022-05-10 13:16:30 +08:00
Benau
c004588654 Allow llvm mingw toolchain to be used in windows 2022-05-10 10:05:01 +08:00
Benau
9c9f69856f Enable maximum parallelization by making vkWaitForFences closer 2022-05-05 09:30:29 +08:00
Benau
d2da2e22e1 Avoid address sanitizer error 2022-05-04 10:42:16 +08:00
Benau
281ddb1b17 Fix #4772 2022-05-03 09:32:14 +08:00
Benau
c739aeb758 Disable mipmap generation for too small textures 2022-05-02 10:42:32 +08:00
Benau
db4329cebf Remove unwanted architectures in apk properly 2022-05-01 09:55:06 +08:00
Benau
ac140c9cf2 Fix #4770 2022-05-01 08:36:56 +08:00
Benau
63e1afb835 Fix camera rotation angle for all platforms 2022-04-30 12:29:25 +08:00
Benau
ed14ab5091 Fix possible exit crash 2022-04-30 11:55:47 +08:00
Benau
ae2cfb4162 Fix gyroscope on walldriving surface properly 2022-04-30 10:45:33 +08:00
Benau
98eb912a76 Use simde on graphics_utils 2022-04-29 11:28:47 +08:00
Benau
383bd93261 Add simde 2022-04-29 11:02:25 +08:00
Benau
0f2b3da37e Fix sometimes missing overworld background music 2022-04-28 14:30:53 +08:00
Benau
ed6d7578a5 Avoid queue size race condition 2022-04-27 11:01:53 +08:00
Benau
96cd140c62 Avoid getListenerPos race condition 2022-04-26 12:42:11 +08:00
Benau
68240b5d2d Avoid getWorld race condition 2022-04-26 12:26:29 +08:00
Benau
fddc19225c Use array list for scene nodes 2022-04-26 10:55:24 +08:00
Deve
98763a10eb Use new build options for freetype in linux build script 2022-04-24 08:54:02 +02:00
Benau
972c719392 Add triangle fan 2d drawing for vulkan driver 2022-04-20 08:19:53 +08:00
Benau
1b92e99cfe Use a new sampler for 2d rendering 2022-04-19 13:18:59 +08:00
Benau
26bd8a5b8b Add mipmap generation for GEVulkanTexture 2022-04-19 12:49:05 +08:00
Benau
b0421569d0 Fix validation warnings when running vkDeviceWaitIdle 2022-04-18 13:46:59 +08:00
Benau
5d23d8d790 Add multithreading GEVulkanTexture loading 2022-04-18 12:16:27 +08:00
Benau
059fc9ebfd Add GE::getResizedImage using IReadFile 2022-04-18 10:46:23 +08:00
Markus Reitboeck
2876032630 Fix logical error in libraqm implementation
the first two conditions made the whole if condition
always true

I've copied the fix from the current implementation in
libraqm
https://raw.githubusercontent.com/HOST-Oman/libraqm/master/src/raqm.c
2022-04-17 14:23:52 +02:00
Benau
3d6c86d04e Clean up properly in case constructor throws 2022-04-17 14:42:36 +08:00
Benau
22f658239f Use GEVulkanCommandLoader for all 2022-04-17 14:37:52 +08:00
Benau
da665fc4fd Add GEVulkanCommandLoader with multithreading support 2022-04-17 14:08:29 +08:00
Benau
993073b7dc Update download assets size 2022-04-16 13:16:44 +08:00
Benau
5f9db20b4f Add IFileSystem::existFileOnly (not including directory) 2022-04-16 12:08:57 +08:00
Benau
57a9a8a2aa Add getTextureData for GEVulkanTexture 2022-04-16 11:31:09 +08:00
Benau
0dbbf1a6e6 Fix bluetooth mouse in iOS
See 19c129faba
2022-04-15 17:37:08 +08:00
Benau
99f1a2e03f Add moltenvk argument buffers support 2022-04-15 17:05:38 +08:00
Benau
a469d501f9 Fix gyroscope behaviour on walldriving surface, see #4750 2022-04-15 12:48:09 +08:00
Benau
b359c9548c Update build scripts for curl 7.81 and later 2022-04-14 10:29:05 +08:00
Benau
ae8df366fc Fix convertBGRA order in GEVulkanTexture::reloadInternal
Image manipulator should work on original color data
2022-04-13 10:04:28 +08:00
Benau
3fe53751c4 Move BGRA conversion out of upload in GEVulkanTexture 2022-04-12 15:16:26 +08:00
Benau
661a57b5fc Add a way to acquire file archives mutex 2022-04-11 14:32:36 +08:00
Benau
8df6bdf7c8 Move file system mutex to irrlicht 2022-04-11 13:57:06 +08:00
Benau
efe1070be7 Fix validation warning when using VK_SHARING_MODE_CONCURRENT 2022-04-10 10:56:04 +08:00
Benau
de09566b4a Avoid configurations xml lost if having disk space issue, see #4709 2022-04-09 14:59:57 +08:00
Benau
d6a3e48d03 Fix compiler warnings in MinGW 2022-04-09 12:53:20 +08:00
Benau
8bbb142394 Fix #4745 2022-04-09 10:43:30 +08:00
Markus Reitboeck
2c7cb7fa67 ReplayRecorder: write correct number of transformation into "size"
fixes #4758
2022-04-08 22:22:24 +02:00
Benau
d60a3a7c0c Add loadingFailed function for ITexture 2022-04-08 14:56:24 +08:00
Benau
d6db020bfe Add thread-safe existFile in IFileSystem 2022-04-08 14:35:04 +08:00
Mary Strodl
878f064ecf CImageLoaderSVG: don't rescale on server 2022-04-07 14:21:00 -04:00
Benau
4c4daf9698 Move screen height detection inside CImageLoaderSVG::loadImage 2022-04-07 08:51:25 +08:00
Benau
1655c243b7 Batch upload image command buffer 2022-04-06 11:35:22 +08:00
Benau
159cdcd06b Save max texture size before calling image manipulator 2022-04-06 10:17:49 +08:00
Benau
e6684040ba Fallback to VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR if needed 2022-04-05 10:43:23 +08:00
Benau
fb9d8f21ce Deactivate unusable settings in non-gl3 renderers 2022-04-04 08:50:46 +08:00
Benau
f2cc51a602 Fix mismatched max size for background.jpg when reloading 2022-04-03 10:54:27 +08:00
Benau
b6b565aabb Fix validation warning when reloading textures 2022-04-03 10:21:48 +08:00
Benau
24a9c99e03 Fix one validation warning 2022-04-03 09:55:17 +08:00
Benau
a98a470ea8 Implement live updating swap interval value for vulkan 2022-04-02 14:17:27 +08:00
Benau
3994ce5666 Add workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/5516 2022-04-02 13:41:52 +08:00
Benau
067ac4fe01 Implement resume behaviour for mobile stk 2022-04-02 13:33:08 +08:00
Benau
4d2c65ade9 Add render driver switch in lobby command 2022-04-01 12:19:21 +08:00
Benau
6c7e4f25ea Quit the app if vkQueueSubmit with fence fails
It prevents infinitive vkWaitForFences later
2022-04-01 10:16:28 +08:00
Benau
601511e7f4 Split device polling out of renderLoading 2022-04-01 09:59:46 +08:00
Benau
1c99ba2562 Fix clang warnings 2022-03-31 11:55:23 +08:00
Benau
9c7fb99e53 Fix one validation warning 2022-03-31 11:34:47 +08:00
David Carlier
4f4fb01ed7 upstreaming change for settings paths for haiku.
original author @threedeyes slighty adapted.
2022-03-29 22:28:23 +00:00
Benau
cd9e2f0adf Remove always exiting behaviour when pausing vulkan enabled stk 2022-03-28 15:30:42 +08:00
Panagiotis "Ivory" Vasilopoulos
0c147c0a0b Fix URLs on Haiku
My general strategy of getting ports to work on Haiku is to just take advantage
of whatever makes things work on FreeBSD by adding an additional condition and
then fixing up things later once it compiles successfully. This generally
works, as Haiku contains FreeBSD headers for compatibility and code that
takes other operating systems into account other than Windows, Linux and OS X
and has a higher degree of POSIX compatibility tends to work on FreeBSD and
Haiku. This strategy is not perfect, and this commit proves it.

Haiku is the successor of BeOS, which, in turn, shows similarities to macOS
every now and then, as the company almost acquired Be, Inc., but later chose to
acquired NeXT, Inc. instead.

`xdg-open` is not available on Haiku by default the same way it is on
FreeBSD and Linux. With that in mind, this should fix URLs, which do
not not work properly on Haiku. Actually, nevermind, I forgot that there
is actually a package available that adds support for them. But still.
The less dependencies, the better, probably. This is also how other
packages with ports available on Haiku solve this problem.
2022-03-27 21:22:48 +02:00
David Carlier
37a57d0011 Fix build for Haiku and a handful of other oses with the spirv-tools dependency. 2022-03-26 15:05:08 +00:00
Benau
bed91e67a0 Handle device orientation with vulkan pre-rotation 2022-03-26 00:19:09 +08:00
Benau
3d92730a82 Fix incorrect android screen rotation with vulkan 2022-03-25 09:04:08 +08:00
Benau
68eb70e7e6 Use dynamic viewport for GEVulkan2dRenderer 2022-03-24 16:37:34 +08:00
Benau
23cd67f45c Implement draw2DRectangle for GEVulkanDriver 2022-03-23 10:53:00 +08:00
Benau
9e50c8a71f Remove unneeded files, fix #4751 2022-03-22 07:51:45 +08:00
Benau
3e2ff91654 Add dynamic scissor support 2022-03-21 11:54:28 +08:00
Benau
ea1733ed08 Add drawing code for devices with low sampler images 2022-03-20 13:35:22 +08:00
Benau
bb6551fdf6 Add drawing code for devices without descriptor indexing 2022-03-19 16:09:32 +08:00
Benau
1cf2c0c5bf Add initial 2D vulkan rendering 2022-03-19 15:14:55 +08:00
Benau
cb607a16ff Add GEVulkanShaderManager 2022-03-18 16:24:33 +08:00
Benau
89afd214e8 Require shaderSampledImageArrayDynamicIndexing for vulkan 2022-03-18 09:24:55 +08:00
Benau
1d0d2ebb75 Fix windows xp support 2022-03-17 15:12:08 +08:00
Benau
5128fc3a88 Add link to download python for windows 2022-03-17 14:30:21 +08:00
Benau
77ca4625c1 Add shaderc for android 2022-03-17 14:25:11 +08:00
Benau
9ea2f3ff8c Fix cctools build 2022-03-17 14:06:27 +08:00
Benau
38a553513c Fix switch build 2022-03-17 13:52:46 +08:00
Benau
f01959de8b Disable documentation generation for shaderc 2022-03-17 13:36:27 +08:00
Benau
2bc31f1518 Disable shared libraries manually for shaderc 2022-03-17 13:12:55 +08:00
Benau
bc1d885bd1 Add shaderc v2022.1 for GLSL to SPIR-V shaders
Ran ./utils/git-sync-deps already, removed some unneeded files
2022-03-17 12:21:20 +08:00
Benau
c19327aaeb Fix vsync disabled 2022-03-16 15:43:26 +08:00
Benau
a7994c02d8 Fix command buffers size 2022-03-16 12:37:18 +08:00
Benau
d6265f3bf7 Handle possible error from createTextureImage 2022-03-15 14:04:36 +08:00
Benau
4b28f5b9af Wait queue to become idle before deleting texture 2022-03-15 12:42:31 +08:00
Benau
ea275ae798 Use a correct layout during updateTexture 2022-03-14 09:43:22 +08:00
Benau
f35f402edf Fix VkDeviceQueueCreateInfo warning 2022-03-13 10:54:35 +08:00
Benau
4a93bea962 Fix MSVC 2015 build 2022-03-12 16:43:32 +08:00
David Carlier
9fb568eaa7 widening a bit smart pointers usage considering xml data. 2022-03-12 07:43:13 +00:00
David Carlier
18018a5cc1 scoped deref mem utils intro proposal.
trying out in two cases for now.
2022-03-06 19:02:15 +00:00
Benau
854c31be9d Update CREDITS 2022-03-05 08:57:39 +08:00
Benau
d2b2e80faa Fix #4737 2022-03-03 14:39:45 +08:00
Benau
8a5ecc458f Fix apple build 2022-03-01 16:25:25 +08:00
Benau
7bccb0b779 Remove build cache for msvc 2022-03-01 16:06:48 +08:00
Benau
17a899aa2c Fix exit crash 2022-03-01 15:59:48 +08:00
Benau
8b68f52e57 Add GEVulkanTexture 2022-03-01 13:22:20 +08:00
David Carlier
fcf7cf953f http curl client favoured new progress api if supported.
suppress openssl warning with openssl 3.0
2022-02-26 11:49:44 +00:00
Benau
c63faf395f Remove unneeded character saving, we always get it from translated string if needed
It causes undefined behavior in C++20, see #4735
2022-02-25 11:20:52 +08:00
Benau
dcdc66b8f5 Fix undefined behavior in C++20, see #4735 2022-02-25 11:13:27 +08:00
Benau
09e7a38c52 Update for windows-latest 2022-02-18 15:04:00 +08:00
luffah
bd1b20ad35 Minimap and powerup icon settings in user settings
- add size and display settings for powerup icon in user settings
 - move minimap display settings in user settings
 - fix some comments in stk_config.xml
2022-02-13 22:36:20 +01:00
tippfehlr
9a3c51815a Add DisplayVersion to Windows registry on install (+typo) (#4730)
Winget relies on this value to get the version of a program.
If it's missing winget will just download the newest version even if the program is up to date.
See https://github.com/microsoft/winget-cli/issues/1255
2022-02-13 11:30:56 +08:00
David CARLIER
1f0ea77f80 illumos port. (#4732)
overcoming sun constant defined in this platform.
forcing 64 bits build as angelscript assembly is incorrect for 32 bits.
2022-02-13 00:31:14 +08:00
Michael Cochez
eb7a5b2ee6 m_gravity was set on the line above, so the condition will always be false. 2022-02-12 00:39:45 +01:00
Benau
c3b2eaf3e2 Allow adding players when using enter server dialog 2022-02-04 13:47:41 +08:00
Benau
b411f8c60d Remove unneeded sprintf 2022-02-03 10:51:15 +08:00
Kuba
65afb72c98 Fix assertion failed introduced in #4723 (#4728) 2022-01-28 09:56:00 +08:00
Benau
6e347ae517 Fix #4726 2022-01-27 07:18:45 +08:00
Semphris
fa442aacce Ignore clangd files 2022-01-26 11:57:46 -05:00
mrkubax10
b80df76116 Fix wrong lap count in GP result 2022-01-26 12:37:13 +01:00
Semphriss
01a78ba594 Improved code quality in item.cpp (#4722)
Fixes bug where a bubblegum shield popping/bursting will leave an invisible gum object behind
2022-01-26 09:13:51 +08:00
Lois Doyenard
3d4cb58af5 Accept emails with format e.email (from #4718) 2022-01-25 10:48:38 +01:00
Lois Doyenard
b66e0d0d0d More precise error message for online unsername (2 & 3 from #3599) 2022-01-25 10:04:44 +01:00
Semphriss
96c0d167bf Items animation (#4713) 2022-01-25 13:07:04 +08:00
Benau
3ccdfaf70d Add createSamplers for GEVulkanDriver 2022-01-23 16:43:33 +08:00
Benau
8e64c69c5d Add command creation for GEVulkanDriver 2022-01-22 00:41:24 +08:00
Benau
2f4093516a Add createSyncObjects for GEVulkanDriver 2022-01-22 00:18:42 +08:00
Benau
9e321d804e Fix #4711 2022-01-11 09:24:01 +08:00
Semphris
9b6347d62d Added animation to stars 2022-01-09 23:49:24 -05:00
Deve
5999ff94ab Use more cores for package compression 2022-01-05 23:50:12 +01:00
Deve
364d387aa1 Remove rpath after compilation 2022-01-05 23:34:13 +01:00
ldoyenard
886783db31 Add left side ghost replay difficulties (#4707) 2022-01-05 10:16:23 +08:00
Benau
d4ed01b467 Disable accelerometer or gyroscope control if gamepad events trigger, fixed #4705 2022-01-04 09:37:59 +08:00
Benau
76a08d9f30 Remove hardcoded android build settings and update to latest gradle 2022-01-03 11:04:55 +08:00
Benau
f0f498d53f Add createSwapChain for GEVulkanDriver 2021-12-28 13:51:03 +08:00
Benau
3f99d279a7 Update for SDL 2.0.18 2021-12-24 10:57:13 +08:00
Benau
baeafd9f7d Fix missing ime candidate window using SDL2 hint 2021-12-24 09:43:06 +08:00
Benau
7dc8f3e958 Fix order of ghost replay difficulties depending on race result 2021-12-23 00:47:57 +08:00
STK-Waldlaubsaengernest
c09305b236 Fix #4698 2021-12-22 12:14:33 +01:00
Stanislas Dolcini
0a99c667ef Request AMD GPU on Enduro Devices
It seems AMD provides an equivalent to `NvOptimusEnablement` called `AmdPowerXpressRequestHighPerformance`

See https://gpuopen.com/learn/amdpowerxpressrequesthighperformance/
2021-12-12 22:35:57 +01:00
Benau
ccf6ff2686 Fix possible incorrect difficulty shown in result screen when watching single replay 2021-12-09 12:39:57 +08:00
Lois Doyenard
be16d24170 Fix #3849 2021-12-08 11:28:28 +01:00
Benau
087892e183 Fix compiler warnings 2021-12-07 09:33:26 +08:00
STK-Waldlaubsaengernest
a0cc6c95c2 Update player list if state changes to WAITING_FOR_START_GAME (#4685) 2021-12-06 23:21:50 +01:00
STK-Waldlaubsaengernest
97eb45b93b Make limit of players in game configurable (#4685) 2021-12-05 16:46:49 +01:00
Benau
d8af4bc17e Fix #4675 2021-12-03 14:06:40 +08:00
Benau
75a5f81578 Fix valgrind errors 2021-12-03 13:41:02 +08:00
Benau
4a72a79582 Fix #3849 2021-12-03 11:04:43 +08:00
Benau
b286ee9195 Fix #4687 2021-12-03 10:23:31 +08:00
Benau
d1c0acac83 Fix #4653 2021-12-03 10:16:30 +08:00
Benau
ea5aabde0d Fix server name missing in title when leaving live join kart selection screen 2021-11-29 00:59:56 +08:00
Benau
b4411b11fe Fix #4677 2021-11-26 18:29:22 +08:00
Varro33
6b022368cf Fix irrlicht error indent (#4676) 2021-11-22 21:49:15 +08:00
Benau
38425305a5 Remove useless translation po files 2021-11-15 11:16:53 +08:00
Benau
571366a461 Add missing country code to language selection 2021-11-15 11:05:44 +08:00
Benau
33e6110737 Update localized language names and use tsv file for them 2021-11-15 10:58:48 +08:00
Benau
d064f8d96e Update translation source 2021-11-14 16:20:08 +08:00
Benau
844d97ed52 Improve description for lap trial mode 2021-11-14 16:17:02 +08:00
Benau
dfd1912c33 Add track searching to network track screen 2021-11-14 16:11:21 +08:00
Benau
c26b3c989b Fix #4671 2021-11-14 15:31:41 +08:00
이경로
1a11da01bc Revised email issue and some kr translation (#4673) 2021-11-14 15:20:15 +08:00
Benau
7582a00b91 Update target SDK to 30 due to google play requirement 2021-11-12 12:24:42 +08:00
Benau
712822a5f5 Update download assets size 2021-11-12 10:23:41 +08:00
Benau
4d08ea2335 Update Noto Emoji to support Unicode 14 2021-11-11 17:07:51 +08:00
Bryan Quigley
bee1c222af Always AS_MAX_PORTABILITY on AArch 2021-11-07 23:43:05 -08:00
Bryan Quigley
b710fab5c8 STK modifications to angelscript to let Windows/Apple builds
(and 3 forgotten source files)
2021-11-06 10:12:01 -07:00
Bryan Quigley
73c94f571d Update Angelscript from 2.32.0 to 2.35.1
Didn't require any changes except dos2unix.
2021-11-04 17:59:10 -07:00
Kuba
0d8b01b08b Lap Trial improvements (#4664) 2021-11-03 09:39:22 +08:00
Kuba
3623fa8f5f Add Lap Trial mode (#4663) 2021-11-02 03:02:16 +08:00
QwertyChouskie
8b5b68585c Allow specifying a base skin
Anything not provided or defined by a skin will be used from the defined base skin, if specified.

For example, if a skin provides a base_theme of "cartoon", any icons/buttons/etc. not provided by the skin will be pulled from "cartoon".
2021-11-01 00:11:31 +08:00
QwertyChouskie
aee11c6de6 Use getThemedIcon instead of duplicated code 2021-11-01 00:11:31 +08:00
QwertyChouskie
14c1f7b344 Remove dead code block
The way this code was written, it would never be triggered in any real scenario (confirmed by running STK with a Log::fatal before the return)
2021-11-01 00:11:31 +08:00
QwertyChouskie
9ca2c2eddc Remove ugly font/skin loading hack
font_manager->loadFonts() needs data from the GUI skin.  Move this initialization to after we naturally have the data, instead of doing an extra dummy initialization just to get this data.
2021-11-01 00:11:31 +08:00
Benau
1470eb3939 Fix possible crash in discord rpc 2021-10-30 10:04:17 +08:00
lokpro
1fd18c8d88 add UserConfigParams: m_gp_reverse, random-gp-num-tracks for GPInfoScreen (#4656) 2021-10-28 10:15:26 +08:00
QwertyChouskie
ce19c9396e Delete implementation.txt
I didn't realize this file still existed, looks like all this is from the TuxKart days (2000-2004) and has no relevancy anymore.
2021-10-27 12:37:11 -07:00
fmesnier
8f79b24f49 correction of the implementation.txt file (#4655) 2021-10-28 00:58:26 +08:00
Heuchi
e110948eb5 add configuration for item return times in stk_config.xml 2021-10-24 10:02:05 +02:00
lokpro
550458bebd fix 1734d74c6b - only use ranks in GP, else use row number. 2021-10-23 00:03:54 +08:00
lokpro
1734d74c6b fix race_result_gui's GP ranks after RR_RESORT_TABLE 2021-10-22 01:22:25 +08:00
Benau
6809c9585d Add don't show again button to driver dialogs, fix #4645 2021-10-10 16:43:49 +08:00
Benau
786dc6b08f Fix broken recording saving with unicode path in windows 2021-10-08 15:49:53 +08:00
Benau
1c983f7090 Remove 1.3-rc1 in AppData
Also update translation source
2021-10-08 11:36:05 +08:00
Mary
b2e9033998 SDLController: Drop support for SDL 1.x (#4644) 2021-10-08 11:19:42 +08:00
Benau
1cce43b2fa Fix MIPS compilation 2021-10-07 16:30:32 +08:00
Kalev Lember
164c51cb2e Always build tinygettext as a static library
Explicitly pass STATIC to tinygettext add_library() call to make sure
it's always built as static, even when distro's cmake is configured to
build libs shared by default.
2021-10-07 00:52:32 +02:00
Benau
501d8b55ab Fix some typos 2021-10-06 15:22:32 +08:00
Benau
e8074fa392 Update debian build instruction 2021-10-06 13:54:11 +08:00
Mary
fe7dd8af14 Allow setting auto-center property for racing wheels (closes #4636) (#4641) 2021-10-06 13:24:27 +08:00
Benau
013b065f2c Allow disabling loading of addon karts or tracks, fix #4637 2021-10-05 11:58:23 +08:00
Benau
39f7e6441a Fix random player position in FTL 2021-10-05 11:34:51 +08:00
Benau
6f7c8c3dd8 Exit if make_deps.sh failed in android_builder.sh 2021-10-05 10:00:38 +08:00
Benau
835154bde2 Handle SDL_RENDER_DEVICE_RESET event 2021-10-04 21:16:26 +08:00
Benau
9b25557e6e Remove restriction for android screen keyboard after using SDL2 2021-10-04 20:17:27 +08:00
Benau
b518d73417 Synchronize AndroidManifest.xml with upstream SDL2 2021-10-04 20:16:05 +08:00
Benau
3d575a50a7 Get rid of the exit(0) at the end of android_main() function
After NDK r22 it longer crashes after dlclose, see:
https://github.com/android/ndk/issues/1200

Fix #3000
2021-10-04 20:10:41 +08:00
Benau
75db65d43a Build with NDK r22, disable NEON on 32-bit ARM to support more devices 2021-10-04 18:15:21 +08:00
Benau
17329a1b29 Register native functions in SDL_main 2021-10-04 13:01:00 +08:00
Benau
4db68a3f10 Build SDL2 and hidapi as shared library 2021-10-04 11:41:04 +08:00
Benau
db03304cf1 Sign MacOS bundle with Ad Hoc (required by arm64) 2021-10-04 00:32:43 +08:00
Benau
9bf537ab35 Update cacert.pem and remove expired DST Root CA X3 certificate 2021-10-03 01:39:50 +08:00
Benau
87fd3f221a Make /installaddon possible to upgrade addon 2021-10-01 14:23:47 +08:00
Benau
fa1ddbd839 Remove compiler warning 2021-10-01 12:57:07 +08:00
Benau
93ab5a75c1 Only handle enter key after buttons are shown in race result screen 2021-10-01 12:54:54 +08:00
Kuba
ca04106253 Fix wrong win message in races only with 1 kart (#4632) 2021-10-01 01:57:45 +08:00
Richard Qian
d5f8496abc Enable grand prix races in high score dialog (#4626) 2021-09-30 09:57:59 +08:00
iwoithe
95de01a8fb Add a user config option to randomize the player position at the start (#4627) 2021-09-29 11:40:14 +08:00
Benau
d0f4c8ffee Update download assets size 2021-09-28 15:48:26 +08:00
Benau
e59f1c316f Update mrkubax10 name 2021-09-28 15:47:08 +08:00
Benau
fd7564d508 Update translation and AppData 2021-09-28 15:04:56 +08:00
Benau
2d1f8d5698 Update changelog 2021-09-28 14:34:22 +08:00
Benau
73064a341a Fix missing dSYMs in Xcode archive 2021-09-28 13:49:46 +08:00
Benau
31ce998cda Fix error during Xcode archive 2021-09-28 13:00:25 +08:00
BryanQuigley
781273b472 Add releases bit to appstream xml. (#4624)
Noticed this was added to the flatpak here: https://github.com/flathub/net.supertuxkart.SuperTuxKart/blob/master/fix-AppData-file.patch
2021-09-27 10:11:34 +08:00
Benau
1afffee635 Update android_builder.sh for latest changes 2021-09-25 16:20:09 +08:00
Benau
78c00723af Build apk and aab with gradle 2021-09-25 15:19:21 +08:00
Benau
42cc2ab239 Allow make.sh to compile multiple architectures apk file 2021-09-25 14:57:03 +08:00
Benau
731ed0b16e Add make_deps.sh to build android deps for all architectures 2021-09-25 14:38:11 +08:00
Alayan-stk-2
e4ffc949ac Partial 1.3 changelog update
Changes from August onwards are still to review
2021-09-25 03:19:23 +02:00
Benau
48cc830372 Add command to check addon revision 2021-09-24 12:46:10 +08:00
Benau
daf1dcfb6b Make AI / grand prix option in create server screen configurable 2021-09-24 11:29:41 +08:00
Benau
2257b50aef Make sure pointer is not NULL 2021-09-23 16:43:17 +08:00
Benau
031c798d8e Make continue button in GP result screen appear quicker 2021-09-23 16:26:22 +08:00
Benau
7c9a58c844 Proper fix for #4604
Take allowing to get a lower-tier cup in GPs when not first into
account
2021-09-23 16:13:05 +08:00
Benau
de52f2ae92 Fix uninitialized reverse type 2021-09-23 16:08:06 +08:00
Benau
70070b3077 Wait for user input in GP before scrapping the race results
Fix #2775
2021-09-22 15:52:01 +08:00
Benau
9b05ac6252 Revert "Fix #4610"
This reverts commit 789885c546.
2021-09-22 09:09:28 +08:00
Benau
dab4486465 Implement proper fix for #2776
Doing computeGPRanks in race result screen will make sorting
animation disappear
2021-09-21 16:32:53 +08:00
Kuba
6ee1b398e9 Save minor mode in GP highscores (#4620) 2021-09-21 10:06:09 +08:00
Benau
61f513e200 Display hour in high score dialog if needed 2021-09-19 09:10:30 +08:00
Benau
94cffbeb73 Fix swap interval mismatch when changing activity 2021-09-19 08:44:47 +08:00
Benau
bc7e6de55b Fix uninitialized track pointer 2021-09-19 08:13:25 +08:00
Benau
b773c009cb Fix memory leak if deleting kart with swatter on 2021-09-19 07:55:06 +08:00
mrkubax10
26db54c90f Don't save highscore when player skipped track 2021-09-18 11:21:04 +02:00
Benau
789885c546 Fix #4610 2021-09-17 12:18:28 +08:00
Benau
45cf40e493 Fix #4604 2021-09-17 12:02:36 +08:00
Daniel Garcia
1fff48ea61 Fix incorrect comment in grand_prix_manager.hpp 2021-09-16 11:04:20 -05:00
Kuba
0b5eda8ef9 Save more detailed informations about reverse mode in GP highscores (#4616) 2021-09-14 16:22:29 +08:00
Benau
c4fdf9c8ac Fix memory leak 2021-09-14 13:01:33 +08:00
Benau
216ac8b988 Fix missing text if it starts with newline 2021-09-14 10:21:49 +08:00
Benau
a96763cd1d Make sure starting position is valid for spare tire karts
Fix #4615
2021-09-13 16:54:29 +08:00
Benau
4470eabeb2 Split findGround function for more usage later 2021-09-13 15:09:00 +08:00
Benau
9221d39e6e Don't show kart rank in free for all battle, fix #4607 2021-09-12 08:24:01 +08:00
Kuba
0d54c3d60b Only save GP highscores for normal race and time trial (#4613) 2021-09-11 21:16:51 +08:00
Robin Pesl
7aeb0b0edf Fix missing argument in warning
Add tag name to log message.
2021-09-11 02:25:28 +02:00
Benau
df97d76bd7 Fix #4601 2021-09-10 17:11:15 +08:00
Benau
e74c198301 Fix uninitialized m_curr_time 2021-09-10 15:56:10 +08:00
Benau
b1670b7a34 Update ncipollo/release-action to its latest version 2021-09-10 12:03:50 +08:00
Benau
b3c3b4c729 Remove unused code 2021-09-10 11:19:24 +08:00
Benau
0fc1bd961f Fix OS string in Switch Homebrew 2021-09-10 10:46:21 +08:00
Alayan
79965ef462 Fix & Improve the remaining-time alert
- Fix a bug that prevented the alert sound from playing in timed Story Mode challenges.
- Extend the visual alert (colored time) to the last 15 seconds (previously 5). The sound alert remains limited to the last 5 seconds.
- Switch from yellow to orange for the timer when 5 seconds are left and the sound alert starts playing.
- Significant code simplification (tested for non-regression in soccer, FFA, story mode timed challenge)
2021-09-09 21:06:02 +02:00
Benau
9a4fe66dc7 Fix strings 2021-09-10 01:10:30 +08:00
Alayan-stk-2
394c2c9e82 Partial changelog update for 1.3 2021-09-09 17:15:39 +02:00
Benau
5902a146a6 Dont re-highlight if addon name starts with http link 2021-09-09 16:52:16 +08:00
Benau
c9f1c0c866 Cancel download if uninstalling during updating addon 2021-09-09 15:52:39 +08:00
Benau
e51f68d764 Don't open link on shrinked text in bubble widget 2021-09-09 15:42:23 +08:00
Benau
307791beda Highlight URLs or addon names from /installaddon in lobby 2021-09-09 09:57:35 +08:00
Benau
4e770cdd61 Remove URL highlighting on music description 2021-09-08 23:31:18 +08:00
Alayan
f80d499982 Tweak the highscore info dialog to display more without scrolling with large fonts. 2021-09-08 15:42:46 +02:00
Benau
38cfd912bd Add extractURLFromGlyphLayouts which handles RTL layout properly 2021-09-08 14:58:35 +08:00
Benau
a4015beb29 Update URLs to allow clicking 2021-09-08 13:48:20 +08:00
Benau
e85b82001f Fix invalid URL in line breaking 2021-09-08 13:27:09 +08:00
Benau
0c20dda1da Remove SF_DISABLE_URL_HIGHLIGHT flag to avoid conflicts with cache
Manually remove the URL highlighting if needed
2021-09-08 09:38:30 +08:00
Alayan-stk-2
03d1aa1916 Fix #4598 2021-09-08 01:06:45 +02:00
Benau
88d8799498 Fix incorrect getChecklineTriggering on CheckCannon after using 3D check planes 2021-09-07 11:04:33 +08:00
Heuchi
a699982bfa Keep showing arrow on addons widget in main menu
when there are updates for installed addons.
2021-09-06 16:00:11 +02:00
Benau
8c3bacf769 Only save original string in GlyphLayout if needed 2021-09-06 14:51:45 +08:00
Benau
5d5292787e Disable URL highlight on some widgets and screens 2021-09-06 14:33:23 +08:00
Benau
ae98b0cf9b Use LinkHelper::openURL on highlighted URL 2021-09-06 14:19:39 +08:00
Benau
f5f821c925 Use SDL_OpenURL when possible 2021-09-06 11:13:46 +08:00
Benau
280d8fc114 Highlight URL with skin marked text color 2021-09-06 11:05:24 +08:00
Benau
8f41b721ed Share FontWithFace render code with getCluster for more functionality 2021-09-05 08:41:46 +08:00
Benau
4deeac7dc8 Move getCluster code to a dedicated function for later usage 2021-09-05 00:54:52 +08:00
Benau
fe5b49e63a Remove more from server name as seen in server.cpp:247 2021-09-04 13:27:34 +08:00
Benau
3f2e011f11 Skip specific control characters like in the past 2021-09-04 13:13:19 +08:00
Benau
e2118c89c3 Save scrollbar position when opening server info dialog 2021-09-03 22:02:54 +08:00
Benau
b6ca771a0e Fix AI headless instance crash 2021-09-03 20:08:17 +08:00
Benau
5a585b85fb Add basic text handling to lobby chat
Allow opening addons downloading dialog when click url / addon id
after /installaddon and copying text
2021-09-03 19:47:23 +08:00
Benau
c76d41c903 Add callback to IGUIStaticText to allow text handling 2021-09-03 18:25:47 +08:00
Benau
33a4369a71 Store shared original string to glyph layouts directly 2021-09-03 13:09:42 +08:00
Benau
474e2e025a Make glyph clusters follow input text 2021-09-03 11:24:41 +08:00
Benau
9f62ca8802 Move server name to lobby header, scroll it if too long 2021-09-02 16:18:24 +08:00
Benau
1a9090c52c Allow saving multiple rtt dump files 2021-09-01 11:25:02 +08:00
Benau
e3a88c71e2 Allow using shift-f11 in kart selection screen 2021-09-01 11:17:07 +08:00
Benau
f9fa9a764b Update CREDITS 2021-08-30 16:53:37 +08:00
Benau
1a40afc9c5 Update Changelog 2021-08-30 16:50:15 +08:00
QwertyChouskie
efbd8eb75e Screen-space refection: many fixes + optimization (#4575) 2021-08-30 16:34:02 +08:00
Benau
25301f9cc6 Update translation source 2021-08-30 16:10:01 +08:00
Benau
48fa33ef58 Fix building with latest freetype 2021-08-30 16:06:34 +08:00
Benau
da881ac459 Update download assets size 2021-08-30 16:06:19 +08:00
Benau
6d763a1e26 Update mojoAL 2021-08-26 09:23:53 +08:00
Benau
bd3fd0957a Update translation and AppData 2021-08-26 01:22:22 +08:00
Benau
f1f5a47bcf Update download assets size 2021-08-25 15:18:15 +08:00
Benau
4d5d33d1cb Try to fix crash found in google play console 2021-08-25 15:17:47 +08:00
PoorPockets McNewHold
e487990fac Update Solus dependencies.
I had previously suggested a pull request for it. However, the main issue with my original pull request was that it didn’t contain some packages I already had installed. So, I’ve corrected on misspelled package name, and added the remaining ones.
2021-08-25 09:07:21 +02:00
riso
2251663c1e Tooltip background for Coal skin (#4584)
* small file size of tooltip.png
2021-08-24 12:04:01 +08:00
riso
26bb43dadd load speedfore.png and speedback.png based on skin 2021-08-20 23:17:17 -05:00
Benau
e66110ae17 Make sure camera is reset if on ground, see #2916 2021-08-20 13:48:40 +08:00
riso
93612e6039 use skin color for tooltip text 2021-08-19 17:21:21 -05:00
riso
a5f0c71a34 put gaugefill_rainbow in the correct place 2021-08-19 17:14:19 -05:00
Benau
037efe60fb Try to fix missing music after switching
m_current_music assignment should be done in sfx thread if music is on
2021-08-19 09:50:23 +08:00
Benau
7a07b716b8 Don't call startMusic every frame on race result screen
It breaks pausing music when going background in android
2021-08-19 09:28:04 +08:00
Benau
a1c099cc1c Fix clearCurrentMusic so it really stops current music 2021-08-19 09:15:43 +08:00
Benau
6d29bb21ba Remove unneeded ranking display in FFA 2021-08-16 10:20:36 +08:00
Benau
bbbd14ccf7 Use a larger addons loading dialog for more buttons now 2021-08-16 10:00:27 +08:00
riso
b1980bc461 color slider for Cartoon 2021-08-15 11:26:52 -05:00
riso
7045f8dbf7 use a rainbow kart color slider 2021-08-13 21:09:24 -05:00
Benau
11ccdda699 Update translation source 2021-08-11 10:52:55 +08:00
Benau
2dffb78679 Implement background download for addons pack 2021-08-11 10:50:27 +08:00
Benau
e823852a21 Add cancel button in downloading addons and assets dialog 2021-08-11 09:28:06 +08:00
Benau
5ec99947e9 Make some flyable sfx lower volume in splitscreen multiplayer 2021-08-10 08:46:45 +08:00
Benau
ad531ba556 Fix crash if missing particle file 2021-08-10 08:20:40 +08:00
Richard Qian
7913457e63 Prevent locked tracks from being played in the high score info dialog 2021-08-09 14:13:11 -05:00
Richard Qian
35ddf4c4d9 See grand prix high scores in the GUI high score manager (#4573) 2021-08-10 01:49:49 +08:00
Benau
639eadaa2d Fix broken cert reading if located in unicode named folder 2021-08-08 14:10:39 +08:00
Benau
b89dd89dad Initialize glyph layouts if text exists to fix #4557 2021-08-06 12:49:38 +08:00
Benau
bc43eee98c Fix broken user creation since PR #4563 2021-08-06 12:46:45 +08:00
Benau
bc667d3b36 Update translation source 2021-08-06 09:36:00 +08:00
Benau
91e2217eba Fix typo 2021-08-06 09:21:42 +08:00
Benau
dfd932caf5 Fix crash in networking grand prix 2021-08-04 09:56:33 +08:00
Kuba
0b45ac9fd9 Add grandprix highscore (#4566) 2021-08-02 11:38:07 +08:00
mrkubax10
0db347739e Fix actions due to change from master to main 2021-07-31 20:12:35 +02:00
PoorPockets McNewHold
9c80415d6b Added Solus dependencies commands
https://getsol.us https://distrowatch.com/table.php?distribution=solus
The package's name are generally the one stated in the README.md already, but they’re a couple of differences. Not that difficult to compensate searching for, but I did it anyway for others.
2021-07-31 08:01:09 +02:00
Benau
608f75e0af Fix GLES2 build 2021-07-29 12:39:00 +08:00
Benau
508eef4b81 Fix exit crash on some AMD driver 2021-07-29 10:44:21 +08:00
mrkubax10
8758795791 Fix logout when changing local name 2021-07-26 15:17:15 +02:00
Kuba
2264ca6faa Fix tracks not showing in grandprix info (#4561)
Tell user grandprix is not available if it includes locked tracks in singleplayer
2021-07-25 01:26:56 +08:00
Benau
6673e3cc48 Update icons licenses 2021-07-23 23:01:19 +08:00
courbe
39006f9889 Rank by greatest time if points equality in Follow the leader for GP (#4562) 2021-07-22 01:58:14 +08:00
Mary
feb0118b94 Fix Switch OpenAL (#4560) 2021-07-21 00:39:36 +08:00
QwertyChouskie
8a7413b3e7 License documentation work (#4556)
* Properly document licenses of files in icons/android folder

* Fix documentation of two files in Cartoon skin
2021-07-19 18:11:56 +08:00
Benau
840a023aa6 Fix invalid memory access when closing window during cutscene 2021-07-19 13:02:49 +08:00
Benau
ced813a483 Fix memory leak 2021-07-19 12:24:47 +08:00
Benau
a92e021625 Fix compilation with old SDL2, fix #4554 2021-07-19 12:22:45 +08:00
Benau
d988f502a4 Add Mbed TLS 3.0 support 2021-07-19 12:07:40 +08:00
CodingJellyfish
b23246fdcf Add goal to race result 2021-07-19 11:44:05 +08:00
Benau
6e8ede289c Update translation and credits 2021-07-17 13:30:16 +08:00
Benau
c351f1bd01 Fix icon size not reset when playing different mode 2021-07-17 13:03:21 +08:00
Benau
24f96ccfc9 Avoid network incompatibility if players add or remove official karts 2021-07-17 11:07:34 +08:00
Benau
a62c355e91 Add code to generate official karts list 2021-07-17 10:59:13 +08:00
Mary Strodl
abdad11a71 switch: mojoal on switch by default 2021-07-15 17:55:36 -04:00
Kuba
feb8ba51ab Show kart rank in race result screen (#4551) 2021-07-15 01:19:55 +08:00
Benau
808dc0e8e4 Use mojoal for switch until openal build is fixed 2021-07-14 12:15:36 +08:00
Benau
dc7eb1e76c Update translation source 2021-07-14 10:49:17 +08:00
Benau
5ec426b275 Don't clear password if downloading error, fix #4549 2021-07-14 10:47:14 +08:00
Benau
f22f4a52ef Remove server bookmarks based on inactive days 2021-07-14 10:44:15 +08:00
Benau
8711265877 Fix sometimes non-clickable server bookmark button 2021-07-14 10:40:30 +08:00
Benau
f490b1039a Remove unneeded characters from server bookmark key 2021-07-14 10:38:59 +08:00
Benau
63cee25884 Hide bookmarks icon when showing lan server 2021-07-14 10:36:25 +08:00
Benau
b465729304 Implement server bookmarks for global networking 2021-07-12 16:50:16 +08:00
Benau
6f7a196c70 Fix crash when pressing close window button in GP result screen 2021-06-29 13:02:16 +08:00
Benau
d2df7c6de9 Fix temple arena broken rescue in graphical server 2021-06-25 19:35:37 +08:00
Benau
26b5d413e4 Update cv2pdb.exe download location 2021-06-25 18:21:01 +08:00
Benau
5b0c9763b4 Fix crash when using check debug with ghost replay and server 2021-06-25 13:09:16 +08:00
Benau
05f029abc0 Upgrade checkline by using two triangles testing 2021-06-25 12:46:29 +08:00
Heuchi
49910c4cea speed up computeChecklineRequirements() 2021-06-22 12:16:54 +02:00
Benau
097ed56626 Update translation and source 2021-06-20 12:50:57 +08:00
Benau
d20d487649 Fix cancel ranked race exploit 2021-06-20 01:19:54 +08:00
mrkubax10
c6c76790dc Show survive time in three strikes battle 2021-06-18 17:36:29 +02:00
Benau
e22946b7f5 Make sure a user exists for server
Lan headless STK can be missing it
2021-06-15 13:01:37 +08:00
Deve
f8836ea4eb Avoid linking with libmvec and try to use static libgcc/libstdc++ libs 2021-06-13 23:53:23 +02:00
Deve
4767b5d48d Update linux build script for new dependencies 2021-06-12 08:21:59 +02:00
Benau
17d26338f8 Add MoltenVK support
SDL_Vulkan_LoadLibrary is used for macOS to keep 10.9 compatibility
2021-06-10 13:21:11 +08:00
Benau
d5c848c4c2 Add basic vulkan driver 2021-06-10 01:02:24 +08:00
Benau
40949a03d2 Fix uninitialized variable in race result screen 2021-06-06 01:08:22 +08:00
Jörn Eichler
87e3e74692 Show kart color on icon list (#4537) 2021-06-06 00:59:39 +08:00
Benau
724386bfcd Fix MSVC x86_64 build 2021-06-05 18:28:48 +08:00
Benau
4a5202f40f Allow setting logger level 2021-06-04 07:22:51 +08:00
Kuba
8f15575eef Added e-mail change dialog (#4536) 2021-06-02 10:21:38 +08:00
Benau
5fed067b9c Update STK irc link to libera.chat 2021-06-02 10:12:50 +08:00
Benau
e347c72f12 Fix uninitialized m_focus_on_cancel 2021-06-02 10:07:34 +08:00
Benau
6c2c5131b0 Add apple.yml and rename main.yml to linux.yml 2021-05-25 09:30:14 +08:00
Heuchi
d4ad37e6c6 Automatically update list when search string is changed in addons_screen 2021-05-22 13:05:01 +02:00
Benau
2f98a011d4 Fix crash when pausing during grand prix 2021-05-22 11:50:34 +08:00
Benau
8124079d6c Fix button state not reset 2021-05-22 11:00:59 +08:00
Benau
d407bb08e2 Fix option device screen for small screen with long text 2021-05-22 09:06:24 +08:00
Benau
04a2306c4c Add ingame option to toggle force feedback of joysticks 2021-05-22 08:12:56 +08:00
Mary
7bf9a0a4a8 Rumble on collisions (#4532) 2021-05-21 23:45:35 +08:00
Benau
10da6285fc Allow disabling tips if empty (or no) tips.xml 2021-05-21 23:33:47 +08:00
Benau
a3e1732ac7 Update translation and AppData file 2021-05-21 23:17:09 +08:00
Benau
38bcb92d53 Fix #4533 2021-05-21 23:13:55 +08:00
Benau
fa03bc4461 Fix compiler warning 2021-05-21 22:04:31 +08:00
Benau
ba2265d2ec Bring back compatibility code of materials for addons 2021-05-21 21:14:26 +08:00
Benau
e992bb9cef Fix simulator missing in Xcode project 2021-05-21 17:47:40 +08:00
Benau
ae32b8fc61 Fix max FPS order for iOS STK 2021-05-21 16:21:06 +08:00
Benau
fd10286f9d Update INSTALL.md for MacOSX 2021-05-21 13:31:00 +08:00
Pino Toscano
cf80fbfca7 Stop installing app icon in pixmaps location (#4534)
The /usr/share/pixmaps location is considered a legacy location for
application icons; since the application icons are already installed in
the global XDG hicolor theme, then simply stop installing the 512px one
in the legacy pixmaps location.
2021-05-20 16:52:27 +08:00
Benau
dad40e59de Fix never ending bell when network game ends 2021-05-20 15:21:50 +08:00
Benau
3ee940b242 Fix possbile null buffer 2021-05-20 15:13:29 +08:00
Benau
ed268331f1 Disable macos-latest in main.yml for now 2021-05-20 11:48:47 +08:00
Benau
35b57a7dbb Add cctools CMake toolchain for cross-compiling all Apple targets 2021-05-20 11:27:18 +08:00
Benau
7109f38725 Update CMake toolchain for iOS Xcode 2021-05-19 11:34:34 +08:00
Benau
e85ef1b879 Fix iOS compilation 2021-05-19 11:32:14 +08:00
Benau
33459e852c Use libsamplerate to handle pitch for MojoAL 2021-05-19 11:29:48 +08:00
Benau
be7b46f7d9 Fix missing initialization of some sound buffer 2021-05-15 00:03:06 +08:00
Benau
8e885d15ac Calculate duration from the original buffer size
MojoAL use SDL_AudioCVT internally which doubles the size
2021-05-14 23:58:59 +08:00
Benau
ec02331c73 Use MojoAL instead of OpenAL for Apple
Because OpenAL in iOS is broken at the moment
2021-05-14 23:51:24 +08:00
Dave Murphy
f938ef38b1 Fix switch hacks (#4530) 2021-05-14 23:45:52 +08:00
Benau
08a97f7ae5 Update download assets size 2021-05-08 11:20:28 +08:00
Benau
32e489b88e Update translation source, AppData and Desktop file 2021-05-08 11:13:41 +08:00
Benau
97994d66ed Fix download assets instruction for Android TV 2021-05-08 11:12:52 +08:00
Kuba
2cc16b4edb Fixed issue #4243 (#4527) 2021-05-08 10:24:36 +08:00
Benau
fc387fa30d Fix broken accelerometer with iOS
After some iOS version it gets reversed for orientation handling
2021-05-07 22:18:16 +08:00
Kuba
8add6fba2f Added last entered IP addresses list (#4525) 2021-05-07 01:01:24 +08:00
Benau
1e38cba76c Update Toolchain-ios-xcode.cmake for new dependencies 2021-05-06 01:17:18 +08:00
Benau
9a20cda1e7 Use weak_framework for CoreHaptics 2021-05-05 13:57:55 +08:00
Benau
ab7ad6058f Update android build instruction with new dependencies download location 2021-05-04 10:40:50 +08:00
Benau
75f14740ad Add a way to print message to stk gui from java 2021-05-04 09:03:38 +08:00
Benau
008884bd72 Update translation 2021-05-02 14:10:04 +08:00
Benau
557ba52ec7 Try to remove screen padding by moving the setting to style file 2021-05-02 14:01:29 +08:00
Benau
98ad55ed4e Fix missing sound with latest OpenAL
And linking error with FreeType
2021-05-02 13:59:18 +08:00
Benau
f909d12749 Use CMake instead of Autoconf tools in Android build script
And replace OpenSSL with MbedTLS
2021-05-02 12:28:42 +08:00
Benau
261932e7b1 Make sure no kart animation exists during goal reset 2021-05-02 00:37:35 +08:00
Benau
4081efbcaa Use initial orientation for device rotation instead of hardcoded values 2021-05-01 16:39:06 +08:00
Benau
3480a5da9b Update MinGW toolchain for new dependencies 2021-05-01 01:29:58 +08:00
Kuba
6e83c825ca Added sound when time is less than 5 s in time based challenges (#4523) 2021-05-01 01:27:18 +08:00
Benau
0d84350ab7 Create Windows installer with GitHub Actions for tagged build 2021-05-01 01:06:11 +08:00
Benau
6bcad633ef Remove built binaries for less cache size 2021-04-30 09:10:59 +08:00
Benau
a2004e53fb Fix GitHub Actions cache not saved 2021-04-30 01:08:07 +08:00
Benau
74010b74b9 Update GitHub Actions build status badges 2021-04-29 12:30:00 +08:00
Benau
4d5dc9f77e Update workflow script for tag changes 2021-04-29 12:24:22 +08:00
Benau
836de13a91 Update Windows building instruction 2021-04-29 12:17:37 +08:00
Benau
b56a042cd3 Fix compiler warnings 2021-04-29 01:13:26 +08:00
Benau
a51b7c4ed4 Remove unused AppVeyor file 2021-04-29 00:54:32 +08:00
Benau
ce1ff8f853 Add Windows GitHub Actions workflow file to upload STK binary 2021-04-29 00:51:23 +08:00
Benau
2a50137966 Disable Wiiuse for MSVC build
We have too many reports about WinHID not found, and it's broken
at the moment for ARM64
2021-04-27 16:26:00 +08:00
Benau
0e9d45665b Update LLVM MinGW toolchain and CMake scripts for ARM64 Windows support 2021-04-27 16:19:17 +08:00
Benau
92f6158ffd Default to DirectX 9 driver for ARM64 Windows 2021-04-27 16:13:47 +08:00
Benau
6e26a0ad80 Add crash reporting support for ARM64 Windows and fix typo for x86_64 2021-04-27 16:07:12 +08:00
Benau
f2845034a0 Remove unused field 2021-04-23 21:29:58 +08:00
Benau
47011140a5 Add code to switch render driver at runtime 2021-04-23 21:21:39 +08:00
Benau
6a24b5cb0e Correct the order of begin / end scene
It fixes DirectX 9 driver warnings
2021-04-23 15:36:16 +08:00
Benau
eb59d5645b Flatten the minimap for DirectX 9 driver
Otherwise some vertices too far from camera will not be rendered
2021-04-23 11:19:49 +08:00
Benau
a5f29bc560 Add GEDX9Texture 2021-04-23 10:58:19 +08:00
Benau
18690fad3a Add scissor test for CD3D9Driver 2021-04-21 16:39:45 +08:00
Benau
b9b5ac2fec Add DirectX 9 driver 2021-04-21 16:33:52 +08:00
Benau
b6d58f55c4 Remove some GL code in race gui 2021-04-21 12:17:45 +08:00
Benau
c58de0a91f Make GEGLTexture texture locking read only 2021-04-21 11:43:01 +08:00
Benau
7367610c1f Fix broken billboard text in legacy gl driver 2021-04-21 10:24:29 +08:00
Benau
8cae79b604 Fix memory leak in legacy device 2021-04-21 09:18:11 +08:00
Benau
a1606f04d7 Fix alpha mask for legacy device 2021-04-21 09:04:39 +08:00
Benau
f3d8b96149 Move scissor test reverse code to gl drivers 2021-04-21 07:56:37 +08:00
Benau
62bf288530 Fix recreate device crash 2021-04-20 16:04:29 +08:00
Benau
b21c620fea Make SDL device handle non-gl drivers 2021-04-20 00:51:42 +08:00
Benau
f95d73c041 Allow starting STK with non-gl drivers 2021-04-19 12:58:46 +08:00
Benau
23ec5ba379 Don't crash if null image 2021-04-19 12:43:35 +08:00
Benau
af7d6cf391 Move scissor test to IVideoDriver 2021-04-19 12:17:10 +08:00
Benau
2c3922f64f Move RGBA conversion to GEGLTexture 2021-04-19 11:41:22 +08:00
Benau
b3aa499cd4 Fix mingw build 2021-04-18 09:46:44 +08:00
Benau
8e01db0bc5 Remove unused code 2021-04-18 00:51:50 +08:00
Benau
64c5762eeb Implement updateTexture for GEGLTexture 2021-04-18 00:50:12 +08:00
Benau
4f9471dcff Add createFontTexture 2021-04-17 15:32:33 +08:00
Benau
b90d4b2d8a Add image manipulator for srgb texture 2021-04-17 13:54:50 +08:00
Benau
f3497a9b3b Remove some reference to STKTexture 2021-04-17 13:26:37 +08:00
Benau
2ef63f997e Allow texture console reloading GEGLTexture 2021-04-17 13:16:27 +08:00
Benau
c4cae7d622 Add GEGLTexture 2021-04-17 12:44:25 +08:00
Benau
85843433c0 Add server dummy texture 2021-04-14 12:09:14 +08:00
Benau
964bb95445 Clear up function parameters 2021-04-14 11:12:54 +08:00
Benau
7496609bfa Use dedicated function to handle sky textures 2021-04-14 09:34:59 +08:00
Benau
c5bbefd476 Use 64bit texture handler for pointer later 2021-04-14 01:05:44 +08:00
Mary
65faa029ca Fix switch github actions cache (#4519) 2021-04-14 01:01:09 +08:00
Benau
16e232091d Fix release location 2021-04-09 11:24:38 +08:00
Mary
7f3de8ff5a Add Switch to Github actions (#4514) 2021-04-09 10:36:49 +08:00
panos
4f55f11000 Revert "Haiku graphics mode scheduler low latency rather power saving for" (#4515)
This reverts commit 087ad350d7.
2021-04-07 17:42:34 +08:00
David Carlier
087ad350d7 Haiku graphics mode scheduler low latency rather power saving for
insuring best performance.
2021-04-01 17:10:08 +00:00
Benau
a738fa66e3 Avoid crashing if broken LOD level
It doesn't matter now because we have auto LOD computing
2021-03-29 11:22:37 +08:00
Deve
0889362f27 Add arm builds to the build script 2021-03-25 23:22:49 +01:00
Benau
5d3e4e97da Allow uploading OSX build to github release page for each commit 2021-03-25 08:55:10 +08:00
Timo Schwarzer
4266f02559 Mark servers as password protected on RR_INCORRECT_PASSWORD 2021-03-23 23:30:32 +01:00
Benau
8819e633f8 Update translation 2021-03-22 08:14:53 +08:00
Benau
c0ffdc78f4 Improve appearance of dialog with display cutout 2021-03-22 07:58:20 +08:00
Benau
4ec4fda91b Implement display cutout support for android 2021-03-22 07:04:21 +08:00
Benau
c7e337f96f Simplify discord rich presence code 2021-03-21 10:03:28 +08:00
Benau
9a0b72a282 Simplify json sanitizing 2021-03-21 09:57:41 +08:00
Benau
4bc85a6179 Allow translating in UTF8 2021-03-20 11:22:06 +08:00
Deve
3a6038fc67 Simplify linux build script a bit 2021-03-20 00:35:40 +01:00
Mary
6631dbdfb9 RichPresence: support addon tracks and karts (#4506)
* RichPresence: support addon tracks and karts

* RichPresence: use 'Story Mode' for internal tracks

* RichPresence: only cache is assets has data

* RichPresence: update RPC after asset list retrieved

* RichPresence: move AssetRequest processing to main thread
2021-03-19 23:37:06 +08:00
Benau
dd5fcfce47 Remove assertion for discord rich presence 2021-03-18 11:03:16 +08:00
Benau
b59c65e989 Fix addon karts display of online games 2021-03-18 10:58:06 +08:00
Benau
7763d851be Add spectate icon in discord rich presence 2021-03-18 10:38:29 +08:00
Benau
cf6bbfae05 Update translation and AppData 2021-03-13 00:52:30 +08:00
Benau
723b13e9c7 Update translation source 2021-03-13 00:52:15 +08:00
Benau
9767f73da6 Don't make debug message translatable 2021-03-13 00:50:54 +08:00
Benau
2dde385cf5 Use dns c library if enabled 2021-03-12 09:32:40 +08:00
Mary Strodl
67af723087 Fix switch compilation 2021-03-11 20:13:27 -05:00
Benau
f1aa29634b Add dns c library 2021-03-12 09:07:14 +08:00
Mary Strodl
9d57deb35b RichPresence: return on doConnect even when disabled 2021-03-11 07:42:51 -05:00
Benau
da05d1e905 Make discord code more thread safe 2021-03-11 10:44:24 +08:00
Benau
f2cc6559e6 Fix coding style and use Log::error instead 2021-03-10 16:49:20 +08:00
Benau
d1092349f7 Fix compiler warnings 2021-03-10 10:57:03 +08:00
Mary
0dd3c62a43 Discord rich presence (#4500)
* WIP RPC support

* Might have windows support now, don't peek

* Windows support

* RichPresence: __SWITCH__ => DISABLE_RPC (for MOBILE_STK support)

* RichPresence: Handle JSON strings according to spec, support for addons icon

* RichPresence: use translated difficulty name

* RichPresence: disable when client_id=-1

* RichPresence: thread connection, show server name on RPC

* RichPresence: destroy on close

* RichPresence: don't compile methods at all if DISABLE_RPC

* RichPresence: fix windows compile (untested)

* RichPresence: fix for mac

* RichPresence: Linux needs MSG_NOSIGNAL still

* RichPresence: fix memory leaks, don't spam update while not connected

* RichPresence: free thread on terminate

* RichPresence: handle initial registration

* RichPresence: fix compiler warning
2021-03-10 10:47:33 +08:00
Mary
8daf149895 Switch fixes (rest of cherry pick) (#4504)
* InputManager: support split joycons, fix mappings

* CFileSystem: getAbsoluteFilename() - replace double slashes

* CFileSystem: typo in macro

* debug: use touch handler for debug (strange behaviour on switch SDL)

* InputManager: don't need SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS

* CFileSystem: getAbsoluteFilename() - replace double slashes

* MaterialManager: hack to make material properties apply properly
2021-03-10 09:59:48 +08:00
Mary
cc125c5f68 Switch fixes (#4503)
* InputManager: support split joycons, fix mappings

* CFileSystem: getAbsoluteFilename() - replace double slashes

* CFileSystem: typo in macro

* debug: use touch handler for debug (strange behaviour on switch SDL)

* InputManager: don't need SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS
2021-03-09 23:42:48 +08:00
Benau
cee737e405 Fix incorrect shortcut help 2021-03-09 15:08:08 +08:00
Benau
61d7aec726 Fix missing engine sound after changeKart 2021-03-09 15:05:11 +08:00
Benau
48b73520f0 Allow custom skid sound for newly exported karts 2021-03-09 15:02:54 +08:00
Benau
0a97efc37c Add scripting function to instantly change kart 2021-03-09 13:19:38 +08:00
Richard Qian
f269b4db91 Make demo mode use less hard-coded items
The player kart, difficulty, game mode, and reverse are no longer static values

Also ensure that there is a value pressed when exiting demo via a keypress
2021-03-08 21:27:39 -06:00
Richard Qian
969de9e751 Improved artist debug mode (#4501)
* Add more functionality to the debug menu

Includes:
* Front of kart view
* Inverse side of kart view
* Change to kart #9 or #10
* Attachments for AI karts

* Fix enumeration value not handled in switch for debug camera

* More enhancements to the debug menu, part 2

Includes:
* Restore access to the anchor/anvil powerup
* Clear the current powerup or attachment
* Change to kart #11 or #12
* Flatten karts as if they were hit by a swatter
* Block most of the view with plungers

* Enable executing some keypress actions from the debug menu in a new sub-menu

Includes:
* Rescuing karts from menu
* Pausing the game from menu (but keypresses will cause the game to crash)
* Moved "To next kart" menu entry to be right below "To previous kart" for easier reach

* Change print kart positions to info level, better labeling of side kart views

* Prevent crashes when trying to use 'Behind wheel view' on a ghost kart

* Add close button to the debug slider dialog, and a function to enable/disable spinners

* Make it easier to read and select kart camera targets from the debug menu

* Add another dialog (reusing the debug slider code) to allow the user to select
from a slider the kart number to change to

* The 11th and 12th target slots have been removed to make the submenu cleaner,
but the 9th and 10th slots have been left in place

* The predefined slots (1st place to 10th place) actually use numbers

* Improve the appearance of the FPS (frames per second) counter

* Shift the position closer to the center, so that in-race kart icons are not obscured
* The box and text position adapt based on the screen resolution
* Use a thin black border for the font, and make the font white-colored
* Decrease the font scaling to 0.7, so that other UI elements can be seen more easily

* Improve debug keyboard shortcuts handling, rearrange some shortcuts

Most shortcuts are now handled by Debug instead of InputManager directly
Other changes include:
* Fix moving right in 1st-person view not working
* Change the 1st-person view shortcuts to work more like in Blender
* Add more keyboard shortcuts for quickly seeing the top and sides of a kart
* The key to show player list in soccer mode no longer needs to be held down
* Rearrange some shortcuts to flow more naturally

New list of debug keyboard shortcuts:
* F1 - Normal view
* F2 - Top view
* F3 - Right side of kart view
* F4 - Left side of kart view
* F5 - 1st-person view
* F6 - Reload SP textures
* F7 - Next kart
* F8 - Previous kart
* F9 - Show player list in soccer mode
* Q - Move 1st-person view camera down
* E - Move 1st-person view camera up
* R - Rotate 1st-person view camera right
* F - Rotate 1st-person view camera left

* Exit demo mode when there also are no dialogs active; fixes related crashes

* Improve the debug menu, various fixes to some menu items, and mouse-accessible actions

Includes:
* Debug menu opens at the cursor position, but not at off-screen places
* Ensure that the debug menu stays (almost) within the actual window
* Middle mouse button can also be used to access the debug menu
* Move all items into submenus, rearrange most submenus to keep a compact size
* Add ability to set powerup and nitro amount by debug slider dialog
* Label the some commands with the new keyboard shortcuts
* Screenshots can now be saved via the debug menu
* Texture reloading can now be done via the debug menu

* Add more debug shortcut keys, change many of the existing ones

The full shortcuts list will be explained later

Includes:
* Use Control and Shift keys to fit more shortcuts onto fewer keys
* Label the debug menu items with the keys that can be used to activate them
* Fix more debug menu items causing game crashes in certain situations
* Add help message dialog to tell users the list of static/debug shortcuts; incomplete
* Slightly alter the free margins that the debug menu can appear in
* Render target textures (RTT) can now be dumped via the debug menu
* Replace the 10th kart camera target with the last kart camera target
* Switch the shortcuts used for activating history save and manual replay saving

* Finish labelling the remaining debug actions, complete the debug keys help dialog

Unfortunately, the now unused tutorial message dialog has been repurposed for this use,
and the font sizes greater than 'Large' will cause some text to draw outside the dialog

* Document the remaining command-line parameters, clean up some of them

This adds another method that will print out the previously undocumented debug options

Rename --gamepad-visuali[s,z]ation to --gamepad-visuals

Also fix some comments related to the user config, including the game mode numbers

* The AI cannot handle the anvil powerup anymore, but it won't spam logs anymore
2021-03-08 11:23:28 +08:00
Richard Qian
142c9ccf22 Use the last used input device when launching the tutorial from the help menu 2021-03-07 12:16:23 -06:00
Richard Qian
68e6e93f2e Use a button bar for the keypress dialog that appears during controller configuration 2021-03-07 12:13:32 -06:00
Richard Qian
33b75eae96 Use a button bar for the confirm resolution dialog, and make it slightly smaller 2021-03-07 12:09:47 -06:00
Benau
1d65cd9ffc Move premultiplied alpha to shader 2021-03-07 15:41:00 +08:00
Benau
db98783f09 Make switch broadcast detection ipv6 aware (even unused for now) 2021-03-05 09:47:20 +08:00
Mary Strodl
b93a24a184 Clock up CPU while loading 2021-03-04 09:57:02 -05:00
Mary
7509e1bc0a Support broadcast address on switch (and better service calls) (#4498)
* Support broadcast address on switch. Also use R_SUCCEEDED for service calls

* servers_manager: fallback to default broadcast address
2021-03-04 11:23:03 +08:00
Mary
d9b8b7acad Support for Nintendo Switch (#4491)
* WIP support for Nintendo Switch

* OpenAL is usable

* Remove some debug code, add manual crash when DEBUG_NXLINK is on

* Remove more debug logs

* Support touch, account name detection, language detection. Remove resolution settings

* Stylistic changes

* SFXManager: update on main thread

* Add build script, remove crypto.hpp changes, disable opengl recorder on switch

* make: use sudo where needed, libs=>lib, portlib=>portlibs

* make: build harfbuzz with freetype

* main: remove DEBUG_NXLINK

* socket_address: this comment is no longer relevant

* Fix indentation in SDL, remove extra debug logs from InputManager

* InputManager: make log debug, not info

* CMakeLists: add mbedtls include dirs on switch

* main: deinitialize stuff

* main_loop: fix format
2021-03-04 09:23:23 +08:00
Benau
d1e73f550d Update desktop and AppData files 2021-02-26 16:23:20 +08:00
Benau
460c95fb66 Generate desktop and AppData files with python script 2021-02-26 16:08:15 +08:00
Benau
16c52a693e Warn inappropriate network console usage 2021-02-26 12:01:23 +08:00
Benau
3e0a651e01 Fix possible infinite when broken navmesh with separated nodes 2021-02-26 11:55:16 +08:00
Benau
b05452a9c9 Fix possible crash for mbedtls 2021-02-25 12:15:26 +08:00
Benau
fe6d38b9e2 Fix untranslated non-ready fps string 2021-02-25 11:07:54 +08:00
Benau
073c6bcee9 Update country names 2021-02-22 11:25:11 +08:00
Benau
2947ba42a8 Update translation 2021-02-22 11:19:02 +08:00
Benau
035a761b30 Fix text overlapped with long translation 2021-02-22 10:14:06 +08:00
Semphris
d6967050ab Repaired GitHub actions workflow 2021-02-21 00:40:06 -05:00
Benau
d753393f4d Use MbedTLS instead of Nettle 2021-02-21 01:06:22 +08:00
Benau
39c42c3f0c Fix 1st time infinite start after server creation failure 2021-02-19 10:25:46 +08:00
Benau
b6fd98675a Update translation source 2021-02-16 09:27:52 +08:00
QwertyChouskie
559a72aab5 Fix english
Minor fix.
2021-02-15 15:38:48 -08:00
Benau
262c8f2f07 Fix #4488 2021-02-13 10:33:26 +08:00
Benau
cde382bcff Update translation source, appdata and desktop file 2021-02-12 12:47:57 +08:00
samuncle
5cb36e38cf Feature/enable lod autocompute (#3970)
* Enable LoD autocompute

* bring back the autocompute lod function

* Add the area as main function to compute the lod level

* Bring back the area based auto lod computation

Co-authored-by: samuncle <samuncle06@gmail.com>
2021-02-12 11:16:38 +08:00
Richard Qian
f136c6fe36 In-game high scores management (#4483)
* Add in-game high score selection screens, based on the ghost replay screens

Its functionality is basic for now, mainly to let players have a central place to view
their high scores

Other things to improve:
* Allow sorting the high score entries by criteria
* Allow deleting high score nodes and possibly entries
* Use better icons

* The string for the high scores title in the track info screen can now be translated

* Refine in-game high score selection screens

Includes:
* High score info dialog now shows track and setup information
* A race can be started with the displayed setup, using the current player and kart
* Icon to access the screen now placed between the tutorial and achievements buttons
* It is possible to delete a specific high score group or all of the high score groups
* Change the order of some columns to make them easier to hide for non-linear modes
* The list will now filter out enpty high score groups

* Replace bomb icon (as used in the help menu) with the full object version from STK 0.8

It has been edited to remove most of the transparency in the object itself

* Implement column clicking in the high score selection screen, and minor GUI fixes

Note that high score entry sorting is not yet working properly

Includes:
* Top right buttons replaced by button bar containing them; fixes unreliable clicking
* High score manager has some one-line functions moved into its header file
* High scores can be sorted by some criteria
* Sorting is done before every time high scores are saved

* Fix header define names for the high score info dialog

* Fix high score sorting, reorganize its associated code

* More refinements to the high score selection screen

Includes:
* Clearing high scores no longer causes memory leaks
* The manual refresh button has been removed, as it has been deemed useless

* Remove unused header files for the high scores information dialog header

* The high scores box in the track information screen no longer has '='

* Fix pressing escape key in the high score information dialog crashing the game

Also remove unused widget variables and unnecessary function overrides

* Do not write high scores for races that have 0 laps and/or have no real karts

* Allow passing a parameter to prevent high scores from temporarily being written

This setting lasts only as long as the game runs; it is useful during track and
kart animation testing, where unwanted high score entries should not be written

* Force update sources.cmake, as new source files are being added for high scores screens

* Fix memory leak and strings

Co-authored-by: Benau <Benau@users.noreply.github.com>
2021-02-12 11:12:43 +08:00
Richard Qian
ee91cf31e2 Fix missing space in fatal error for non-parent armature bone detection 2021-02-11 12:11:25 -06:00
Richard Qian
9fdec3067e Fix a minor issue for the comment with difficulty not showing SuperTux mode 2021-02-11 12:06:33 -06:00
Richard Qian
a3b34e6823 Several UI fixes (#4484)
* Open the confirm dialog if exiting the grand prix editor with changes by escape key

* When launching the tutorial, use the last used device instead of the first keyboard

* When launching story mode, use the last used device instead of the first keyboard

* Make the kart color selection dialog more consistent with other dialogs

Includes:
* Add an icon button bar with containing actions to apply changes or to cancel them
* The kart only shows its straight frame, without animation; it is slightly smaller
* Adjust the vertical space between widgets, to try keeping the kart size larger

* Use a button bar for the video settings and custom camera settings dialog
2021-02-12 02:01:11 +08:00
samuncle
b43b5c6201 Merge pull request #4478 from supertuxkart/feature/remove-old-code
A lot of old options for materials.xml format where flagged as deprecated. They are now removed. Addons will not break but might have a few visual artifacts. They should be upgraded by artists to the new structure.

The blender exporter was also cleaned.
2021-02-08 23:30:30 +01:00
Benau
4aecc8988d Fix iOS build 2021-02-09 01:41:03 +08:00
Benau
1b062279c6 Update translation 2021-02-08 10:42:28 +08:00
Benau
85cea43077 Allow starting offline CTF from command line 2021-02-08 10:32:10 +08:00
Benau
41bbe3df20 Fix #4477 2021-02-08 08:54:28 +08:00
Benau
d2b98456a7 Fix #4475 2021-02-08 08:25:48 +08:00
jean
89acc4e6a0 Removing sky dome (not used anywhere + deprecated even in irrlicht) 2021-02-07 21:56:58 +01:00
jean
cee3cb79a5 Removed clouds feature. Should be done with custom shaders now. Could be in the future part of weather 2021-02-07 21:31:22 +01:00
jean
ab2e35579f Remove old unused properties 2021-02-07 20:33:29 +01:00
jean
6e64ce70df Remove compositing from supported features (it is replaced by shaders now and was deprecated anyway) 2021-02-07 19:29:30 +01:00
jean
91980a2fdd compositing=coverage was not used and blend was replaced by shader 2021-02-07 19:20:19 +01:00
jean
60d3e6cc1c Port material to newest format 2021-02-07 19:12:13 +01:00
jean
279cfe2754 This removes transparency=yes a xml property not used with the newest exporter 2021-02-07 19:07:33 +01:00
Benau
6e3744157d Add /mute, /unmute and /listmute to mute certain player chat message 2021-02-07 01:33:37 +08:00
Benau
03a684e62e Update translation source 2021-02-06 10:00:28 +08:00
Benau
5d5f01b4b5 Add backward distance in camera setting gui 2021-02-06 09:13:36 +08:00
Benau
d9d665f45f Fix the icon size in vertical split screen 2021-02-06 08:59:08 +08:00
Benau
a97e65d068 Add smooth transition for soccer goal animation 2021-02-05 20:49:44 +08:00
Benau
5ccbb97046 Fix #4353 2021-02-05 14:58:19 +08:00
Benau
fa4318b6ad Implement smooth frame transition for animated mesh 2021-02-05 14:41:39 +08:00
Benau
01de29670a Fix overworld trophy points not being displayed in mobile STK 2021-02-03 09:46:28 +08:00
Benau
06500e18ca Make init android dialog header more visible 2021-02-03 01:24:58 +08:00
Benau
64b58e5790 Fix #4473 2021-01-30 11:01:46 +08:00
Benau
08f402c825 Replace travis with github action 2021-01-29 09:47:33 +08:00
Benau
63ee2baf48 Add new fonts for Malayalam translation 2021-01-29 09:38:12 +08:00
Benau
9448f95475 Update translation 2021-01-29 09:36:34 +08:00
Semphriss
d5ae0f60d4 GitHub Actions workflow can now be triggered manually (#4474)
Co-authored-by: Semphris <semphris@protonmail.com>
2021-01-29 01:38:37 +08:00
Benau
feb0b0a68c Add warning when low battery level for joysticks 2021-01-28 12:23:21 +08:00
Benau
e05c0b095d Update translation 2021-01-28 11:32:16 +08:00
Semphriss
7d366acd42 Added GitHub actions worlkflow file for Linux (#4472)
* Added GitHub actions worlkflow file for Linux

Also includes content needed for macOS, but macOS builds are disabled because harfbuzz can't seem to install properly

* Change license of GitHub Actions workflow file to CC0

Co-authored-by: Semphris <semphris@protonmail.com>
2021-01-27 23:59:19 +08:00
Benau
d1c2688510 Fix outdated new addon arrow if stk is killed in background 2021-01-26 16:33:19 +08:00
Benau
65f23987f1 Fix inconsistent kart size with server 2021-01-26 14:52:22 +08:00
David CARLIER
eb5bb253f3 debugging current thread id on apple too 2021-01-22 20:44:57 +00:00
Joshua Samenfink
011b2cecf2 Change Ubuntu to Debian-based Distributions (#4468)
Ubuntu is based on Debian :)
2021-01-22 17:05:31 +08:00
Deve
b064c38f09 Disable light scattering on android by default 2021-01-21 23:04:36 +01:00
Deve
3b02643db3 Try to enable advanced lighting on newer android phones.
We can see what is the feedback if it's fast enough for users. It still looks much better than without advanced lighting even when resolution is lower.
2021-01-20 00:12:12 +01:00
Deve
a7a1c8abca Some work with scale rtts.
IMO auto scale doesn't have much sense on desktop computers, because advanced lighting was enabled by default for a long time and graphics level 3 should be fast enough as it is. And still now rtts scale it's easily configurable in options.

I fixed deactivated "render resolution" spinner when you enter graphics options when advanced lighting is disabled.

I also added a function that reads dpi on android and it sets rtts scale based on this value. SDL is not initialized yet in this place, so getDisplayDPI() is not possible.
2021-01-19 23:58:51 +01:00
QwertyChouskie
6d3ee0ce31 Add Render resolution (scale_rtts) slider with auto-mode
Auto mode adjusts based on your display's DPI in order to hit a target DPI.  Currently it will default to Always Full for render resolution, but High Quality or even Quality might make a good default, community testing is needed.
2021-01-19 00:12:20 +01:00
David CARLIER
2899cf8977 Mac M1 build fix proposal avoiding mixing up with homwbrew for Rosetta
as well.
2021-01-09 22:33:42 +00:00
Omer I.S
b77bd9816d Update Noto Sans Hebrew (#4462)
* Delete NotoSansHebrew-Regular.ttf

* Update Noto Sans Hebrew

* Delete NotoSansHebrew-Black.ttf

* Update Noto Sans Hebrew
2021-01-06 00:47:09 +08:00
Julian Schönbächler
c799fedf45 Fixing minor ambient lighting bug
Spherical harmonics: if no ambient map assigned, use specified color (but correctly)
2021-01-03 02:07:43 +01:00
riso
3a2632dd62 Small fix of icon size on race result ui and space size on race gui (#4455)
* fix team icon size on race result UI (scale based on text size)

* solve issue of too large space between score and score limit for monospace font
2020-12-27 10:23:43 +08:00
riso
ad5ffc4900 small fix of kart color slider and kart icon in result screen (#4454)
* use default kart color instead of 100 in kart color slider

* scale kart icon in race results

* prevent using font->getDimension
2020-12-26 15:45:28 +08:00
riso
5f6eb5e440 Few improvements of spinner and option UI (#4453)
* few improvements of option UI

* small fix

* show the correct spinner text when not activated

* camera name for translation

* clean the code (loop camera spinner)
2020-12-26 03:29:56 +08:00
David Carlier
edcf9cb624 OpenBSD utility build update. 2020-12-24 16:17:51 +00:00
riso
0d10f11a7f reset camera settings 2020-12-23 23:23:27 -06:00
riso
ce13648721 camera settings 2020-12-23 21:39:30 -06:00
Richard Qian
0db8d50359 More configurable music (loop end support, different race result music) (#4445)
* Allow setting [again] track reverse mode via command line

* Make composer field in music information files optional

* Add support for loop end of music

* Remove print statements used for checking current music play time

* Support playing different music on race results screen

Also make them configurable in stk_config.xml

* Allow configuring grand prix win/lose and feature unlocked music in stk_config.xml

* Fix coding indentation style

* Fix warning when scrolling track screenshots in grand prix results

* Display the rank a player kart finishes in if not in 1st place
2020-12-21 02:14:52 +01:00
Benau
82b7ab0d17 Update translation 2020-12-08 09:27:54 +08:00
Benau
922296f5eb Use correct calling method for jni functions 2020-12-08 09:03:47 +08:00
Benau
0e1732c45d Implement auto acceleration for steering wheel from mobile control 2020-12-08 08:51:30 +08:00
Benau
7f9f4dc182 Fix compilation with latest sdl2 2020-12-05 14:22:59 +08:00
Nathan Mills
ff2d4a950e Fix access out of bounds warning with Cppcheck 2.2 (#4438) 2020-12-05 14:15:44 +08:00
Benau
9f1ae2b761 Try to fix missing translation for korean 2020-12-04 13:53:46 +08:00
Benau
847e9ed417 Update translation, desktop file and appdata 2020-12-04 13:53:07 +08:00
Benau
5596a800f1 Add link to preview release binaries 2020-12-04 12:04:43 +08:00
Benau
dbee027949 Remove references to unused library dependencies 2020-12-04 12:02:27 +08:00
Benau
5500b4dcc9 Avoid making filenames lower case in windows
It breaks fallback translation (zh_TW to zh_tw) which tinygettext
uses zh_TW to detect
2020-12-04 11:08:20 +08:00
Benau
ad7751f952 Allow android 4.1 build 2020-12-04 10:04:44 +08:00
Benau
3f0eb215f7 Replace glew with glad with vulkan support 2020-12-04 09:39:06 +08:00
Benau
85984d143a Only count approved addons for indicator 2020-12-01 16:17:47 +08:00
Benau
61833c9c26 Fix compilation with latest SDL 2020-11-29 12:42:11 +08:00
Benau
273c157b93 Add badge to indicate new addons for downloading 2020-11-28 00:57:40 +08:00
Benau
ae077290bb Update translation source 2020-11-19 14:27:18 +08:00
Benau
60cb0a1ccd Remove duplicated strings 2020-11-19 14:26:45 +08:00
Benau
8eb318675d Allow saving custom camera settings 2020-11-19 12:17:01 +08:00
Benau
0a273d8882 Display race gui in 1 more spectating mode 2020-11-17 01:19:19 +08:00
dulsi
e2d4936056 Add gamerzilla support to achievements. (#4386)
* Add gamerzilla support to achievements.

* Move all gamerzilla code into one file. Should we want to support another achievement system like Steam, it can be isolated to the WebAchievementsStatus class.

* Add WebAchievementsStatus files.

* Add version number to achievements file. Update graphics. Generate achievement list from internal system.
2020-10-31 11:32:40 +08:00
David Carlier
a27737ef85 xdg-open NetBSD supports it too. 2020-10-24 23:01:10 +01:00
Deve
801675603c Some fixes for android build script 2020-10-24 23:46:45 +02:00
MrIceblock
af4cb91f47 Fix some more typos (#4414)
* Some more grammar fixes.

* Fix a typo.
2020-10-25 01:04:54 +08:00
MrIceblock
9d7c63803e Typo (#4413) 2020-10-24 16:33:07 +08:00
Benau
9dbb8e2c8f Fix #4406 2020-10-24 10:11:44 +08:00
Benau
89256f6e30 Update translation 2020-10-24 09:25:49 +08:00
Benau
ccd3f8144c Update first time internet dialog string for removed hardware stats 2020-10-24 09:25:24 +08:00
RedstonekPL
e7557128dd Fixed a typo in camera.cpp
There was a minor typo on line 71.
2020-10-23 20:05:30 +02:00
Newbyte
f5d4475efc Fix build when SDL2 is built with DirectFB support 2020-10-23 12:23:43 +02:00
David Carlier
eace0982a2 DragonFlyBSD support, mainly FreeBSD codepath. 2020-10-10 14:14:49 +01:00
Benau
23e4960fef Don't show kart team completely when spectate 1 in lobby 2020-10-06 07:00:57 +08:00
Dmitry Marakasov
4d97c5156c Fix include path order for all bundled libraries
...to avoid picking system includes when bundled libraries are used

Issue: #4372
2020-10-02 13:05:36 +02:00
riso
0274cd7bd8 Support theming for kart icons (#4395) 2020-10-01 19:11:11 +02:00
QwertyChouskie
4b47cf3f24 Remove separate menu FPS throttling
We should let VSync/m_max_fps (which defaults to 120) do their job.  If a monitor has a refresh rate even slightly higher than 60FPS (e.g. 60.0007FPS), throttling will introduce stutters, even more so at modern high refresh rates (75, 90, 120, etc.)

This also cleans up the code, e.g. the var name `m_throttle_fps` was also being used in the main loop for a different function, despite having the same var name.
2020-09-27 17:10:17 -07:00
QwertyChouskie
1e90c734a3 Condense checkboxes in video options
With the font size set to "Very Large" and the theme set to "Cartoon", the Apply button went slightly outside of the main box.  This fixes that by putting the two checkboxes on the same row, which saves a bit of valuable horizontal space.
2020-09-25 20:35:58 -07:00
Benau
e97d33d6f5 Improve english in AppData 2020-09-21 09:33:35 +08:00
Benau
2fc992ded9 Fix possible crash 2020-09-21 00:49:23 +08:00
Benau
94f4a6f644 Fix typo 2020-09-14 10:30:49 +08:00
Ben Hoff
2474b7496a fix spelling error 2020-09-12 14:31:32 -04:00
Benau
ac832caaeb Fix #4380 2020-09-11 10:14:38 +08:00
Benau
7eb896fe7f Fix #4379 2020-09-11 01:09:32 +08:00
Benau
736209abbe Make chat message mixed with RTL name and LTR text look better 2020-09-10 16:32:04 +08:00
Adnan1091
995fdf8c81 Optimize images 2020-09-09 19:47:37 +03:00
Benau
3bb0f76726 Update translation, AppData and desktop file 2020-09-09 14:49:07 +08:00
Benau
fd4be023d5 Make tinygettext use stk logging 2020-09-09 14:46:29 +08:00
Benau
f1fb30250b Generate plural forms in tinygettext using python script 2020-09-09 13:43:26 +08:00
Benau
1a8b5cd2e1 Fix windows build of tinygettext 2020-09-09 13:36:21 +08:00
Benau
c51d464839 Add new languages to tinygettext 2020-09-09 13:32:53 +08:00
Benau
767ba27598 Add get_all_used_chars to tinygettext 2020-09-09 13:31:37 +08:00
Benau
22fb981fca Disable iconv in tinygettext 2020-09-09 13:29:17 +08:00
Benau
842278ffd9 Update bundled tinygettext
Remove unneeded files like gitignore and test and keep a simplified CMakeLists.txt
2020-09-09 13:27:10 +08:00
Benau
b84f8dcbd3 Generate translation percentage in AppData 2020-09-07 13:01:48 +08:00
Benau
761876d685 Add script to auto update all google play store listings 2020-09-07 11:29:13 +08:00
Benau
6600d16790 Allow generating message for google play beta 2020-09-07 00:45:36 +08:00
Benau
9533cb9d2f Update script to extract message for google play 2020-09-07 00:08:44 +08:00
Benau
6b496f1892 Make AppData translatable and fix #2314 2020-09-04 21:54:02 +08:00
Benau
4ed6c3ce7a Add missing whitespace 2020-09-04 21:46:35 +08:00
Alayan
073e5a4314 Improve the GP editor's track picker layout and behavior
This improves things for #4378 but is not a comprehensive solution. It also includes unrelated improvements to this screen.

- Switch from 2 track rows to 3 track rows. This allows to show more tracks at once. Nonetheless amount of white space between track pictures is still significant. Showing the track name below each track is part of the issue, as it needs space on the bottom and margins on the side to avoid track names overflowing onto each other. Word-wrap for track title would incur a small vertical cost while gaining a lot of horizontal space. Alternatively, the track names could be hidden and only shown on hover (like the game's main track selection screeen).
- Select the standard set of tracks by default instead of all.
- Reduce the amount of vertical spacing for the buttons below the track picker.
- Group laps/reverse and ok/cancel vertically instead of horizontally. This creates clear visual blocks, as the reduced vertical spacing didn't work out well otherwise.
- Add a new selected track picture. The selected track's name is always shown as title, but some users may miss it or not know track names well enough. Now, which track is going to be added to the GP when clicking ok is obvious.
- When selecting a different track, change the lap number to the track's default.
2020-09-03 21:14:11 +02:00
Benau
a36c68542e Make supertuxkart.desktop translatable 2020-09-03 16:43:30 +08:00
Benau
e072122939 Correct the timeout value 2020-09-03 13:35:46 +08:00
Benau
618eb87df0 Use TCP stun for more reliable IP type detection 2020-09-03 13:24:49 +08:00
Andreas Hellquist
6e17d51802 Fixed bug where thunder sounds would continue playing after pausing the game 2020-09-01 20:21:53 +02:00
Dmitry Marakasov
ef911d8401 Fix include path order
...to avoid picking includes from system angelscript when bundled one is used

Fixes #4372
2020-09-01 17:46:16 +03:00
Benau
13fa56d951 Fix #4368 2020-08-31 08:46:02 +08:00
Benau
09319c6c73 Fix #4367 2020-08-31 08:20:50 +08:00
Benau
2e990ac7b3 Fix #4360 2020-08-30 00:44:12 +08:00
Benau
698b6561ba Add default-ip-type info to server_config.xml 2020-08-29 11:47:37 +08:00
Érico Rolim
fe82f77786 network_config: use ns_name_uncompress 2020-08-28 19:30:38 -03:00
Benau
04e538a839 Change release binaries location to GitHub 2020-08-28 23:56:16 +08:00
Alayan-stk-2
fc29cf5fda Switch public ratings to a compound of raw score and RD
The raw score remain used in the core of the formula for expected scores computations.

Also improve the handling of disconnects on rating, with new RD floors
(and so public rating penalty) for recurring disconnects (>= 3 in the last 64 races).
The raw score is less penalized than before, as it's not needed and
make expected score computations more reliable.
2020-08-27 21:43:16 +02:00
Benau
90013b089e Update changelog and credits 2020-08-28 01:42:13 +08:00
Benau
4e6fbd2787 Update android build script to support aab file 2020-08-27 16:28:13 +08:00
Benau
4ee72fde50 Update for latest freetype in android dependencies 2020-08-27 13:06:13 +08:00
Benau
4a4da3c96c Add splash screen to hide black screen in android during launching 2020-08-27 12:52:58 +08:00
Alayan-stk-2
c9fc04720c Add Kiki and Puffy updates to the changelog 2020-08-27 05:35:39 +02:00
Alayan-stk-2
f886eef7ab Final changelog update for the 1.2 release 2020-08-26 20:22:33 +02:00
Benau
96b065cadf Rename Modern skin to Cartoon to fix #4344 2020-08-27 01:21:42 +08:00
Benau
7f8ca9d4ac Proper fix for rubber band effect during resume in mobile STK 2020-08-27 01:04:09 +08:00
Benau
875c2b8eb8 Prevent undefined behaviour if too many players joined battle or soccer 2020-08-27 00:58:09 +08:00
Alayan
f99e13cb78 Fix #4219 2020-08-26 18:26:01 +02:00
Benau
3c6127daab Update donors 2020-08-26 01:29:39 +08:00
Benau
4b9a84eeba Show error message from stk addons server if failing to join server
Translation is thread-safe now so it no longer needs constructor setup
2020-08-26 00:38:19 +08:00
Benau
5348876205 Fix #4327 2020-08-25 23:11:29 +08:00
Benau
067feb70f5 Bring back maximum scores obtained stats for compatibility 2020-08-25 16:40:40 +08:00
Alayan-stk-2
5a7099da02 Add an improved player ranking system 2020-08-24 18:44:28 +02:00
Benau
138dbc7dc4 Update countries translation using tsv file 2020-08-24 22:44:28 +08:00
Benau
96541a2837 Update translation 2020-08-24 10:33:40 +08:00
Benau
60797aa828 Convert deprecated language code (found in Android) 2020-08-24 10:22:44 +08:00
Benau
029af89d36 Fix mcpp library reference in CMakeLists.txt 2020-08-24 01:09:47 +08:00
Benau
7b4d1dca6b Fix valgrind warnings 2020-08-24 00:58:11 +08:00
Benau
dc0a5a9c66 Remove unneeded FriBidi and libraqm files 2020-08-24 00:58:07 +08:00
Benau
369c346857 Use SheenBidi instead of FriBidi and libraqm 2020-08-24 00:55:10 +08:00
Benau
13db1b83c1 Add SheenBidi library for better unicode support 2020-08-24 00:53:04 +08:00
Benau
bdbf961e76 Allow showing online addon kart as tux when live join is on 2020-08-23 16:38:59 +08:00
Alayan-stk-2
40c3f1a290 Update changelog in preparation for the 1.2 release (part 2) 2020-08-22 02:42:28 +02:00
Alayan-stk-2
63703f96f3 Add a minimap indicator for basket-balls
Fix #3246
2020-08-21 19:43:17 +02:00
Benau
37527baf51 Remove unused functions to avoid deprecated sysctl 2020-08-18 12:16:03 +08:00
Benau
18d66db516 Update SuperTuxKart icon files 2020-08-16 14:42:17 +08:00
Benau
30996c5051 Use travis-ci.com instead 2020-08-16 14:39:21 +08:00
Benau
c091574c64 Update default stun list 2020-08-16 14:16:26 +08:00
Maosen the Jellyfish
f7bc0dfd90 Add two new title font presets
Fix #3577
2020-08-13 17:09:15 +02:00
Benau
a8572a7582 Update to emoji 13.0 2020-08-12 00:53:33 +08:00
Benau
34b5b40d4e Don't exit if failed to init sensors
wine supertuxkart.exe at the moment doesn't support sensors
2020-08-11 13:32:32 +08:00
Alayan-stk-2
ceb72a0606 Update changelog in preparation for the 1.2 release (part 1) 2020-08-07 20:23:11 +02:00
risostk
eeb2d36204 fix a small bug 2020-08-05 22:39:35 -05:00
Benau
46649e6b7d Fix always self-moving object in offline game 2020-08-05 12:10:17 +08:00
Benau
2e12eeaa83 Add install addon button in lobby for missing current track 2020-07-29 01:30:47 +08:00
Benau
82e884f3ca Fix freetype detection in osx 2020-07-28 13:10:15 +08:00
Benau
8fc6d6ea49 Fix #4335 2020-07-28 10:52:40 +08:00
Benau
8b61197e21 Fix #4337 2020-07-28 09:48:39 +08:00
Benau
f3640d4896 Remove goal message during live join which can't be dismissed 2020-07-26 12:39:09 +08:00
Benau
78b13eeedf Fix possible empty icon in result screen for addon kart online 2020-07-26 12:36:42 +08:00
Benau
fc0b818430 Allow saving current RTT to png file 2020-07-26 12:33:31 +08:00
Benau
b8ab802f2d Don't focus name textbox first in register screen
Because it will open screen keybord in mobile stk
2020-07-26 01:07:36 +08:00
Benau
5b427d76c6 Remember language selection position after changed 2020-07-26 01:05:38 +08:00
David Carlier
d4a9f1c5b5 online helper enabled on haiku 2020-07-25 13:52:59 +00:00
Benau
833781cf52 Update mobile STK full assets download size 2020-07-22 09:51:05 +08:00
Benau
9599117c28 Add high dpi support to supported platforms 2020-07-22 09:41:15 +08:00
Benau
5dc955114e Add more changes to changelog 2020-07-22 09:33:49 +08:00
Benau
88e189fb89 Update windows installer 2020-07-22 09:31:08 +08:00
Benau
14c904d51a Update changelog 2020-07-21 01:03:28 +08:00
Benau
4c9617139f Allow real addon kart hitbox if live-spectate disabled 2020-07-21 00:58:14 +08:00
QwertyChouskie
4270533f07 Fix button spacing in grand_prix_win.stkgui 2020-07-20 00:57:16 -07:00
QwertyChouskie
247d1162ee Fix button spacing in grand_prix_lose.stkgui
On HiDPI these buttons were too small.
2020-07-20 00:56:26 -07:00
QwertyChouskie
519708ad0c Fix "Custom" button padding in UI Options screen
Also simplify the surrounding code a bit.
2020-07-19 13:19:36 -07:00
Benau
912e3037c0 Update translation 2020-07-19 14:25:13 +08:00
Benau
a3b0c4d240 Make android game data extraction ui translatable 2020-07-19 14:21:14 +08:00
Benau
6aab8857cc Add ChromeOS identity in android 2020-07-18 10:34:15 +08:00
Benau
ab2bd2aa02 Hide possible non-official kart from distro in online 2020-07-18 10:17:52 +08:00
Benau
32cc160630 Allow any addon karts in online with tux hitbox in physics
Live join and spectate are now possible too
2020-07-18 10:04:07 +08:00
Benau
846b77541f Show actual powerup number instead of + in mobile stk 2020-07-17 21:10:37 +08:00
Benau
ca42d0826e Add more spectator camera to mobile stk 2020-07-17 20:57:27 +08:00
Benau
12167aeafb Fix missing general text field dialog enter callback in android 2020-07-17 19:12:00 +08:00
Benau
f2b774d63a Fix possible undismissed screen keyboard in iOS 2020-07-17 19:10:53 +08:00
Benau
31c1003912 Fix iOS screen keyboard misplaced in the beginning 2020-07-17 08:58:18 +08:00
Benau
da589263b8 Fix gamepad only navigation 2020-07-17 07:46:49 +08:00
Benau
df25707873 Focus on close button to prevent enter game state if enter pressed 2020-07-17 01:33:04 +08:00
Benau
73735a079a Use outline font for goal message 2020-07-16 01:26:07 +08:00
Benau
3a62d5179e Fix in game chat dialog crash 2020-07-15 15:56:53 +08:00
Benau
dc8e4ba0dc Add missing key map 2020-07-15 14:49:46 +08:00
Benau
fa943c70e3 Fix missing joystick if device is reinitialized 2020-07-15 14:16:19 +08:00
Benau
2cf5e29272 Remove android tv DPad handling because tv remote exists 2020-07-15 01:02:41 +08:00
Benau
fe8a6fb6a9 Update default value of screen keyboard status after SDL2 is used 2020-07-15 00:21:38 +08:00
Benau
1cc47fae5c Dismiss text input if out focus in non touchscreen android 2020-07-14 16:31:53 +08:00
Benau
33fb8d3f5b Update code for android tv 2020-07-14 15:22:25 +08:00
Benau
ffbf5149cd Determine android STK platform specifically for lobby icon 2020-07-14 09:10:51 +08:00
Benau
da64f5eeab Fix goal message crash and display bug 2020-07-13 16:03:32 +08:00
Benau
097359fcf4 Use native android progress bar for extraction 2020-07-13 11:04:36 +08:00
Benau
d8beb5bdb6 Allow main menu auto resize if missed a resize event 2020-07-12 12:14:46 +08:00
Benau
cef6eb0558 Remove EGL linking dependency 2020-07-12 11:00:53 +08:00
Benau
f202bcd48c Remove unused code 2020-07-12 10:26:37 +08:00
Benau
8ede6dcaa7 Allow resizable activity in android 2020-07-12 10:15:21 +08:00
Benau
90a6dc6023 Allow using emoji keyboard with android screen keyboard together 2020-07-12 08:46:38 +08:00
Benau
4d7fd73543 Fix screen keyboard always open first in create server screen 2020-07-12 08:42:53 +08:00
Benau
f4233977e5 Port moved height to android STK 2020-07-12 08:34:59 +08:00
Benau
8cc4dd3383 Initial work to make android STK use SDL2 completely 2020-07-12 08:25:06 +08:00
Deve
ddd4b8b9c9 Avoid libatomic dependency in linux package 2020-07-11 23:51:52 +02:00
David Carlier
8025571338 util/debug thread naming for haiku. 2020-07-11 10:29:00 +00:00
Benau
296b38ea51 Allow track screen searching with name 2020-07-10 22:12:45 +08:00
Benau
04cd0208e2 Fix delayed handleTextUpdated 2020-07-10 22:08:13 +08:00
Benau
51b50a27cd Add some guidelines for LAN and WAN server 2020-07-10 19:55:28 +08:00
Benau
bd897e390c Fix #4244 2020-07-10 19:28:39 +08:00
Benau
e54bb44e44 Fix #4300 2020-07-10 18:34:57 +08:00
Deve
6b033c840e Merge branch 'master' of https://github.com/supertuxkart/stk-code 2020-07-10 06:10:06 +02:00
Benau
e848713ed4 Improve english source 2020-07-10 13:07:27 +08:00
Benau
c487ad0166 Update translation source 2020-07-10 12:13:12 +08:00
Deve
1fafe910cb Fixed cygwin compilation 2020-07-10 06:09:38 +02:00
Benau
83995cf9d4 Update create_kart_properties.py and include 2020-07-10 12:07:52 +08:00
Luffah
0a6a487b29 add camera settings in option screen (#4273)
* add camera settings in option screen

* Remove camera settings (distance, backward/forward angles, smoothing) from kart characteristics

Co-authored-by: luffah <luffah@runbox.com>
2020-07-10 11:39:19 +08:00
luffah
039a4ac233 update CREDITS 2020-07-09 15:30:58 +02:00
Benau
7f7815efb7 Add missing alt key mapping 2020-07-09 14:18:05 +08:00
Deve
b028c38dd3 Tweak mkdir permissions.
It will use system umask for safety anyway. And ignore user's decision is evil.
2020-07-05 23:27:32 +02:00
Benau
67332bc991 Use gui race message for goal text to avoid confusing with in game chat 2020-07-05 09:50:30 +08:00
Benau
b5f25ef057 Fix assertion when resizing screen in result gui 2020-07-05 09:20:58 +08:00
Benau
453b834f85 Fix missing key binding 2020-07-05 08:39:36 +08:00
Deve
4e57642d7a Remove some DriverRecentEnough from graphical restrictions.
The graphics engine changed a lot since this warning was added and it's
quite possible that it works now. Also that warning causes issues for newer
drivers that have eg. version 4.3.xxx.
2020-07-03 23:41:02 +02:00
Deve
3634649c05 Allow to build linux package on debian jessie for better compatibility 2020-06-27 02:10:32 +02:00
Sebastian Krzyszkowiak
b74dce3887 file_manager: Emit a compiler error when no asset dir is defined for mobile platform
This may save some $HOMEs from being rm -rf'd.
2020-06-25 07:16:38 +02:00
David Carlier
a4b9900aee Haiku glew build fix and update. 2020-06-21 08:11:02 +00:00
David CARLIER
485a346198 Add memory total for NVIDIA cards in the logs (#4315)
* Add memory total for NVIDIA cards in the logs

* define the GL request ID
2020-06-21 02:44:13 +08:00
risostk
0b66f84755 Use skin color for the kart name label on kart selection screen 2020-06-19 17:55:06 -05:00
Deve
4ab33fec8c Small fix for build-tools directories without numbers 2020-06-18 23:28:05 +02:00
risostk
88f2624624 use skin color for player list 2020-06-17 22:00:25 -05:00
Benau
65b13cfeb2 Only rebuild device list when there is difference in gamepad count 2020-06-17 14:42:53 +08:00
Benau
1055dd8932 Remove unused gamepad android config 2020-06-17 11:12:09 +08:00
Benau
11a7cdfe9d Fix server only build 2020-06-17 10:05:10 +08:00
Benau
571cca90d6 Update translation 2020-06-16 14:24:04 +08:00
Benau
5feed3186a Hide the anonymous hardware statistics button because server is down 2020-06-16 14:07:49 +08:00
Benau
451bbd1a4a Allow downloading addon icons on demand, fixed #2844 2020-06-16 14:02:55 +08:00
Benau
2171bd7bf3 Update SDL2 with screen keyboard height functions for iOS 2020-06-16 12:07:13 +08:00
Benau
945565790c Fix crash in OSX
Resizing of screen can only be done in main thread
2020-06-16 09:59:02 +08:00
Benau
d1ab5f8aaf Allow remembering network splitscreen option when opening STK 2020-06-16 09:46:56 +08:00
Benau
07f6282142 Remove hasHardwareKeyboard because it's not reliable in iOS 2020-06-16 08:04:46 +08:00
Benau
89a57e6e19 Allow configure event callback for widgets based on input type
This will allow for example touch screen tapping to not triggering kart
selection in mobile STK
2020-06-16 00:44:11 +08:00
Benau
2b0b941219 Add window position to creation parameters 2020-06-15 16:35:33 +08:00
Benau
964a13368c Fix branch new initialization of iOS STK 2020-06-15 12:02:16 +08:00
risostk
22987062d2 make red team color also configurable 2020-06-14 22:00:58 -05:00
Panagiotis Vasilopoulos
cdb33f18fa Added user agent for Haiku 2020-06-14 22:03:50 +03:00
Panagiotis Vasilopoulos
6e4c4a757d Improved socket code
* Removed assertion
* Fixes networking/compiling on the Haiku operating system

Co-authored-by: Benau <Benau@users.noreply.github.com>
2020-06-14 22:03:50 +03:00
Panagiotis Vasilopoulos
d8709fde8f Added support for Haiku operating system
* OpenGL and SDL2 are used
* Added Haiku platform in Irrlicht configurations
* Added support for Haiku in AngelScript
* Fixed multiple assertions
2020-06-14 22:03:37 +03:00
riso
4694223c03 SVG support (#4306)
* first version of svg support

* merge some nanosvg pr

* look for svg icons first

* bug fix

* scale svg depends on screen size

* use irrlicht headers to get screen size

* finish isALoadableFileFormat for svg

* delete dynamically allocated memory

* fix wrong delete

* only rescale icons, due to size settings in stkskin.xml depends on the size of the image file

* check svg in FileManager::getAsset

* fix large icon in list
2020-06-14 15:15:47 +08:00
Benau
fa8665a360 Add server only irrlicht device 2020-06-14 15:07:15 +08:00
Benau
128ef93abf Fix crashes if resize event exists unexpectedly 2020-06-13 16:36:28 +08:00
Benau
d2474f79aa Update strings for iOS STK 2020-06-13 16:16:27 +08:00
Benau
5ca51fd2a9 Add support for adaptive vsync 2020-06-13 16:10:27 +08:00
Benau
a2675497e0 Fix strings for mobile STK 2020-06-13 15:45:03 +08:00
Benau
84cf6b1ea0 Add pause main loop for mobile STK 2020-06-13 15:38:22 +08:00
Benau
ae3497a31d Save keyboard and gamepad availability result in kart selection screen
Calling hasHardwareKeyboard maybe expensive in iOS
2020-06-12 20:43:00 +08:00
Benau
b054c3b4a0 Add sensors handling to SDL2 2020-06-12 19:38:59 +08:00
Benau
2f094f4a29 Update iOS toolchain 2020-06-12 16:46:07 +08:00
Benau
a201507763 Clean up irrlicht linking 2020-06-12 12:23:43 +08:00
Benau
784d641ebc Add screen keyboard handling for iOS 2020-06-11 13:53:47 +08:00
Benau
05a75dcbce Add touch event to SDL2 2020-06-11 12:00:14 +08:00
Benau
ea0380ae16 Use SDL2 to create iOS device 2020-06-11 11:40:25 +08:00
Benau
23a26648d8 Improve in game resizing handling 2020-06-09 11:56:05 +08:00
Benau
0a7f9cd314 Add race gui resizing 2020-06-09 11:05:56 +08:00
Benau
83a49068e4 Add text billboard resizing 2020-06-09 10:56:19 +08:00
Benau
81def6cb65 Add in game screen resizing 2020-06-07 16:03:16 +08:00
Benau
d4cd6d6fc9 Add minimum window size 2020-06-06 01:02:01 +08:00
Benau
2f1acc8139 Enable screen resizing in some places 2020-06-04 15:51:54 +08:00
Benau
da1d41bf85 Add resizing of GUIEngine (only works with some screen) 2020-06-04 15:49:34 +08:00
Benau
d7695cb0a7 Fix crash when render loading polling joystick event 2020-06-02 15:14:09 +08:00
Benau
7d16f2456a Add unicode text input with SDL2 2020-06-02 10:58:39 +08:00
Benau
cc13d32951 Use SDL2 clipboard for edit box 2020-06-02 10:46:20 +08:00
Benau
2eaca2091e Use SDL2 to handle window creation 2020-06-02 10:36:06 +08:00
Deve
4298e686d0 Add missing directories in clean command 2020-06-01 00:57:31 +02:00
Deve
880aaa8121 Add stk-editor to the build script 2020-06-01 00:56:01 +02:00
Benau
9c0c7f62c9 Update translation source 2020-05-31 12:04:26 +08:00
Benau
3c80892b86 Allow specifying python version in update_pot.sh 2020-05-31 12:01:47 +08:00
Benau
03fd9f1639 Fix broken translation generation 2020-05-31 12:00:21 +08:00
Deve
12ec0621a1 Add linux build script 2020-05-31 00:05:34 +02:00
riso
661688db2d Show a message once a goal is made in soccer (#4304)
* log the goal on server once a player scored in soccer

* show a message once a player made a goal in soccer

* bug fix, add comments

* remove server log
2020-05-30 13:28:27 +08:00
Benau
7829cb3928 Avoid possible crash 2020-05-24 23:59:41 +08:00
riso
b22c09e345 Os emoji in lobby (#4298)
* first version, not work with old version server

* fix bug of sending extra byte

* delete the extra line
2020-05-24 23:56:25 +08:00
Benau
f316a83c63 Limit max user name length for offline account in server 2020-05-23 13:35:05 +08:00
Benau
92b40a986f Remove duplicated code 2020-05-23 13:12:10 +08:00
Benau
cbb3863180 Use std::unique_ptr for message queue memory management 2020-05-23 13:02:04 +08:00
Benau
acf862903d Allow message queue changing size with font 2020-05-23 12:52:00 +08:00
Benau
30e39b5a7a Fix crash during encoding when exiting race 2020-05-23 12:13:09 +08:00
3risian
712854b33a Expose getDifficulty() to scripting 2020-05-23 11:40:58 +10:00
Benau
68aa1c3346 Update translation 2020-05-18 00:01:43 +08:00
Benau
4a8306fca5 Initialize global variables in android device before android_app->running 2020-05-14 10:49:49 +08:00
Benau
6c5a33fa5c Fix frozen STK when connecting USB hidapi gamepad 2020-05-14 10:48:03 +08:00
Benau
6d30bb8f05 Update android with latest libjpeg, libpng and zlib and remove bundled libraries 2020-05-14 10:13:57 +08:00
Benau
52cf0f16d1 Fix compilation with latest SDL2 2020-05-14 10:07:35 +08:00
Benau
1795495bde Allow picking tracks from addon category now 2020-05-14 09:40:28 +08:00
Benau
ed32329eb3 Update localized language name 2020-05-13 16:33:28 +08:00
Benau
6b43af33fa Add Silesian language support to tinygettext 2020-05-13 15:47:22 +08:00
Benau
54aac69f5e Update translation source 2020-05-13 15:18:39 +08:00
Benau
53bf93f2df Allow always spectating with /spectate [0 or 1] 2020-05-13 11:27:27 +08:00
Benau
b122572a0c Handle invisibility of team chat button depends on settings 2020-05-13 08:53:02 +08:00
Benau
8f40f49506 Fix missing initialization of variables 2020-05-13 08:48:50 +08:00
Benau
e802b21d15 Fix missing country names translation when system language is used 2020-05-13 08:44:28 +08:00
Benau
5d3ccb54b0 Move server refresh list storage to class user
This fixes possible duplicated servers when refreshing too quickly
2020-05-09 13:24:07 +08:00
Benau
0fc9e8dba8 Use std::stable_sort to avoid destroying order when toggling IPv6 2020-05-08 10:13:28 +08:00
Benau
3d74dfea34 Add team chat for online team game 2020-05-08 09:21:37 +08:00
QwertyChouskie
a776650986 Modern skin (#4265)
* Modern skin
The culmination of years worth of work!  Thanks to all who helped make this as amazing as possible!
PNGs were ran through `pngquant` then `optimize_data.sh` for maximum smallness

* Shrink a multitude of icons
Ran through `optipng` then `optimize_data.sh`
2020-05-08 01:16:55 +08:00
Benau
c77a695f35 Add back the default stun servers list to user config
Now we can remove stun server in c8d9383d6a
2020-05-07 15:23:12 +08:00
Benau
c8d9383d6a Allow erasing stun server by using zero weight in dns record 2020-05-07 09:19:41 +08:00
Benau
80d1ba6b10 Revert "Allow music title to be translatable, fix #4281"
Some translator and stk fans think it is confusing
2020-05-06 14:28:46 +08:00
Benau
0db86f6d52 Update translation source 2020-05-05 10:47:22 +08:00
Benau
70a9aaf5a5 Rename Exit Race to Quit Server to avoid confusion 2020-05-05 10:40:31 +08:00
Benau
d03a821e53 Allow music title to be translatable, fix #4281 2020-05-05 10:22:21 +08:00
QwertyChouskie
28b9d3aea8 Add PrefersNonDefaultGPU=true to .desktop
See http://www.hadess.net/2020/05/dual-gpu-support-launch-on-discrete-gpu.html for details.
2020-05-04 17:56:43 -07:00
Karl Ove Hufthammer
1d9e6f8135 Make formatting of song title translatable
Different languages use different quotation marks and spacing
(e.g., « Song title » in French), so the formatting needs
to be translatable.
2020-05-02 13:32:57 +02:00
QwertyChouskie
3359862b2b Update shoulder-less controller mapping
Although there's not much we can do about accel on the shoulder-less config, we can at least make the menu keys and pause/rescue consistent with the shouldered config.
2020-05-01 20:39:01 -07:00
Benau
69b2f5fce7 Fix #4278 2020-05-02 11:08:18 +08:00
Benau
980bc0903a Use a better english source for clearer translation 2020-05-01 12:21:32 +08:00
Benau
cf24157358 Fix #2438 with SDL2 gamecontroller mapping 2020-05-01 12:17:14 +08:00
Benau
3bb910099d Update buttons translation 2020-05-01 11:40:21 +08:00
Benau
9f217ccf62 Add some text drawing batching in race gui 2020-05-01 09:55:29 +08:00
Benau
e892b43d0e Remove unneeded setShadow because black border is always used 2020-05-01 09:51:24 +08:00
Benau
5c77e641e9 Add batch drawing for list box widget 2020-05-01 09:45:22 +08:00
Benau
4d72b118e3 Batch glyph for quicker text rendering 2020-05-01 09:34:04 +08:00
Benau
719af8c54b Add the missing checking for wrong password 2020-05-01 08:36:53 +08:00
Benau
7154af2278 Fix SDL2 include directory in iOS toolchain 2020-05-01 00:40:55 +08:00
Benau
a1b592beb1 Fixed incorrect Ubuntu SDL2 dependency name 2020-04-30 23:46:16 +08:00
Benau
b1bcfd94a1 Fix crash when widget is cleared and old spinner widget received callback 2020-04-30 16:34:44 +08:00
Benau
10af6f7a80 Allow updating kart color when slider moves with mouse 2020-04-30 16:10:41 +08:00
Benau
cc9980f2a4 Allow re-enter password instantly for failed private server joining 2020-04-30 07:43:14 +08:00
Benau
1bd34e338e Allow showing or hiding soccer player list with F7 in artist debug mode 2020-04-29 01:09:33 +08:00
Benau
5dffc8cfa1 Allow exit splitscreen multiplayer with gamepad only 2020-04-28 12:37:40 +08:00
Benau
ea6115273d Update translation source 2020-04-28 10:34:42 +08:00
Benau
11757a557a Update gui strings and hide some button for mobile stk (with gamepad) 2020-04-28 10:20:24 +08:00
Benau
e7e702ad39 Fix crashes if broken mesh is loaded (found in google play) 2020-04-28 09:27:25 +08:00
Benau
720ed698ce Use bitset for easier code and fix more than 1 possible hat 2020-04-28 01:12:05 +08:00
Benau
cd8848ad53 Use timer only for analog axis 2020-04-27 01:12:06 +08:00
Benau
957fe41f3d Remove unneeded axis checking after SDL2 is used 2020-04-21 20:05:50 +08:00
Benau
0e023cae78 Use sdl mapping to determine if axes are analog 2020-04-21 19:57:04 +08:00
Benau
32e3e4a504 Make gamepad visualization work with SDL2 2020-04-21 19:40:30 +08:00
Benau
6a875e04b6 Remove user id from XInput devices name to allow hotplugging with same config 2020-04-21 18:47:16 +08:00
Benau
96ec4d9c3d Try to fix duplicated event produced by button 2020-04-21 18:33:56 +08:00
Benau
8c412ee840 Push desktop kart selection depends on device available in mobile STK 2020-04-21 18:26:45 +08:00
Benau
abfb9e535c Allow gamepad without mapped buttons to use scan code directly in android 2020-04-21 18:07:43 +08:00
Benau
5faa856b0e Fix keyboard arrow binding bug 2020-04-21 16:33:34 +08:00
Benau
8f9fc8f7fe Handle all input events in java 2020-04-21 15:47:04 +08:00
Benau
bae2262bd9 Add SDL2 to android 2020-04-21 15:28:02 +08:00
Benau
5eb7b023b3 Add SDL2 to iOS 2020-04-21 10:11:41 +08:00
Benau
6db8906adb Add default mapping from sdl controller
Also adjust default non-sdl mapping, maybe now 4 actions in 1 stick
works better...
2020-04-21 09:46:00 +08:00
Benau
2405a3a00c Add sdl controller mapping parser 2020-04-21 09:07:29 +08:00
Benau
d3f45e84a3 Add default setting for binding which STICKBUTTON uses 2020-04-21 00:54:20 +08:00
Benau
130be12a64 Fix input sensing with SDL2 2020-04-21 00:30:03 +08:00
Benau
189938e179 Make gamepad auto added or removed in option screen 2020-04-21 00:19:51 +08:00
Benau
00cb6c2d48 Use SDL2 for better gamepad support and hotplug 2020-04-21 00:14:32 +08:00
luffah
cd7aa2c90c replace split screen horizontal checkbox by a spinner vertical/horizontal 2020-04-19 15:56:49 +02:00
Deve
88035779a1 Update run_server.sh 2020-04-19 00:27:00 +02:00
Deve
e6464fff9e Don't spam in server logs 2020-04-16 22:38:47 +02:00
luffah
914f1a6a77 add user option (config.xml) to substitute look back camera by a camera that follows the ball in soccer mode 2020-04-16 18:50:35 +02:00
luffah
2ca815ace4 add top view for spectator mode & remove gui item view for this camera mode 2020-04-16 16:24:56 +02:00
Benau
aec3790a19 Use a better type for replacement of ssize_t 2020-04-14 12:48:50 +08:00
Benau
8aca832441 Fix msvc build 2020-04-14 11:53:03 +08:00
Benau
93cf4bab52 Fix crash in case system doesn't support IPv4 or IPv6 2020-04-14 11:35:43 +08:00
Benau
8e64433c3a Add inet_pton for Windows XP support 2020-04-14 11:00:59 +08:00
Benau
c1a28c6459 Update for new curl with IPv6 support 2020-04-14 10:56:07 +08:00
Benau
359e2ff84f Add llvm mingw for pdb generation
It uses visual studio dependencies
2020-04-11 16:25:58 +08:00
Benau
9157fb43f0 Use std::thread, std::mutex and std::condition_variable everywhere 2020-04-11 11:01:18 +08:00
Benau
b6e9fcd801 Use std::thread for wiimote manager 2020-04-11 00:48:11 +08:00
Benau
f6be14d157 Add proper cleaning of thread for news manager 2020-04-11 00:33:29 +08:00
Benau
ccc4bc793d Fix possbile conflict with SearchPathW 2020-04-10 10:02:53 +08:00
Benau
5aafb42b28 Use thread local for thread id mapping in profiler 2020-04-10 09:58:45 +08:00
wb9688
b7342a9774 Use smoothed position for kart sounds (#4264)
* Use smoothed position for kart sounds

* Don't use smoothed position for explosion

Co-authored-by: wb9688 <wb9688@users.noreply.github.com>
2020-04-10 00:14:10 +08:00
QwertyChouskie
c840b2b2c9 Use better icon for adding friend 2020-04-08 18:17:07 -07:00
QwertyChouskie
694d169ef4 Fix more textures paths 2020-04-08 18:14:10 -07:00
QwertyChouskie
e614f9f384 Remove old code
It's never reached as it's impossible to build STK with stock Irrlicht
2020-04-08 17:44:15 -07:00
QwertyChouskie
7c287676a5 Fix display of anchor icon 2020-04-08 17:41:36 -07:00
Benau
a0e4835602 Fix wrong prediction of powerup in online soccer 2020-04-06 15:00:47 +08:00
Benau
f55331cf65 Fix duplicated event for joining in splitscreen screen 2020-04-06 10:24:10 +08:00
David Carlier
12afc23e4e NetBSD build few updates. 2020-04-05 16:10:34 +01:00
Benau
bffca4f812 Fix sticking of pause button in spectate mode 2020-04-04 01:10:16 +08:00
Benau
211249211b Update translation 2020-04-03 14:29:57 +08:00
Benau
ec93746513 Fix #4257 2020-04-03 14:28:21 +08:00
Benau
84d38cd221 Sort kart with position for soccer spectate with icons code updated 2020-04-03 14:19:20 +08:00
Benau
0d0da15a62 Use std::vector for ai profiles so the order is preserved 2020-04-03 14:10:52 +08:00
Benau
22ff215d15 Allow using pause action in spectate for gamepad only controlling 2020-04-03 13:35:47 +08:00
Benau
b7adc72cb9 Fix missing icon swap-icon.png 2020-04-03 13:32:03 +08:00
QwertyChouskie
ea4d3c03a9 Allow theming of powerup/attachment icons (#4258)
* Allow theming of powerup/attachment icons
Icons were optimized with `pngquant` then `optimize_data.sh`

* Change help screens to use icons from icons folder rather than `models`
2020-04-03 13:18:50 +08:00
Benau
f9f5d3ebb1 Fix broken IPv4 direct connection after LAN server creation 2020-03-29 11:41:11 +08:00
Benau
76c78b82d8 Fix broken backward spectate camera after switching to soccer one 2020-03-29 10:34:06 +08:00
Benau
da4b985b8f Fix broken map fire to select which lead to duplicated events 2020-03-29 09:32:01 +08:00
QwertyChouskie
da5cbee577 Fix missing track icon on track info screen not being themed
Also fixes the aspect ratio and increases the resolution.
2020-03-28 18:19:51 -07:00
Benau
6991305b71 Remove unused field in class 2020-03-27 12:46:23 +08:00
Benau
20bcd1ae05 Use the same order as team side for drawing soccer kart list 2020-03-27 12:41:34 +08:00
Benau
2f4f0ea560 Fix missing control when gamepad has no axis at all 2020-03-27 12:29:25 +08:00
Benau
b8e9ada499 Allow jni attach and detach thread only once
For the other jni usage at the moment they are not in main thread
2020-03-25 00:38:54 +08:00
Benau
b2c741a4b5 Fixed wrong icon frame with arrow used in kart list 2020-03-24 01:02:19 +08:00
Benau
f47b410d92 Add soccer support to show karts held powerups 2020-03-24 00:46:20 +08:00
QwertyChouskie
3c627170ee Increase size of Loading icon
Also center the whole icon+text to the center of screen, rather than
centering the icon and putting the text below
2020-03-20 12:10:35 -07:00
Benau
4170628d23 Rewrite some code for updated kart characteristics 2020-03-16 11:48:02 +08:00
Benau
a589ab4a10 Update kart characteristics with python script 2020-03-16 11:27:21 +08:00
luffah
8449bf2714 add camera parameter forward-smoothing (bool to set smoothing) and implement forward-up-angle in smoothing case 2020-03-15 19:32:15 +01:00
Benau
bb3e54fd88 Update translation source 2020-03-15 15:56:56 +08:00
Benau
1e5e91dabf Try to fix broken gyroscope control in iOS 2020-03-15 15:06:32 +08:00
Benau
1b3cc83235 Avoid using android robot icon 2020-03-15 14:05:41 +08:00
Benau
932f0f888e Avoid updating editbox if hardware keyboard connected which discards all input 2020-03-15 13:58:51 +08:00
Benau
7174bcb741 Change help for touch device 2020-03-15 13:55:40 +08:00
Benau
840a8cbb2d Add tablet icon for touch device icon 2020-03-15 13:54:28 +08:00
Benau
89685bd101 Update translation 2020-03-15 10:33:50 +08:00
Benau
2cf36570c4 Fix missing initialization of confirmed item ticks in child server 2020-03-15 10:14:29 +08:00
Benau
846ee94247 Try to fix STKPeer destructor crash 2020-03-15 10:13:21 +08:00
Benau
a1fa1749d1 Make sure the correct socket type is used 2020-03-15 10:10:59 +08:00
Benau
9860191409 Rename IPv6 server option to allow old config to use as default 2020-03-15 10:10:05 +08:00
Benau
364936e37b Allow getting stun server list using SRV records 2020-03-15 10:05:13 +08:00
Benau
7598dc7b37 Use minidns for android to fix starting crash 2020-03-13 21:31:33 +08:00
Luffah
cf6225e3ae add a camera mode to spectate soccer in large isometric view (switchable with accel/brake keys) (#4245)
Co-authored-by: luffah <luffah@runbox.com>
2020-03-13 13:08:40 +08:00
Benau
490bb88cb0 Fix wrong size of accelerator icon in init dialog 2020-03-13 00:20:27 +08:00
Benau
fbb1889faa Pause request in iOS STK to avoid crash when pressing home button 2020-03-12 23:48:29 +08:00
Benau
8b197b4a15 Fix linking error in x86 android 2020-03-11 16:41:31 +08:00
Benau
dccbe675fc Quick fix for weird "triangle selection" in touch screen for dynamic ribbon widget 2020-03-11 15:45:28 +08:00
Benau
80dd4732f3 Disable unsupported setter from kart for network ai 2020-03-11 15:44:59 +08:00
Benau
65cd28f767 Always enable crash checking for network ai 2020-03-11 15:44:45 +08:00
Benau
fd4cac7c9d Fix non-updating slip stream texture after kart finished race 2020-03-11 15:42:14 +08:00
Benau
afa60c4537 Disable scripting engine in child process 2020-03-11 15:35:02 +08:00
riso
1d855ccfd7 allow 0 player number if there is AI (#4240)
* allow 0 player number if there is AI

* space
2020-03-11 12:05:29 +08:00
Benau
da561b7081 Update child process addons newly installed in lobby 2020-03-09 23:44:36 +08:00
Benau
d4c9b16c28 Don't kick in game GUI server host so he can idle in game
Fixed #4237
2020-03-09 16:19:54 +08:00
Benau
07e471c8ba Avoid calling gui and music related functions in child process 2020-03-09 16:14:12 +08:00
Benau
10e7ac603f Fix possible bullet crash 2020-03-09 16:12:49 +08:00
Benau
1ea75b5f0e Update translation string 2020-03-07 11:53:43 +08:00
Benau
c542feaf4d Include all tracks by default using android app bundle 2020-03-06 10:37:01 +08:00
QwertyChouskie
487fbfdbba Tweaks to tips (#4193)
Mainly just grammar fixes and re-wording here.
2020-03-04 11:56:10 +08:00
Benau
122d2cf737 Fix string grammar 2020-03-01 10:18:34 +08:00
Benau
bd513646ac Show a better change team text for multitouch device 2020-03-01 10:17:00 +08:00
Benau
f9a85f9c72 Update translation 2020-03-01 01:21:04 +08:00
Benau
ed0a2b49e7 Add soccer tips set 2020-03-01 01:16:37 +08:00
Benau
8b8f03ad75 Tell the main process network type 2020-03-01 00:40:29 +08:00
Benau
e584bced0e Enable iOS server creation 2020-02-29 01:26:01 +08:00
Benau
6630f21295 Allow building with latest ndk 2020-02-29 01:18:09 +08:00
Benau
8b119201dc Use request manager to handle server recovery and registration 2020-02-29 01:16:20 +08:00
Benau
e31bd30f1f Avoid exit hang in wan server for GUI server 2020-02-28 22:49:21 +08:00
Benau
ee22c0f714 Stop STKHost if cannot register public address 2020-02-28 22:49:06 +08:00
Benau
eff00140f1 Remove unneeded previous unjoin because request is executed one by one 2020-02-28 20:27:26 +08:00
Benau
9a7dcf8d8b Fix global variable of rubber ball id 2020-02-28 19:53:18 +08:00
Benau
e6deaabcf1 Use std::atomic enum for SFXStatus 2020-02-28 19:53:13 +08:00
Benau
a2f72a0d13 Avoid including sfx_manager.hpp inside kart properties header 2020-02-28 19:53:08 +08:00
Benau
f590280431 Fix mobile STK server logging 2020-02-28 19:53:01 +08:00
Benau
f37a5ee5d3 Only use sound and music in main process 2020-02-28 19:52:54 +08:00
Benau
885aec8020 Add 3d animation ipo copying to child track objects 2020-02-28 19:52:23 +08:00
Benau
607c6932f0 Add track object copying to child process 2020-02-28 19:52:17 +08:00
Benau
f3b5938b8e Use a new way to identify server owner in graphical server 2020-02-28 19:52:12 +08:00
Benau
4322f47413 Reset graphical client server if its owner quited the game 2020-02-28 19:52:07 +08:00
Benau
97ad138763 Fix child process invalid usage at different places 2020-02-28 19:52:00 +08:00
Benau
d41594ea5b Initial working of starting game if no physical object exists 2020-02-28 19:51:40 +08:00
Benau
6b08a873a2 Allow world to have 2 process instances
Also add specific process type handling to world
2020-02-28 09:43:25 +08:00
Benau
1958e5940c Allow rewind manager to have 2 process instances 2020-02-28 09:43:19 +08:00
Benau
ca0749cf6b Allow game protocol to have 2 process instances 2020-02-28 09:43:13 +08:00
Benau
6a635e1a56 Turn physics into a singleton get for 2 processes 2020-02-28 09:43:05 +08:00
Benau
63bad92765 Turn race event manager into a singleton get for 2 processes 2020-02-28 09:43:00 +08:00
Benau
ccdca532b5 Turn projectile manager into a singleton get for 2 processes 2020-02-28 09:42:52 +08:00
Benau
6a3e606c2d Turn race manager into a singleton get for 2 processes 2020-02-28 09:42:44 +08:00
Benau
c8ea01d264 Initial work on client server within same process 2020-02-28 09:41:07 +08:00
Benau
b7f2a9614d Add tool for server creation in the same process
For iOS or Android App Bundle (or other platform) where create process
or fork is not possible or can not be easily done
2020-02-28 09:35:25 +08:00
Benau
d63c68af78 Add thread safe log prefix assignment 2020-02-28 09:35:11 +08:00
Benau
56fb1b9cba Add header helper for thread local storage 2020-02-28 09:35:07 +08:00
Benau
015530e1eb Don't dismiss dialog in no graphics world of STK 2020-02-28 09:32:22 +08:00
Benau
d7003ab9c3 Remove global variable in btQuantizedBvh 2020-02-28 09:32:11 +08:00
Benau
eed95e7c92 Remove global variable in btCollisionDispatcher 2020-02-28 09:31:11 +08:00
Benau
8008753aa5 Remove global variables in btOverlappingPairCache 2020-02-28 09:31:07 +08:00
Benau
1cb966d04d Remove global variable in btSequentialImpulseConstraintSolver 2020-02-28 09:31:02 +08:00
Benau
a58c443247 Remove global variables in btGjkPairDetector 2020-02-28 09:30:56 +08:00
Benau
05ed086d28 Remove global variables in btAlignedAllocator 2020-02-28 09:30:52 +08:00
Benau
336883e2e7 Remove global variables in btRigidBody 2020-02-28 09:30:47 +08:00
Benau
ef1d74b961 Move C and CXX flags earlier to allow libraries of STK to use sanitizer 2020-02-28 09:30:00 +08:00
Benau
fa0da462fb Update ENetAddress to use 5 uint32_t to store IP
ENetAddress ea = {} will allow to listen to any IPv4 or IPv6 address
when using system or bundled enet

The last uint32_t is for IPv6 scope id (required for IPv6 only lan
servers)
2020-02-28 00:59:37 +08:00
Benau
8995491eb6 Update enet to 1.3.14 (remove all IPv6 changes first) 2020-02-28 00:55:10 +08:00
Benau
6d85a03423 Remove unneeded checking of client lobby peer connection 2020-02-27 11:02:15 +08:00
Benau
2ddc26ef9c Move disconnected peer checking to STKHost loop to avoid race condition 2020-02-27 11:00:41 +08:00
Benau
f935c68d20 Don't discard static message in no graphics STK 2020-02-25 12:22:35 +08:00
Benau
a418302d9f Add thread safe function for server time logging prefix 2020-02-25 12:17:27 +08:00
Benau
40c57e8115 Don't check dialog for enterGameState in no graphics STK 2020-02-25 09:55:59 +08:00
Benau
c9dc68e578 Move item manager to track to allow copying easier later 2020-02-24 11:10:06 +08:00
Benau
f325a0fa14 Add code for copying check structures 2020-02-24 10:58:17 +08:00
Benau
3d13686af7 Move check manager to track to allow copying easier later 2020-02-24 10:57:57 +08:00
Benau
306eb1b531 Disable built-in bullet profiler which uses global variables
It breaks client and server in same process later
2020-02-24 09:26:22 +08:00
Deve
11cac8f631 Fixed bad accelerometer icon proportion 2020-02-23 18:24:41 +01:00
Deve
e32f032e68 Generate assets for fdroid in android builder 2020-02-23 00:41:59 +01:00
Deve
bf5ebef481 Allow to set input/output dir for generate assets script 2020-02-23 00:41:59 +01:00
Benau
325cc243c5 Remove more hit effects for no graphics STK 2020-02-23 01:26:59 +08:00
Benau
68ecc980c7 Allow compiling STK with thread sanitizer 2020-02-23 01:14:41 +08:00
Benau
2872706317 Use separated fixed body for multiple physics instances later 2020-02-23 01:14:20 +08:00
Benau
5e32ab8d07 Remove hit effect in physics for no graphics STK 2020-02-23 01:13:59 +08:00
Benau
96541cf8af Remove irrlicht item node in no graphics STK 2020-02-20 11:00:49 +08:00
Benau
c0a350fe6e Don't create hit effect for no graphics STK 2020-02-20 10:09:29 +08:00
Benau
3bbca7849d Remove irrlicht node for flyable in no graphics STK 2020-02-20 09:46:34 +08:00
Benau
13df4ee83a Don't create collision particles in no graphics STK 2020-02-20 08:57:29 +08:00
Benau
e01381c508 Don't create irrlicht kart node in no graphics STK 2020-02-20 08:52:33 +08:00
Benau
beba4fd4c3 Don't create stars in no graphics 2020-02-20 08:22:35 +08:00
Benau
b799d6454b Don't create particle node with no graphics for kart gfx 2020-02-20 08:07:44 +08:00
Benau
373562bb3c Remove irrlicht node usage from world with no graphics STK 2020-02-19 16:38:28 +08:00
Benau
970fa4a0b5 Allow reverting default configuration name with empty input 2020-02-19 01:42:07 +08:00
Benau
09cc3a47f0 Avoid handling of camera in no graphics STK 2020-02-19 01:31:53 +08:00
GuillaumeBft
2ff79baf26 Add rename config option (#4233)
* Add rename config option

* xmlDe/Encode to deal with " character

* m_config_name string -> stringw

* wcslen() -> empty() , remove useless c_str()
2020-02-19 00:37:26 +08:00
riso
740d57a2c4 Show kart direction by an arrow in soccer (#4230)
* Show kart direction by an arrow in soccer

* bug fix

* bug fix

* correct grammar
2020-02-16 16:31:30 +08:00
Benau
3df7feb654 Fix android compilation 2020-02-15 16:41:20 +08:00
Benau
4a9135c8c0 Avoid pushing and using screen in no graphics 2020-02-15 16:38:49 +08:00
marjorieB
840771d189 Migration Python2 towards Python3 (#4232)
The modified code stays compatible with Python2.
2020-02-15 14:33:25 +08:00
Benau
88bbdbdc92 Move no graphics setting to guiengine which is a better place 2020-02-15 14:00:48 +08:00
Benau
0912ca041b Don't create race gui for no graphics 2020-02-14 13:23:32 +08:00
riso
cf83e4c86c add xcode_build in .gitignore 2020-02-12 23:44:54 +01:00
Benau
45825918d9 Some changes for server in same process 2020-02-12 15:47:30 +08:00
Benau
acdf77baf9 Fix local game crash 2020-02-11 12:58:12 +08:00
Benau
e0f494abcd Allow server AI starting in a same process with client 2020-02-10 16:39:47 +08:00
Benau
92a11c075a Rename NetworkAITester to NetworkAIInstance for a proper name 2020-02-10 09:38:23 +08:00
David Carlier
c9c4149139 slighty less C code proposal 2020-02-08 16:59:25 +00:00
Benau
2cdd6cf754 Fix iOS compiler warning 2020-02-07 13:04:34 +08:00
Benau
ccc2ee1ea3 Add Xcode iOS cmake toolchain
It allows switching run target (iOS device or simulator) inside
Xcode without re-running cmake or changing dependencies files

App Icons can also be specified now
2020-02-07 13:02:07 +08:00
David Carlier
5e3881117d FreeBSD thread name support. 2020-02-06 19:00:02 +00:00
David Carlier
f464b95afb Build fix on *BSD.
dns resolution belongs to the libc on those systems.
2020-02-05 18:05:12 +00:00
Benau
43cf39bdef Allow getting server port with DNS txt record (stk-server-port=) 2020-02-06 00:46:38 +08:00
David Carlier
21cf075e41 FreeBSD build fix proposal. 2020-02-05 15:16:12 +00:00
Benau
99a5675abe Add UserDefinedServer class to allow saving the server name easier 2020-02-05 14:06:51 +08:00
Benau
54e09dbbf3 Enable logging in iOS default with a correct encoding 2020-02-05 12:23:21 +08:00
Benau
746f09a6d0 Use single tap in mobile STK for list widget 2020-02-05 12:12:24 +08:00
Benau
56fa8156d2 Clear NAT64 prefix in better places 2020-02-05 12:07:42 +08:00
Benau
d73022b3ad Set IP type manually in LAN refresh request
We don't need NAT64 address in LAN broadcast anyway
2020-02-05 11:37:05 +08:00
Benau
7c3b8adfc9 Fix convertForIPv6Socket regression since last commit 2020-02-05 11:16:25 +08:00
Benau
e9828b8ab3 Fix wrong IP detection in apple devices 2020-02-05 01:05:18 +08:00
jpenguin
4343dad28d Update NETWORKING.md
Updated CentOS release file
2020-02-03 15:55:46 -08:00
Benau
f8bce05dd6 Fix crash caused by pop sorting with deleted message 2020-02-04 01:26:26 +08:00
Benau
d147291e2a Clean temp files when starting STK instead of exiting 2020-02-03 16:52:45 +08:00
Benau
5683ff7494 Fix sticking quit menu of kart selection screen 2020-02-03 16:40:08 +08:00
Benau
7ba8dfd0a0 Adjust size for some language 2020-02-03 16:11:09 +08:00
Benau
b816f94269 Add a continue button for multitouch device in kart selection 2020-02-03 15:31:25 +08:00
Benau
db95d2f88f Clean temp files manually in mobile STK 2020-02-03 09:39:43 +08:00
Benau
00c7bf561e Fix news manager assert error when exit too early 2020-02-03 01:27:17 +08:00
Benau
35463a12da Avoid possible infinite loop 2020-02-03 00:48:16 +08:00
Benau
0134e9c664 Update translation source 2020-02-02 16:46:05 +08:00
Benau
a079019bb2 Fix possible too long translation 2020-02-02 16:38:26 +08:00
Benau
26dbf67d53 Ask if user want to play tutorial when new profile is created 2020-02-02 16:32:57 +08:00
Benau
906dca1a94 Fix possible address family mismatch (found in android) 2020-02-02 10:52:19 +08:00
Benau
ecb31ad217 Use ipv4only.arpa to detect NAT64 prefix (RFC 7050) 2020-02-02 00:13:25 +08:00
Benau
4ad7e585f8 Remove duplicated code of getaddrinfo 2020-02-01 15:34:41 +08:00
Benau
ae2406d193 Don't print error message for IP detection in case of domain error 2020-02-01 14:48:58 +08:00
Benau
58f4579062 Use getMonoTimeMs() to avoid rand() return the same value in Windows 2020-02-01 14:15:44 +08:00
Benau
10a158db70 Use correct encoding for error message from getaddrinfo in Windows 2020-02-01 14:05:52 +08:00
Benau
33d228bb6d Clean up header files and remove unused class 2020-02-01 10:45:15 +08:00
Benau
23ad6f09a6 Clean up direct connection code with full IPv6 support 2020-02-01 09:30:40 +08:00
Benau
1e9dab821c Allow pre-set IP type in config.xml 2020-01-31 13:20:11 +08:00
Benau
ab315fab4e Remove firewall restriction for IPv6 in server documentation 2020-01-31 00:44:26 +08:00
Benau
17bf24c6d1 Avoid player score being reset if connection to stk addons is broken 2020-01-30 16:55:40 +08:00
Benau
652bf5480a Move port detection to Network class 2020-01-30 16:47:19 +08:00
Benau
e1188c5532 Fix non random client port (NetworkConfig initialized too early) 2020-01-30 11:30:54 +08:00
Benau
964757193b Avoid using IPv6 socket address in IPv4 socket
Also make reload the lan broadcast addresses each time to catch network change
2020-01-30 11:25:03 +08:00
Benau
86dae991e6 Fix SandboxViolation in iOS for IPv6 socket 2020-01-29 11:04:02 +08:00
Benau
0cb62803b2 Port stun address resolve to use SocketAddress 2020-01-29 01:24:38 +08:00
Benau
2c78625ef6 Allow print NAT64 address in IPv4 form for better debugging 2020-01-28 15:15:20 +08:00
Benau
40b0a6371e Allow port specified inside str for SocketAddress 2020-01-28 13:03:37 +08:00
Benau
61109f4aad Remove TransportAddress in most server code 2020-01-28 11:47:08 +08:00
Benau
05732c2e7d Only register server with a valid address 2020-01-28 01:26:12 +08:00
Benau
3d0ef44014 Fix android crash for inet_ntop 2020-01-27 15:48:49 +08:00
Benau
055ed23e10 Remove TransportAddress in STKPeer 2020-01-27 14:32:18 +08:00
Benau
e18bcd62e6 Add IPv6 LAN server discovery
Broadcasting to windows doesn't work as the windows firewall seems
to block all IPv6 multicast
2020-01-27 13:48:57 +08:00
Benau
9132fba714 Add firewall penetration for IPv6 client 2020-01-27 12:07:28 +08:00
Benau
6abd3bbf69 Add socket address to support both IPv4 and IPv6 2020-01-27 11:50:15 +08:00
David Carlier
a79a2a7fab mcpp dependency possible leak fix proposal 2020-01-26 18:52:14 +00:00
David Carlier
ba150e8659 bullet build warning fix replacing by C++ casting 2020-01-25 21:53:12 +00:00
Benau
9928cf726f Add auto handling of IPv6 only server depends on network type 2020-01-26 00:41:03 +08:00
Benau
d2f2c6cf1f Allow setting a zero address as long as there is an IPv6 address 2020-01-25 11:15:34 +08:00
Benau
6d2e060bf2 Disable IPv6 socket in server for IPv4 only network 2020-01-24 10:28:23 +08:00
Benau
58a2010d0f Fix intercept callback for IPv6 2020-01-24 10:26:44 +08:00
Benau
8d94f973cc Allow NAT64 client to connect to firewalled IPv4 server 2020-01-23 16:50:47 +08:00
Benau
63c7c711d5 Fix IPv4 only server in dual stack network 2020-01-23 16:43:46 +08:00
Benau
8486b11da6 Allow setting public address for IPv6 client 2020-01-23 01:16:02 +08:00
Benau
aed64dfd1f Rename function to make it clearer 2020-01-22 15:56:47 +08:00
Benau
2ca1c5555c Allow connect to IPv4 only server with NAT64 for all platforms 2020-01-20 16:49:27 +08:00
Benau
4172a2d765 Add iOS toolchain for cross compiling 2020-01-20 15:31:45 +08:00
Benau
50944bb8c3 Add debug logging for iOS device 2020-01-20 14:58:03 +08:00
David Carlier
b3e76e082e FreeBSD online linker URL support 2020-01-19 12:15:16 +00:00
Benau
f83f74598d Fix valgrind warning 2020-01-19 11:46:03 +08:00
Benau
1e53f67354 Fix no graphics crashing 2020-01-19 10:50:12 +08:00
Benau
726a40ae2d Use IP detect code in server screen for more info to user 2020-01-19 10:20:25 +08:00
Benau
fcdec55bc1 Add tools for advanced IPv4 and IPv6 detection 2020-01-19 10:13:17 +08:00
Benau
7b3559ba69 Add IPv4 only stun for later usage 2020-01-19 01:00:48 +08:00
David Carlier
d97a1ce1ef removing compilation warning explicitly showing enum origin
to avoid confusions even though they have same values.
FreeBSD recognised as os in stats point of view.
2020-01-18 13:32:50 +00:00
Benau
9085658653 Add ipv6 geolocation table 2020-01-16 11:28:52 +08:00
Benau
0ef632114b Use another source of ip mapping with ipv6 support 2020-01-16 10:57:56 +08:00
QwertyChouskie
a68e652fa6 Skin padding implementation (#4195)
* Implement box model spacing for skin elements

* Account for padding when spacing out on-screen keyboard

* Fix padding for Tutorial button on Help screen

* Reduce spacing between tabs
(Also removed a couple duplicated files.)

* Change verticalTab margin as per Benau's request
Uses `vborder_out_portion`, which is how it was done before.

* Remove duplicate files

* Adjust spacings after PNGs were adjusted in a previous commit

* Improve spacing of verticalTabs

* Slightly increase the tabbar width in the Options screens

* Slightly increase the tabbar width in the help screens
2020-01-13 13:02:50 +08:00
David Carlier
7951d1a92d Reducing significantly build warning on MacOS
OpenGL deprecated APIs, gl/gl3 inclusion, OpenAL deprecated API.
Implementing process path for the crash reporter.
2020-01-12 07:28:15 +00:00
Benau
5ce95ba5e7 Fix clang warning 2020-01-12 12:59:02 +08:00
David Carlier
a6aa0aa9eb crash reporter, getting process path in native way on FreeBSD. 2020-01-11 21:23:45 +00:00
Benau
1e4b0ccb4e Add resetGlobalVariables for message queue 2020-01-11 00:21:22 +08:00
CodedOre
13fca9a0eb Adapting MessageQueue for Tutorial (#4204)
* Make Script-Message more adaptable

* Highly WIP-TriggerMessage

This is commited for discussion, so it is far away from complete or good or anything else.

* One Place for the static Message!

* Fixing that clear() dont clear the static message.

* Discard Static Messages when Race is closed.

In Order to not leave StaticMessages if an Race is quit, now closing the race discard StaticMessages.

* Allow for co-existence of static and normal message

* Fix indentation and Enum Order

* Clean up used StaticMessages.

* Clean StaticMessages up Round 2
2020-01-11 00:12:56 +08:00
Benau
c7c5a54083 Update contributor name based on request 2020-01-10 08:20:52 +08:00
Fouks0
cb236e9674 Always show times in ms (#4177)
* Always have the time(r)s showing milliseconds
* Format time in mm:ss.mmm in the Ghosts List/Dialog
2020-01-09 17:12:38 +01:00
Bilka
8ce0def43d Removed StringUtils::notEmpty (#4208) 2020-01-09 17:06:39 +01:00
Andrey Karepin
08d1a2df4a fix openSUSE name
Please, see https://en.opensuse.org/Help:Style#openSUSE_spelling
2020-01-08 15:22:16 +03:00
Benau
b09aec6b3f Remove Dmitry Marakasov changes for his disagreement 2020-01-07 00:08:09 +08:00
Reiner Herrmann
2f44e5ea1f Man page fixes (#4202)
* Fix syntax of comments in man page

* Move man page to correct section (6 = games)

* Update version in man page
2020-01-06 08:26:04 +08:00
CodedOre
4ce88158c8 Enabling MessageQueue for Scripting (#4201)
As @Benau suggested to use MessageQueue for *making the Game Flow of the Tutorial smoother* (#4187), this Pull Request enable MessageQueue for Track-Scripts.

For me it works well with MessageQueue, however i think we could make the Font of a Message a little bit bigger, since it is quite small, especially on mobile.
2020-01-06 01:11:46 +08:00
David Carlier
ea948fd5d5 Mac OS little update propsal.
Silencing deprecated OpenDL api warnings in recent MacOS releases.
Needed to set openssl for curl.
2020-01-04 21:22:43 +00:00
David Carlier
331fe8b5b6 Missing header for network struct, vital for FreeBSD. 2020-01-04 11:42:35 +00:00
Benau
c8d0361837 Fix valgrind warning 2020-01-04 01:38:57 +08:00
Benau
6b032d6a2c Update translation 2020-01-03 23:10:39 +08:00
Benau
9499a75676 Update software used and donors 2020-01-03 22:54:37 +08:00
Benau
b121bdb426 Update changelog 2020-01-03 22:50:00 +08:00
Benau
7b3a543ae5 Use utf8 encoding for mcpp 2020-01-03 22:22:14 +08:00
Benau
8e5e50662a Use PROJECT_VERSION in plist to avoid editing each release 2020-01-03 20:47:37 +08:00
Benau
7e129b3895 Fix iOS compilation 2020-01-03 20:45:24 +08:00
Benau
82ed737b34 Expose STK version conversion utils to scripting 2020-01-03 13:53:14 +08:00
Benau
792a86da60 Use mcpp to preprocessing scripting (for now STK_VERSION) 2020-01-03 13:43:26 +08:00
Benau
39821e9ad3 Allow compiling mcpp with android 2020-01-03 13:25:26 +08:00
Benau
d729c543f9 Fix compiler warnings 2020-01-03 13:16:16 +08:00
Benau
e401a3c865 Apply patches from debian libmcpp 2020-01-03 12:57:16 +08:00
Benau
b928ecf24c Remove CPU preprocessing which is unneeded for STK 2020-01-03 12:54:16 +08:00
Benau
db5d1420f9 Add mcpp from github.com/ned14/mcpp 2020-01-03 12:46:35 +08:00
Deve
40af912312 Add a possibility to use auto acceleration on android 2019-12-30 03:47:34 +01:00
Deve
487647df85 Don't show touch controls icon in spectator mode 2019-12-29 21:03:25 +01:00
Bart Ribbers
8cd8b7c26e Define VALIST as va_list rather than char* on non-glibc systems (#4185) 2019-12-29 12:29:09 +08:00
Benau
44d2127800 Always use default name Player in mobile STK 2019-12-29 10:44:13 +08:00
Deve
8e19e96a9e Add easier way to change touch controls type 2019-12-29 00:04:45 +01:00
Benau
f89933bb46 Exit the loop earlier if protocol manager is exiting 2019-12-28 12:46:17 +08:00
Benau
3944d81cfc Fix writing of server id file for unicode folder 2019-12-28 12:45:56 +08:00
Benau
10c0515c88 Fix create process with executable with space in path 2019-12-28 12:42:40 +08:00
QwertyChouskie
27fce1d1a4 Update Wiiuse to 0.15.5
Updates Wiiuse, while keeping (and labeling) STK-specific patches.
2019-12-27 18:13:32 -08:00
Deve
8df28b07b1 Restore function for hardware keyboard on android 2019-12-27 23:49:29 +01:00
Benau
cecf5cffac Fix missing checking if 3 arguments 2019-12-28 02:12:59 +08:00
Benau
3708d81815 Require at least 3 characters for search addon in server
This will prevent sending too many data if server has all addons
2019-12-26 15:18:31 +08:00
Bart Ribbers
f6ee1ebab1 Include linux/sysctl.h rather than sys/sysctl.h on non-glibc systems (#4174) 2019-12-26 11:52:46 +08:00
riso
d00ffe72b9 make /liststkaddon, /listlocaladdon, /listserveraddon more friendly (#4181)
* make /liststkaddon, /listlocaladdon, /listserveraddon more friendly

* remove debug code
2019-12-26 11:14:09 +08:00
Jeff
de33244ae7 Expose getKartType(int kartId) to scripting
This change attempts to expose the KartType (local player, networked player, AI, etc.) to scripting.
This is useful if a track creator wants an action to only occur if triggered by a real player, or only if triggered by a non-networked player (e.g. alternate route music in Frozen Drive unofficial add-on).

I have rushed this in to try and get it added in STK 1.1 and I have not yet been able to configure and build STK from source, so this change is currently untested!

I have placed this in the Track section because it uses the race manager. Please let me know if the Kart section is more appropriate.
2019-12-25 21:49:00 +11:00
Benau
7f32842e76 Use Tip: %s in translation instead 2019-12-25 15:22:45 +08:00
Benau
f5f647c7ce Save players.xml to avoid achievements gone when pressing home button in mobile stk 2019-12-25 14:38:00 +08:00
Benau
82cbf3b09f Fix not enough space for uninstall full game assets button 2019-12-25 13:29:56 +08:00
Benau
fb6bedc101 Enable word wrap in screens where text could be too long 2019-12-25 12:21:27 +08:00
Benau
b2dd555117 Fix screen keyboard with iPhone padding 2019-12-25 12:20:18 +08:00
QwertyChouskie
594cfefeed Fix CMD flags in main.cpp (#4180)
Came across these when working in my branch.
2019-12-25 10:44:28 +08:00
Benau
a46f82420f Bigger confirm internet dialog size for small iPhone screen 2019-12-23 09:15:01 +08:00
Benau
8c5759821e Allow RES_CHANGE_SAME without recreating device 2019-12-22 16:31:59 +08:00
Benau
29c79abc22 Fix possible exit crash 2019-12-22 11:13:18 +08:00
Benau
01c57fa483 Add link helper for iOS 2019-12-21 01:30:01 +08:00
Benau
fa249efac1 Fix device orientation unknown in the first time 2019-12-21 01:04:08 +08:00
Benau
31562ba067 Add padding to some gui elements for iPhone X 2019-12-20 14:08:01 +08:00
Benau
be77b5f294 Add code to handle screen padding in new iPhone 2019-12-20 13:10:58 +08:00
Benau
84f91d58db Hide home indicator in iPhone X default 2019-12-20 10:59:01 +08:00
Benau
fe0cb90769 Make sure icon handling of addons is thread safe 2019-12-20 09:55:12 +08:00
Benau
dce9bf1e63 Save addons xml when going into background for mobile stk
So the icons don't need to be redownloaded again after it's killed
by OS in the background
2019-12-20 08:59:02 +08:00
Benau
93e95a0c39 Update translation 2019-12-20 08:05:07 +08:00
Benau
801aa12743 Update full assets size for mobile stk 2019-12-19 01:46:06 +08:00
Benau
82986bdeaa Add pumpkin park to android 2019-12-19 01:44:06 +08:00
Benau
13bfb902db Improve showing of tips
1. Disable in track loading as for most tracks it too short to be seen

2. Show race tips only when human loses
2019-12-19 00:33:22 +08:00
Benau
22665023f7 Add mingw nsis installer (used in mxe makensis) 2019-12-18 16:10:08 +08:00
Benau
16736c94bc Allow compiling wiiuse with mingw 2019-12-18 14:40:54 +08:00
Benau
5f3b2ffc25 Update translation source 2019-12-18 14:34:47 +08:00
Benau
1e99d8cbbb Improve addons screen layout 2019-12-18 14:29:27 +08:00
Benau
f1e0548d0e Update tips for new translation 2019-12-18 14:28:51 +08:00
Benau
b79bfa46cc Fix missing last character from replacing xml characters 2019-12-18 14:25:10 +08:00
Benau
c1be829f0e Allow extract translation from tips.xml 2019-12-18 13:49:36 +08:00
Benau
8b50536aae Show tips in result screen only for local games 2019-12-18 12:54:34 +08:00
Benau
4d0952c716 Clear up tips manager 2019-12-18 12:52:45 +08:00
Alayan
ad8ef2df11 Fix #3376
The UI layout should be improved, but functionality and translatable strings are there as needed.
2019-12-18 04:25:18 +01:00
Alayan-stk-2
354410dbd2 Improve tips formulations, and add some 2019-12-18 03:37:57 +01:00
杜茂森
1ade00462d Simple tips manager (#4146) 2019-12-18 02:23:06 +01:00
Alayan-stk-2
82f83ea1ec Changelog update, part 4 2019-12-18 01:51:42 +01:00
Benau
e9b2f40d04 Fix server only build 2019-12-17 09:18:29 +08:00
Benau
96cae14b09 Update translation source 2019-12-17 07:47:26 +08:00
Benau
344079deda Remove previous addon directory after uninstall 2019-12-17 07:37:50 +08:00
Benau
4a2def8df1 Fix crash when using addon command in dialog 2019-12-17 01:38:22 +08:00
Benau
5989221305 Improve error logging 2019-12-17 01:32:53 +08:00
Benau
7d60855a7f Don't show install addon command for invalid addon id 2019-12-17 01:01:11 +08:00
Benau
74cd74f869 Avoid android java crash when opening url 2019-12-16 09:29:24 +08:00
Benau
29e4500ce6 Prevent soccer ai crash if 1 team has no player 2019-12-16 09:22:57 +08:00
Benau
49651cca4f Allow connect to server with domain in IPv4, fixed #3969 2019-12-14 09:52:04 +08:00
DoggoOfSpeed
5273dac899 Fix #4149 (#4171) 2019-12-14 08:48:50 +08:00
Benau
b9af85442b Take parent library into account for animator checking 2019-12-14 00:21:47 +08:00
Benau
1ee2f01fbc Allow moving library object with physical body 2019-12-13 23:52:39 +08:00
Benau
725d587566 Add configurable chat consecutive interval value 2019-12-13 18:24:17 +08:00
GuillaumeBft
5d399f1203 add message freguency limit in chat (#4168) 2019-12-13 17:52:40 +08:00
Benau
e40ab453a6 Fix possible NAN on some extreme tracks 2019-12-12 09:16:10 +08:00
GuillaumeBft
edfd638cc4 fix #4123 (#4161)
* fix #4123

* Formatting
2019-12-10 21:54:08 +01:00
Benau
0c10389333 Fix overflowed list in addons screen 2019-12-11 01:13:16 +08:00
GuillaumeBft
1115118a13 Show only possessed checkbox in addons screen #3376 (#4162)
* Show only possessed checkbox in addons screen

* add var w_show_possessed

* Update addons_screen.stkgui
2019-12-11 00:12:45 +08:00
Benau
0b480e7a71 Restore linear and angular velocities of 3d animation physical objects 2019-12-10 13:35:43 +08:00
Benau
c09585eaf7 Remove old addon folder before install new addon 2019-12-10 09:44:52 +08:00
Fábio Maia
0f7137d43a Remove duplicate dependency for GUI-less binary build 2019-12-09 20:23:48 +00:00
Benau
5e5026ea68 Adjust soccer result screen for new data 2019-12-09 14:05:50 +08:00
Benau
2cbd18ef7e Add country code and handicap to scorer data 2019-12-09 13:57:13 +08:00
Benau
891fd57053 Move message queue when on screen keyboard opened 2019-12-09 12:40:39 +08:00
Benau
5e016e88df Display the addon command explicitly 2019-12-09 11:35:24 +08:00
Benau
32cccb358b Refactor AddonsPack::uninstall to allow remove addon by name later
Also save addons installed xml when necessary
2019-12-09 10:51:47 +08:00
Benau
1a23580648 Try to fix track object loading empty lod node crash 2019-12-07 13:48:36 +08:00
Benau
b095438681 Extract addons zip file recursively (for canyon42 in the future) 2019-12-06 22:11:35 +08:00
Benau
0728722f37 Stop download too if dismiss dialog
This can happen if other place calls dismiss dialog
For example screen pushing by network protocols
2019-12-06 20:53:43 +08:00
Benau
a45d4fe9f2 Show download size for addons pack 2019-12-06 19:34:26 +08:00
Benau
1a423e11e7 Add sha256 for string in scripting 2019-12-06 15:49:47 +08:00
Benau
b29a42719c Expose item manager random seed (synchronized in online too) in scripting 2019-12-06 14:10:45 +08:00
Benau
06b11056c8 Add kick player command 2019-12-06 12:35:45 +08:00
Benau
2cbf6b732e Make the live join ticks more correct 2019-12-06 12:11:28 +08:00
Benau
d60b087c25 Exit server stk process if STKHost no longer exists 2019-12-06 12:03:18 +08:00
Benau
11b9897f88 Add non-blocking thread network console for linux 2019-12-06 11:58:51 +08:00
Alayan-stk-2
d71012f452 Changelog update, part 3 2019-12-05 12:48:28 +01:00
Alayan-stk-2
5b9ad89abb Fix #4157 2019-12-05 12:10:37 +01:00
Quipyowert2
46b833f11d Use unsigned int with %x format string 2019-12-04 21:23:15 -08:00
Benau
5aad3f1775 Don't assume command line values are always ascii
In case someone put unicode folder inside addons
2019-12-04 09:10:01 +08:00
Benau
d6654637bc Fix typo 2019-12-04 08:51:33 +08:00
Benau
5dd208fdca Show addon identity for live installation 2019-12-04 00:47:54 +08:00
Benau
0726f01808 Update translation 2019-12-04 00:37:02 +08:00
Benau
97be595725 Add player addons scores info 2019-12-03 16:40:48 +08:00
Benau
01ec6e3c4d Add server addon checker 2019-12-03 16:02:51 +08:00
Benau
f470ab7f44 Add player addon checker 2019-12-03 15:32:06 +08:00
Benau
ddbdf2d244 Add function to find STKPeer by player name 2019-12-03 14:10:38 +08:00
Benau
a3c6c63be8 Rename listclientaddon to listlocaladdon 2019-12-03 14:04:33 +08:00
Benau
1c82f5fd7e Rewrite addon loading in ServerLobby for addons directory
So as long as they are in addons/karts or addons/tracks, they can be
used no matter what group they belong
2019-12-03 13:46:30 +08:00
Benau
9ea77528ef Allow listing client installed addon 2019-12-03 13:24:34 +08:00
Benau
7c83a4f9f3 Reserve language info for translation 2019-12-03 12:55:41 +08:00
Benau
a9684f31e6 Allow reload skin list for addon (un)installation 2019-12-03 12:50:25 +08:00
Benau
e2505d0416 Allow remove unofficial addon (including skin) 2019-12-03 12:21:06 +08:00
Benau
6951a5e088 Add result for addon (un)installation 2019-12-03 11:35:39 +08:00
Benau
6062d3f169 Allow listing STK addons (available online officially) 2019-12-03 10:38:05 +08:00
Benau
6d3bb566be Allow listing server addons 2019-12-03 10:26:01 +08:00
Benau
68d549e697 Add music volume command control in lobby 2019-12-03 01:57:58 +08:00
Benau
fe34619652 Rewrite RankingCallback for std::shared_ptr Request 2019-12-01 01:53:44 +08:00
Benau
4cb3383c4a Remove the unneeded manage memory option in request 2019-12-01 01:19:51 +08:00
Benau
89d35f09fa Replace observeExistence with std::weak_ptr of Request 2019-11-30 16:25:21 +08:00
Benau
13975cc5db Use std::shared_ptr for Request to avoid leaking 2019-11-30 16:01:31 +08:00
Benau
77d563d082 Print unzip files only when debug printing 2019-11-30 13:54:35 +08:00
Benau
e450968bef Fix race condition when user installs addons live in lobby 2019-11-30 13:10:33 +08:00
Benau
b2d496798f Always clear the downloaded (part) files 2019-11-30 02:19:52 +08:00
Benau
a962954c5e Allow install addons live in lobby 2019-11-30 02:03:56 +08:00
Benau
19d008d0f8 Add support for installing addons pack 2019-11-30 00:36:35 +08:00
Benau
07a43e0ca3 Fix download request leak if it failed 2019-11-29 22:31:53 +08:00
Benau
9103a66651 Allow remove directory recursively if it's inside addons folder 2019-11-29 21:25:25 +08:00
Benau
45e4175ba6 Add moveDirectoryInto function 2019-11-29 19:49:00 +08:00
Benau
81ca14d549 Fix #4148 2019-11-29 10:26:23 +08:00
Deve
771f37138c Fixed speedrun timer checkbox visibility.
Using both setActive() and setVisible() together doesn't have much sense.
Especially that in init function the checkbox was made invisible, but in
eventCallback it was only made active, but still kept invisible.
2019-11-28 22:16:28 +01:00
Benau
a07ca7f365 Fix valgrind warning 2019-11-29 02:09:38 +08:00
Benau
04e552994d Remove empty texture warning 2019-11-29 01:54:43 +08:00
Benau
8799369066 Rename config name which is not compatible with 1.0 2019-11-28 16:44:01 +08:00
杜茂森
340ec706b0 UI fix bundle XIII (#4138)
* UI fixes && Icon support for powerups

* Better loading icon size

* Fix #4145

* Fix a small bug

* Add alternative icon support & avoid duplicating icons
2019-11-28 16:13:00 +08:00
Benau
10a125c407 Fix string after icon name update 2019-11-27 12:23:47 +08:00
Benau
13da9bb9c7 Load database with full path for installed stk 2019-11-26 12:01:11 +08:00
Deve
f60583542e Fixed plural forms in most languages 2019-11-24 22:23:51 +01:00
Benau
520f1c7d3a Fix broken kart animation for countdown timer in result screen 2019-11-24 12:14:29 +08:00
Benau
fe028b4534 Fix skidding ai crash 2019-11-24 11:37:02 +08:00
Benau
8c223cd2c2 Hide error message for hole drop arena 2019-11-24 11:08:08 +08:00
Deve
426be8f3c1 Add continue button to cutscenes 2019-11-24 00:55:57 +01:00
Benau
1a2beedb68 Use a smaller default wheel size for iPad 2019-11-23 13:18:06 +08:00
Benau
20ea7fe2ff Improve rubber banding effects of rewinders when going back to phone 2019-11-23 12:52:38 +08:00
Benau
84a7c282ee Fix android network ai crash 2019-11-23 12:49:00 +08:00
Benau
dd9c91be0c Fix #4141 2019-11-23 12:31:55 +08:00
Benau
2c22dadddf Apply deve fix for story mode timer 2019-11-23 11:41:53 +08:00
Benau
af2e609fff Disable story mode timer for old profile 2019-11-23 08:58:32 +08:00
Deve
f0dd933ef6 Fixed a crash when starting cutscene using debug menu 2019-11-22 21:01:54 +01:00
Deve
8a26ae009e Add adaptive icon for newer android versions 2019-11-21 22:21:03 +01:00
Benau
65bb31b56f Fix missing handicapped player names in soccer screen result 2019-11-21 01:36:45 +08:00
Deve
4b817e6e90 Include xxxhdpi icon for android 2019-11-17 22:18:50 +01:00
Alistair Findlay
10b2713093 Some small fixes (#4140)
* Some small fixes

* Some small fixes

added more fixes

* more wording improvements

* Fixed compilation failure

* More grammar and spelling
2019-11-17 01:33:15 +08:00
Alistair Findlay
c990296cf6 Fixed some spelling mistakes (#4139)
* Fixed some spelling mistakes

shorcut to shortcut (Also, I can not understand what the sentence on line 4 means, it could be reworded.)
proeminent to prominent
featue to feature

* fix spelling mistake

hearby to hereby
2019-11-16 00:27:37 +08:00
Benau
05f634228e Fix invalid read of boolean after dialog dismissed 2019-11-15 16:32:49 +08:00
Alayan
c2e599f91e Fix the reload button carrying over to the continue GP option 2019-11-10 23:23:03 +01:00
Alayan
325f19d30b Improve the layout of the GP info screen 2019-11-10 23:17:50 +01:00
Deve
fb4ecf6a00 Better fix for icon button alignment 2019-11-10 10:25:19 +01:00
Benau
60d5233782 Fix #4133 2019-11-09 00:52:19 +08:00
杜茂森
69729e3e83 Fix #4011 (#4130)
Support setting the flip direction of tabs explicitly.
2019-11-08 16:31:49 +01:00
Benau
f4da9718c5 Fix gui warnings 2019-11-08 16:24:58 +08:00
Benau
bbbfe43120 Save number of ai karts per game mode when leaving track screen 2019-11-08 15:01:38 +08:00
Benau
6a466293ac Update translation source 2019-11-08 14:04:54 +08:00
Benau
1eec3bdfde Fix valgrind warning 2019-11-08 13:57:11 +08:00
Benau
949752451c Revert layout manager changes as it breaks addon screen 2019-11-08 13:27:50 +08:00
Benau
8582258cae Fix several crashes after add or remove tracks from various places 2019-11-08 12:48:04 +08:00
Deve
435e8c3747 Revert "Allow to use "extremely large" font size."
This reverts commit 4f9070ee53.
2019-11-07 22:57:13 +01:00
Alayan
f693e32bd6 Improve the general option screens with large font size 2019-11-07 22:44:27 +01:00
Alayan
658345c9ff Improve in-race chat
* Limit in-race chat to 3 lines instead of 5
* Add an option to disable in-race chat (while keeping lobby chat)
2019-11-07 22:25:04 +01:00
Alayan
9647dea346 Fix #3714 2019-11-07 22:24:13 +01:00
Deve
4f9070ee53 Allow to use "extremely large" font size.
It looks fine in most places.
2019-11-07 22:01:25 +01:00
Deve
b5f3fafaac Slightly increase button size for android 2019-11-07 21:33:58 +01:00
杜茂森
f169ed82a3 UI fix bundle XII (#4114)
* Change arena addon icon

* Categorize UI

* Give small margin

* Better icon size in help

* Several screen fix

* Fix bug

* Better GP line size

* Give more space to texts

* Better size
2019-11-07 19:01:28 +01:00
Benau
42d341a925 Split stk version and os string to 2 columns for better statistic purpose 2019-11-08 01:17:27 +08:00
Benau
4b23552ea8 Add function to extract stk version and OS from user agent 2019-11-08 01:02:53 +08:00
Benau
9d75b706d5 Remove warnings 2019-11-07 14:40:10 +08:00
Benau
0f9688f5da Disable possible blocking writing to log and console for starting timer 2019-11-07 12:20:37 +08:00
Benau
148dc49817 Don't poll irrlicht device without graphics
It fixed crashes for joystick event which does XResetScreenSaver
2019-11-07 09:40:52 +08:00
Benau
310caebc34 Disable smoothing network body for local kart
This should improve collision handling and remove into ground kart
2019-11-07 01:48:05 +08:00
Benau
1d384961dd Implement keyboard sorting list widget 2019-11-04 16:41:23 +08:00
Benau
5f32b81ab8 Fix stk server crash 2019-11-03 02:43:31 +08:00
Palash Bansal
efa3bfff12 updated install instructions for windows 2019-11-02 22:11:32 +05:30
Benau
2650ec2f3e Disable showing story mode timer if starting stk with old players.xml 2019-11-02 00:38:30 +08:00
Benau
5c9df8d9a2 Fix profiling mode of stk 2019-11-02 00:07:10 +08:00
Benau
2700162d1f Use getMonoTimeMs to avoid system clock changes 2019-11-01 22:52:11 +08:00
Alayan-stk-2
770d02b19b Compute and display a story mode timer (#4121)
This is the result of my previous work, with a port of the timer version that was developed for a 1.0 mod. It has been used by several players so no major issue should exist, though UI and other elements may require adjustment to smooth some rough edges.

It features both a casual story mode timer storing the total time to complete the story mode (on by default) and a "speedrun" timer (off by default). The casual timer is paused whenever the player exits story mode, and supports play over multiple sessions. It is only displayed in the overworld and during challenges ; while the speedrun timer is permanently displayed.

Fix #2907
2019-11-01 13:25:27 +01:00
Benau
48f4088894 Clear all widgets pointer when unloading track screen
This fixed crash after changing resolution and then spectate the game,
which m_timer is previous value
2019-11-01 19:16:23 +08:00
Benau
033933d3a2 Hide ipv6 button in LAN server selection 2019-11-01 10:49:31 +08:00
Benau
e5de8f764c Fix #3902 2019-11-01 08:13:41 +08:00
Benau
2837f54688 Reset high digit font scale to 1.0f after drawing 2019-11-01 01:34:00 +08:00
Benau
7c54eb48cb Update translation 2019-10-31 12:56:26 +08:00
Benau
63cb55acb6 Clear previous assets version to free space 2019-10-31 12:53:55 +08:00
Benau
a8fdd98a0e Add a high ping workaround in server
This will allow around ping with 400ms to have a playable game with
the default values of max-ping and jitter-tolerance, as long as the
internet connection is stable (no packet loss)
2019-10-31 11:36:03 +08:00
Alayan-stk-2
2f93ef9c6d Changelog update, part 2 2019-10-31 00:58:57 +01:00
Alayan
41880fe815 Fix #4051
This solution is hackish, but it's more resilient and easier than trying to get the update order right.
2019-10-31 00:28:48 +01:00
Du maosen
6dd5800701 Fix#4117 (#4119)
* Fix #4117
2019-10-29 16:14:12 +01:00
Du maosen
9d80d7e71a Various skin fixes (#4111)
Fix #3953;
Fix #3752;
2019-10-29 13:39:34 +01:00
Benau
7caa24859c Update translation strings 2019-10-29 12:43:50 +08:00
Alayan
0d44b8e7dd Fix #4097 2019-10-28 19:51:41 +01:00
Benau
ac7310602e Hide donation button until there is a gift package 2019-10-28 16:58:44 +08:00
Benau
ab3d8ef415 Implement link helper for android 2019-10-28 16:47:05 +08:00
Benau
aa647cce67 Update translation source
Add tutorial for mobile stk, fixed #2971
2019-10-28 11:19:36 +08:00
AsciiWolf
c3f32f5f5a Add OARS metadata (#4115)
See https://hughsie.github.io/oars/
2019-10-27 19:41:12 +01:00
Benau
8cd095bf34 Add scripting functions to know current race gui type 2019-10-28 01:51:16 +08:00
Benau
1904e37ff1 Add mean packet loss info of peers to database 2019-10-27 23:43:51 +08:00
Benau
e9b5fb2c81 Fix server config help strings 2019-10-27 13:11:25 +08:00
Benau
249f715c87 Fix unselected ruby skin 2019-10-27 12:50:17 +08:00
Benau
adaaeb0e8e Fix #3432 2019-10-27 12:39:49 +08:00
Du maosen
84d99ac690 Bigger kart stat (#4113) 2019-10-26 18:21:42 +02:00
Alayan
50988c6c60 Fix #3687 2019-10-26 02:28:42 +02:00
Alayan-stk-2
79c32a5906 Partial credits update
I moved around some parts of the credits for more consistency, and updated some elements.

Some recent minor contributors are probably missing, while contributors for things that are not anymore in STK should be (re)moved.
2019-10-26 00:53:15 +02:00
Alayan
fc769c48a7 Fix #4110 and some clean-up 2019-10-25 22:02:41 +02:00
Alayan
ff2ccdbde3 Minor mode checks clean-up 2019-10-25 20:26:18 +02:00
Benau
4f388b2c87 Fix #3097 2019-10-26 01:15:39 +08:00
Alayan
39363291a4 Fix #4109 2019-10-25 16:51:21 +02:00
Benau
ed6d657d90 Remove glFinish in OSX
From http://irrlicht.sourceforge.net/forum/viewtopic.php?f=7&t=49052

It should not exist in any case
2019-10-25 15:39:35 +08:00
Benau
04dd5a8bfb Add IPv6 ban table 2019-10-25 12:44:50 +08:00
Benau
0217eaf173 Add sqlite function for ipv6 cidr testing 2019-10-25 09:20:36 +08:00
Deve
4be93daa83 Add small left margin to all back buttons 2019-10-24 22:25:49 +02:00
Deve
b5b3ca7be0 Fixed icon button position when using x="value" or left/right align 2019-10-24 22:25:49 +02:00
Alayan
d6ed40d3d3 Fix #4105 2019-10-24 20:06:32 +02:00
Alayan
ae8b6a0252 Minor simplifications 2019-10-24 16:54:26 +02:00
Alayan
102498f130 Separate DoF and motion blur from the main graphics preset 2019-10-24 15:56:42 +02:00
Alayan
c7df5114e7 Track info screen partial clean-up 2019-10-23 23:52:17 +02:00
Alayan
2e41f675cc Fix #4106 2019-10-23 21:42:04 +02:00
Benau
958868526f Allow live kicking from ban list 2019-10-23 14:42:22 +08:00
Benau
6c22a3b210 Ignore error message for network ai 2019-10-23 13:37:27 +08:00
Benau
a5e5b20a19 Fix #3875 2019-10-23 13:34:52 +08:00
Benau
914621251c Try to fix a crash when searching friend 2019-10-23 09:47:53 +08:00
Alayan
a3a7b5f8fd Fix #3596 2019-10-23 00:30:43 +02:00
Benau
349fe30747 Move spectate checking code to race gui 2019-10-23 02:43:29 +08:00
Alayan
f3a59b5649 More kart.cpp clean up 2019-10-22 19:49:01 +02:00
Alayan
b4fe68b53d Improve leaning 2019-10-22 18:31:09 +02:00
Alayan
be0df77be9 Improve kart.cpp/hpp code organization.
No functional change
2019-10-22 16:09:04 +02:00
Alayan
80c2bb1eaa Make old green valley and blackhill mansion replays playable if the addons are there 2019-10-22 13:45:00 +02:00
Alayan-stk-2
330318fa2a Remove mac from travis tests for now
The amount of "timeouts" errors where a mac build job stalls for no clear reason at all (the script isn't even started, and it's inconsistent) is unacceptable.
2019-10-22 12:29:13 +02:00
Alayan
b4b346e7a6 Fix #4103 2019-10-21 22:49:54 +02:00
Deve
2adeb7334e Make widget glow size proportional to resolution 2019-10-21 22:00:34 +02:00
Alayan
d7053ca2e5 Fix #3876 2019-10-21 21:59:01 +02:00
kxxvii
816cd3f3bf Additional trivial type/word fixes for man page and '-h' (#4102)
* Command-line help typo, fix
	modified:   src/main.cpp

* Typo fix, GNU/Linux manual
	new file:   doc/supertuxkart.1
	modified:   src/main.cpp

* More word and typo fixes in man/'-h'
	modified:   doc/supertuxkart.1
	modified:   src/main.cpp
2019-10-22 01:54:54 +08:00
Benau
62d8a17152 Allow setting default config value inside stk-code
Share the restore code with android and iOS
2019-10-22 01:43:09 +08:00
Alayan
17305a6cd8 Improve kart stats code readability 2019-10-21 18:46:43 +02:00
kxxvii
f55a206271 GNU/Linux manual page. (#4100)
* Command-line help typo, fix
	modified:   src/main.cpp

* Typo fix, GNU/Linux manual
	new file:   doc/supertuxkart.1
	modified:   src/main.cpp
2019-10-21 16:26:40 +08:00
Benau
c577383573 Fix #2536 2019-10-20 00:54:12 +08:00
Benau
a616664af2 Add menu command-q shortcut to quit STK in OSX 2019-10-19 13:00:28 +08:00
Deve
9dde7aee95 Use default height for spinners in gui options.
Also move them to the left side to give more space for labels.
2019-10-18 18:12:03 +02:00
Deve
ade98f730b Move vsync spinner above "custom" button 2019-10-18 18:10:28 +02:00
Deve
45cff64d91 Change download assets size after generating full assets 2019-10-18 18:10:28 +02:00
Benau
88846f5d36 Add launch screen from iOS dependencies 2019-10-18 23:01:07 +08:00
Benau
42d9e8967f Add default config for iOS devices 2019-10-18 22:22:32 +08:00
Benau
5bb9cd6492 Update translation 2019-10-18 22:14:38 +08:00
Benau
3437fa5edf Fix iOS crashing when going to background 2019-10-18 19:08:21 +08:00
Benau
34b2e074bb Fix #4096 2019-10-18 12:51:42 +08:00
Benau
1a7a8bdc14 Make karts powerup in gui an option 2019-10-18 12:03:36 +08:00
Alayan-stk-2
d1487a9801 Changelog update, part 1 2019-10-18 01:55:38 +02:00
Fouks0
6beefb829c Show everyone's items with the left characters icons (#4027) 2019-10-17 21:07:52 +02:00
Luffah
aa9b2e7008 Add an option to put the minimap on the center of screen. (#4087)
* Add an option to put the minimap in the center of screen.
2019-10-17 21:03:46 +02:00
chozo
d4d34498ad Command-line help typo, fix
modified:   src/main.cpp
2019-10-17 20:29:10 +02:00
Benau
1625d55de5 Reset AI peer for empty server 2019-10-17 12:18:11 +08:00
Benau
f4e7ccccfd Implement half sync in iOS manually 2019-10-16 16:46:40 +08:00
Benau
3a007fd8af Fix iOS build 2019-10-16 16:38:03 +08:00
Benau
fccd34dc87 Add required key for distribution to app store 2019-10-16 16:15:13 +08:00
Benau
b639efd8ed Use lower frequency for network ai 2019-10-16 11:48:58 +08:00
Benau
3b75740163 Check peer first to avoid crash 2019-10-16 10:43:36 +08:00
Benau
11897da80c Don't kick ai peer for idling 2019-10-16 01:16:45 +08:00
Benau
843ca083d5 Fix empty player count when resetting server 2019-10-15 19:15:22 +08:00
Benau
cb70036cb1 Fix bot name in server only build 2019-10-15 16:44:56 +08:00
Benau
63878e9693 Update NETWORKING.md for ai handling 2019-10-15 16:30:27 +08:00
Benau
cf412c947c Show player count with AI in server browser 2019-10-15 16:28:48 +08:00
Benau
1614868b5d Add AI handling for online racing games 2019-10-15 16:19:30 +08:00
Deve
170e4be0ca Merge branch 'master' of https://github.com/supertuxkart/stk-code 2019-10-15 06:13:08 +02:00
Deve
377dd80a05 Fixed cygwin build 2019-10-15 06:12:50 +02:00
Deve
030bc38516 Generate full assets in android builder 2019-10-15 01:04:56 +02:00
Alexander Mennborg
fc9aff80dd Randomizing spawn points for battle mode #3620 (#4093)
* Changed to randomize spawns for battle modes

* Changed to randomize spawns for battle modes

* Randomizing spawns only considers offline play

* Code cleanup, removed unused spawn_id from RemoteKartInfo

* Changed to shuffle the start transforms instead of randomizing spawn ids

* Removed unused function randomizeSpawn()

* Updated offline check for shuffle start transforms

* Cleanup removed newlines in race_manager.cpp
2019-10-15 01:19:31 +08:00
Benau
76871a3f24 Fix crash when fresh stk lan game with AI 2019-10-14 16:34:28 +08:00
Deve
48a027e276 Update translations 2019-10-13 21:28:20 +02:00
riso
31d4f05552 fix linking order: libpng before libz 2019-10-13 09:47:45 +02:00
Deve
6b26737cd2 Fixed AI in lan multiplayer on android 2019-10-12 22:52:47 +02:00
Deve
c2a20e1526 Avoid a crash when global android app is null in separate process 2019-10-12 22:07:56 +02:00
Deve
1e3313068f Delete libchildprocess_ai when updating apk 2019-10-12 00:49:25 +02:00
Deve
674cfff070 Remove/extract new data only if apk has assets 2019-10-12 00:22:55 +02:00
Benau
6d7d580fa3 Save players.xml when closing kart color slider dialog 2019-10-11 23:08:11 +08:00
Benau
3927c2d78c Save network permission configuration when leaving dialog 2019-10-11 23:05:08 +08:00
Benau
bb27cb17fb Fix missing auto login for saved session
setWasOnlineLastTime(true) before saving, before it was run in
BaseUserScreen::loginSuccessful which is after writing players.xml
2019-10-11 22:55:14 +08:00
Benau
ed376d329c Try to fix a rare crash 2019-10-11 22:44:08 +08:00
Benau
f56cf03b6a Fix AL_INVALID_NAME when exit pause menu with fast music on 2019-10-11 21:40:00 +08:00
Benau
a1e4bbc3c1 Fix fading in and out when switching to fast music 2019-10-11 19:21:58 +08:00
riso
3c4479b63a Rescale the time font if icon is small (solve issue #4089) (#4090)
* rescale the time font if icon is small

* no need for equal
2019-10-11 13:30:45 +08:00
Benau
edb338da88 Fix #4088 2019-10-10 15:56:18 +08:00
Benau
57bd4d9a91 Add timeout and error message for server login handling 2019-10-10 10:15:58 +08:00
Benau
5b3380a43b Add server password for server AI if exists 2019-10-09 15:51:44 +08:00
Benau
21a32b196d Update translation source 2019-10-09 15:37:26 +08:00
Benau
e93bc64ef3 Use Splitscreen Multiplayer to avoid lan game confusion 2019-10-09 15:29:52 +08:00
Benau
396e55a39d Show android robot icon for bots in lobby 2019-10-09 15:28:09 +08:00
Benau
2a40606be7 Allow auto end if all players finished with AI in network race 2019-10-09 14:36:49 +08:00
Benau
a26f67bf16 Allow using AI in lan racing game 2019-10-09 14:08:22 +08:00
Deve
c801191d80 Merge pull request #4085 from dos1/wayland-cursor
IrrDeviceWayland: Don't try to use non-existent wl_pointer object
2019-10-08 08:31:45 +02:00
Sebastian Krzyszkowiak
2aef80864a IrrDeviceWayland: Don't try to use non-existent wl_pointer object 2019-10-08 06:41:00 +02:00
Benau
9e0da6a283 Update translation source 2019-10-08 09:15:01 +08:00
Benau
4a3631ded3 Fix #3858 2019-10-08 09:06:02 +08:00
Benau
cf2454466f Replace similar emoji with thinking face (more popular) 2019-10-07 16:39:34 +08:00
Benau
b472639da0 Fix left / right toggle in race result gui 2019-10-07 16:30:09 +08:00
Deve
70469dafb5 Use shorter name for user interface tab 2019-10-06 23:20:30 +02:00
Deve
72e364a38d Some GUI tweaks 2019-10-05 23:48:44 +02:00
Deve
755b8a2f1b Slightly increase back button size and more consistent header pos/size 2019-10-05 23:44:14 +02:00
riso
657e02efe4 Clean icon name (Improve PR#4073) (#4081)
* fix icon names

* add file mode_weapon.png
2019-10-06 01:14:09 +08:00
Benau
4a3dfd975f Make text translatable 2019-10-05 10:11:57 +08:00
Deve
6ba5cc888f Tweak previous commit 2019-10-05 01:20:06 +02:00
Deve
564601fafe Open debug menu more easily on high resolution android device 2019-10-05 00:08:48 +02:00
Benson Muite
adc6b2a176 Update INSTALL.md
Update Fedora dependencies
2019-10-04 10:58:46 +03:00
Benson Muite
6604765890 Update INSTALL.md
Replace Nettle with Openssl for Fedora
2019-10-04 10:48:39 +03:00
123survesh
94ef5124d0 Fix for #3444: Changing the title text for key bindings dialog box 2019-10-04 12:14:16 +05:30
MiM
1de0693402 resolution issue #4070 (#4073) 2019-10-03 13:40:43 +08:00
Du maosen
71fec6780c Icon button for race result (#4071)
* Icons for race result

* Fix bugs && improvements

* Tabs to spaces

* Fix bugs && improvements
2019-09-30 15:33:07 +08:00
Deve
98d8aca91a Add half vsync to gui 2019-09-28 22:19:03 +02:00
Deve
fc8f6a218e Add possibility to use half vsync 2019-09-28 01:43:26 +02:00
Benau
d205d80ad2 Update translation source 2019-09-26 10:24:08 +08:00
Du maosen
8316d91469 Some improvements for soccer AI spinner (#4069)
* Improve code

* Bigger space in track info

* Bug fix && improvements

* Bug fix && improvements

* Bug fix && improvements
2019-09-26 10:12:24 +08:00
riso
351a6ed6c0 forgot to fix this bug in previous pr4063 2019-09-23 20:10:58 -05:00
riso
0547e1e469 Add options to control the number of red/blue AI in soccer mode (#4063)
* Add options to control the number of red/blue AI in soccer mode (offline)

* fix a bug related to the upper bound when AI num=0 and trying to lower the number

* forgot to fix this

* remove the Balanced/Custom spinner

* improve the AI number spinner's behavior at lower bound

* Hide blue ai number setting if not soccer

* move getting red/blue players number to function TrackInfoScreen::getRedBluePlayerNumber()

* Tab to Space

* rename local variable m_xxx to num_xxx

* bug fix

* improve the default AI number: try the previously used one, if cannot use the previous, recalculate the AI number using balanced
2019-09-23 21:59:17 +08:00
Benau
1553d7b70f Use copyTo for same size glyph 2019-09-22 09:00:26 +08:00
Benau
9154aeda58 Add support for CPAL / COLR tables color emoji
Require freetype 2.10, emoji can be Windows 10 Segoe UI Emoji for
example
2019-09-21 16:08:12 +08:00
Benau
3601e97d3b Update color emoji for android 10.0 2019-09-21 13:23:25 +08:00
Benau
f4cf63572d Clear some global variables for android 2019-09-21 13:05:42 +08:00
Benau
380f300d74 Add documentation for advanced theming 2019-09-21 12:16:42 +08:00
Benau
25aca4328b Add font configuration to skin 2019-09-21 11:48:22 +08:00
Benau
1d74efcd08 Clear message queue when destroying GUIEngine
So it won't call font which could already been reset
2019-09-21 11:42:35 +08:00
Benau
660a35a468 Allow changing font size live 2019-09-21 11:41:21 +08:00
Benau
d7a66f72e8 Allow changing icon theme live 2019-09-21 11:36:12 +08:00
Benau
48ba0aaf27 Rearrange skin structure for usage in addons folder 2019-09-21 11:33:11 +08:00
Benau
e6801e1599 Initial work on icon theme 2019-09-21 11:25:13 +08:00
Deve
95a74a9917 Allow reset object in script 2019-09-21 02:04:37 +02:00
Deve
2056cd3e91 Add better teleport function 2019-09-18 23:56:51 +02:00
Reiner Herrmann
63b23d9e65 Link against libatomic if required
On some architectures it is required to explicitely link against
libatomic to use e.g. 8 byte atomics.
Check during configuration if it compiles without libatomic. If not,
add it to target_link_libraries.

Noticed on Debian build servers: https://bugs.debian.org/934799
2019-09-15 18:26:22 +02:00
Deve
4895cd27a4 Avoid minimap on left side when spectating with touch gui 2019-09-08 22:12:33 +02:00
Deve
137e9dd99e Merge pull request #4056 from risostk/clean_IPV4_typo
Clean IPV4/ipv4 to IPv4, IPV6/ipv6 to IPv6
2019-09-03 21:43:45 +02:00
riso
0e4f875443 Clean IPV4/ipv4 to IPv4, IPV6/ipv6 to IPv6 2019-09-03 14:24:03 -05:00
Roger
84b8fe0b27 Fix format of INSTALL.md (#4054) 2019-09-03 00:33:46 +08:00
Benau
58ad947443 Add IPV6 support to stats database 2019-08-23 11:01:00 +08:00
Benau
f7da3c94f9 Update translation 2019-08-21 23:58:24 +08:00
Benau
69f3c72101 Use new code for iOS IPV6 only server connection 2019-08-21 16:10:41 +08:00
Benau
c705b8fe80 Enable IPV6 in android 2019-08-21 14:59:13 +08:00
Benau
99d7f54bd9 Update translation source 2019-08-21 14:51:06 +08:00
Benau
850d270260 Allow choosing IPV6 connection in server selection screen 2019-08-21 12:00:50 +08:00
Benau
7becfb311d Use more real address in server 2019-08-21 10:46:04 +08:00
Benau
02f8f6fadd Allow windows using IPV6 2019-08-21 09:19:05 +08:00
Benau
1053c582fa Add --connect-now6 for ipv6 connection 2019-08-21 00:21:54 +08:00
Benau
ab56a4fa8b Add ipv6 info to game server 2019-08-21 00:17:31 +08:00
Benau
a92b9abf54 Remove expired mapped address using last activity 2019-08-20 13:10:18 +08:00
Benau
5cacd486da Add ipv6 server configuration 2019-08-20 10:45:33 +08:00
Benau
3f0db672d6 Allow getting public IPV6 address with STUN for server 2019-08-20 00:54:13 +08:00
Benau
0c5166ac39 Add getaddrinfo_compat for workaround of an iOS 9 bug 2019-08-19 14:38:26 +08:00
Benau
285e4e7be5 Remove stun servers not supporting ipv6 2019-08-19 00:12:28 +08:00
Benau
c2c5c20d92 Initial work on IPV6 game server 2019-08-19 00:05:34 +08:00
Benau
1551bdaaaa Add gyroscope icon and use it in init android dialog 2019-08-17 00:47:56 +08:00
Benau
ce2c442402 Add accelerator with handle icons 2019-08-17 00:13:57 +08:00
Benau
41a74817f7 Allow steering wheel following touchscreen control with acceleration indicator 2019-08-16 21:56:21 +08:00
Benau
f787832772 Add 2d drawing shader with custom alpha 2019-08-16 11:48:10 +08:00
Benau
ce1c188b1a Add rotation uniform to 2d drawing shader 2019-08-16 10:31:24 +08:00
Benau
e20f6e3209 Update supertuxkart build id for iOS 2019-08-15 15:51:44 +08:00
Benau
4a12d6aba2 Allow buttons to be used in a linked way 2019-08-15 15:35:58 +08:00
Benau
96ebdcce46 Remove unused stkgui 2019-08-13 01:11:01 +08:00
Benau
fb928792e4 Update translation 2019-08-12 15:49:03 +08:00
Benau
c8e3d5b512 Reload addons and grand prix info after downloading assets 2019-08-12 10:21:57 +08:00
Benau
819fa6537b Correct active state for assets download when internet option changes 2019-08-12 10:02:57 +08:00
Benau
173e390755 Use openssl default after its relicensing to apache 2.0 2019-08-11 02:19:38 +08:00
Benau
88adfbc8df Limit chat to 1000 characters 2019-08-11 02:11:48 +08:00
Benau
1397f3834f Add max length to string16 en/decoding 2019-08-11 01:59:31 +08:00
Benau
d78b57ad9b Optimize large string conversion 2019-08-11 01:30:26 +08:00
Benau
f786c6fde8 Fix missing channel count in network creation 2019-08-11 01:27:32 +08:00
Benau
892a122563 Add link to latest release binaries download 2019-08-09 09:14:55 +08:00
Benau
6669a5b073 Fix track reloading memory leak 2019-08-09 01:15:22 +08:00
Benau
96fb6f057a Update translation source 2019-08-08 16:45:08 +08:00
Benau
4200f0ca59 Allow install full game assets from stk server 2019-08-08 16:38:53 +08:00
Benau
a1d0783f7a Add a pull request template for licensing stuff 2019-08-08 11:38:41 +08:00
Benau
bdf8c589de Allow using external full stk-assets 2019-08-08 09:39:01 +08:00
Benau
c9656d4410 Allow IPV6 only in iOS to connect to game server not behind a firewall 2019-07-27 15:48:21 +08:00
Benau
0b1da5a1d0 Checking for IPV6 only before connecting to game server in iOS 2019-07-27 02:12:35 +08:00
Benau
87b515ee75 Avoid hanging if exit connecting to server 2019-07-26 18:25:39 +08:00
Benau
504e2b8cbf Hide quit button in main menu for iOS 2019-07-26 15:43:09 +08:00
Deve
05684c92dc Update target sdk version 2019-07-25 23:23:14 +02:00
Deve
61f6e354a8 Add a possibility to change generate assets options using environment variables 2019-07-25 22:09:41 +02:00
Deve
75afb5e90b Fixed continue without a loop in generate assets script 2019-07-25 21:56:16 +02:00
Benau
afa26ccf97 Show download size for each option of game assets 2019-07-26 01:19:34 +08:00
Benau
722f18a587 Update translation 2019-07-25 00:45:01 +08:00
Benau
cb30e391a0 Update translation source 2019-07-24 15:49:01 +08:00
Benau
4d761f3958 Use a detailed error message 2019-07-24 15:46:50 +08:00
Benau
d0e65b0a1e Update translation source 2019-07-24 01:45:40 +08:00
dumaosen
bee235a65c UI fix bundle XI (#4018)
* Prettier server conf

* Better icon size for race result

* Delete useless min value
2019-07-24 01:44:53 +08:00
MiroslavR
7e1af5d87c Make achievement goal string consistent (#4019) 2019-07-24 01:44:17 +08:00
Benau
82557ff032 Fix crashes when leaving lobby in iOS 2019-07-24 01:38:41 +08:00
Benau
9d2f0c9548 Fix resolution change crash in iOS 2019-07-24 01:37:12 +08:00
Benau
857232fb52 Get system language for iOS 2019-07-24 01:36:21 +08:00
Benau
ef68f8377a Move creation of music information after downloading assets 2019-07-24 01:35:40 +08:00
Benau
3293196707 Move loading of SP shaders after downloading assets 2019-07-24 01:35:15 +08:00
Benau
d24e253435 Re-initialize file archives after downloading assets 2019-07-24 01:34:31 +08:00
Benau
5cc5780f28 Add download assets screen for mobile stk 2019-07-24 01:33:12 +08:00
Benau
ed011bed4c Allow extract_zip to work recursively 2019-07-21 16:37:11 +08:00
Benau
35168d2ecb Hide status bar in iPad 2019-07-19 23:40:16 +08:00
Benau
cac5ee38b5 Fix gles 2.0 in iOS simulator 2019-07-19 22:09:31 +08:00
Benau
5d2b3efe12 Add graphics restrictions for iOS simulator 2019-07-19 17:14:31 +08:00
Benau
58e69ce8df Try to fix OSX travis build 2019-07-19 17:06:07 +08:00
Deve
fd3a2099bc Tell system that it should use nvidia on optimus devices 2019-07-19 09:25:48 +02:00
Benau
c6d23205bd Fix missing archive generation in xcode 2019-07-19 01:59:02 +08:00
Benau
577d37ced3 Fix accelerometer conversion in iOS 2019-07-19 01:25:57 +08:00
Benau
f1cd119465 Use vaules from settings to determine buttons
In iOS seems that the sensors do not immediately update after you
activate them
2019-07-18 16:16:25 +08:00
Benau
834f8bb659 Update translation 2019-07-18 15:53:14 +08:00
Benau
d77fd2e69e Revert "Replace xml.dom.minidom.parse which is known to be vulnerable to XML attacks. (#3933)"
This reverts commit 74f227590e.

Expat doesn't like  ./data/achievements.xml ! Error= <type 'exceptions.NameError'>
( ("name 'defusedxml' is not defined",) )
2019-07-18 15:52:03 +08:00
Benau
3e51fadc09 Improve english 2019-07-18 15:47:47 +08:00
Alayan
40a8411090 Restore replay list density, and keep a consistent tab size 2019-07-17 20:12:10 +02:00
Benau
dbb14a2861 Fix default windows size and height in iOS 2019-07-17 16:55:09 +08:00
Benau
e722d4a0e5 Update supertuxkart iOS info plist
Need to copy icons from dependencies manually
2019-07-17 14:50:49 +08:00
Alayan-stk-2
b95c3233d6 Remove a useless and confusing test
If min_sector could be anything but UNKNOWN_SECTOR out of the loop, the "return 0" would be wrong.
2019-07-16 12:04:03 +02:00
Nathan Mills
5e9b3d2c4e Limit sscanf %s fields to prevent possible crash. (#4006)
The crash could happen if the input replay files are corrupted.
2019-07-16 11:46:11 +02:00
Benau
3c252ac4c2 Fix missing loading icons in iOS 2019-07-16 14:03:56 +08:00
Benau
b1ed88476c Use traditional chinese for Hong Kong 2019-07-16 13:51:00 +08:00
Benau
009bac7802 Share more ifdef with android and iOS 2019-07-16 13:48:25 +08:00
Benau
5537959b19 Update hardware stats for iOS 2019-07-16 13:42:16 +08:00
Benau
610d7f1fef Hide server creation buttons in iOS 2019-07-16 13:41:30 +08:00
Benau
1b0bae6954 Add version info for iOS 2019-07-16 10:39:14 +08:00
Benau
3e912900fb Use 16bit depth format (we don't use stencil in default framebuffer) 2019-07-16 01:43:47 +08:00
Benau
48fedb48c7 Add accelerometer and gyroscope to iOS 2019-07-16 01:03:37 +08:00
Benau
05486943b7 Handle quit button in STK menu
App store may not like the quit button
2019-07-16 00:56:38 +08:00
Benau
9a62b97a67 Fix multitouch in iOS 2019-07-16 00:55:25 +08:00
Benau
cf966308f6 Use GLKView to handle framebuffer directly 2019-07-15 14:21:38 +08:00
Benau
5a60cb4cdb Don't assume default framebuffer is always zero (not true in iOS) 2019-07-15 11:40:40 +08:00
MiroslavR
c671ea8f83 Fix pull_from_transifex.sh due to Transifex changes (#4002)
- Use HTTPS and new Transifex domain.
- Skip manual interactive mapping configuration.
2019-07-14 18:52:54 +08:00
Benau
d74bc17c8b Disable iOS hardware keyboard for now 2019-07-14 16:44:42 +08:00
Benau
78ff49ced5 Fix screen scaling of iOS 2019-07-14 16:42:45 +08:00
Benau
1f826b5ba7 Share the simulateMouse with android and iOS 2019-07-14 00:43:38 +08:00
Benau
f9c2e40f13 Create GLES 3 context if not legacy device 2019-07-13 14:28:58 +08:00
Benau
8c00a1e857 Share the override default params with android 2019-07-13 14:22:22 +08:00
Benau
b9d00dba6d Add MobileCursorControl to share with iOS and android STK 2019-07-13 13:56:42 +08:00
Benau
e9a6882bc3 Fix data path discovery in iOS 2019-07-13 13:46:20 +08:00
Benau
8510ebfb27 Add iOSDevice and EAGLManager 2019-07-13 13:44:03 +08:00
Benau
c7308b82b0 Add iOS flags handling in cmake 2019-07-12 14:53:55 +08:00
Deve
b185544518 Tabs to spaces 2019-07-12 08:44:55 +02:00
Deve
9415c61d75 Merge pull request #4000 from mstoeckl/wayland-conn-close
Close program when Wayland connection hangs up
2019-07-12 08:43:06 +02:00
Benau
1c79f046cb Use old progress bar image 2019-07-12 11:55:53 +08:00
Benau
05e7c64e0e Update translations 2019-07-12 11:19:53 +08:00
QwertyChouskie
c34a68896d Fix display of high-res background images 2019-07-11 19:34:52 -07:00
QwertyChouskie
62f5aa8e82 Scrollbar: Improve appearance 2019-07-11 19:34:52 -07:00
QwertyChouskie
a238dc27e5 Scrollbar: Support Advanced Stretching for background and thumb 2019-07-11 19:34:52 -07:00
QwertyChouskie
1bcb41a267 Skins: Use standard XML declaration
Otherwise Thunar thinks they are webpages
2019-07-11 19:34:52 -07:00
QwertyChouskie
f4c02a4237 Scrollbar: Increase size from 14 to 24 2019-07-11 19:34:52 -07:00
Manuel Stoeckl
1686a9e45b Close program when Wayland connection hangs up
This change ensures that SuperTuxKart will not keep running in the
background when the compositor crashes and doesn't close the STK
main window.
2019-07-11 19:36:18 -04:00
myfreeweb
ac99ace874 Fix AngelScript build on FreeBSD non-x86 2019-07-11 12:49:35 +03:00
Benau
963c6de4cd Fix #3991 2019-07-08 11:44:10 +08:00
Benau
6c096bb63b Fix #3989 2019-07-08 10:57:59 +08:00
Benau
6cab3b07c9 Avoid crashing in TrackSector if findOutOfRoadSector failed 2019-07-08 10:18:50 +08:00
Benau
400c1e5347 Fix #3597 2019-07-08 01:45:36 +08:00
Benau
dc8bbfc603 Allow saving kart color to KartStatus 2019-07-08 01:29:11 +08:00
Benau
f79f115b58 Fix country flag in CTF result screen 2019-07-08 01:08:46 +08:00
Benau
5ac5932d3a Allow specifying database waiting timeout 2019-07-08 00:26:11 +08:00
Benau
effe4a401c Update issue template for new version 2019-07-07 10:27:50 +08:00
Benau
57a37d9094 Hide supertuxkart in dock if null device for osx 2019-07-07 01:28:10 +08:00
Benau
3350d6c106 Add server only define to osx device 2019-07-07 01:12:10 +08:00
Benau
9e6e31cfb2 Allow osx app bundle running inside unicode directory 2019-07-06 16:33:55 +08:00
dumaosen
2818a1870e Delete nobest (#3987)
* Delete nobest

* Make supertux locked
2019-07-06 09:58:20 +08:00
Deve
0f415a3745 Disable system screen keyboard for android api <19 2019-07-05 22:39:28 +02:00
Deve
98f7b45a21 Add a possibility to disable system screen keyboard 2019-07-05 22:39:28 +02:00
Benau
5e2f75a078 Fix possible null current screen in overworld 2019-07-06 01:40:05 +08:00
Benau
1bcb16bafb Use utf8 to handling copy and paste in osx 2019-07-06 00:46:03 +08:00
Benau
185b468cb4 Improve azerty handling in osx
TODO: fix "~" typing
2019-07-06 00:31:33 +08:00
Benau
280152479d Skip libpng as it is already installed with freetype 2019-07-05 17:56:46 +08:00
Benau
0de1a41c5a Fix compilation in xcode 2019-07-05 17:22:18 +08:00
Benau
f9af8d3654 Use x86_64 only for libsquish in xcode 2019-07-05 16:39:06 +08:00
Benau
d1e2f87cc2 Use libpng and libjpeg from homebrew 2019-07-05 16:34:40 +08:00
Benau
a3cf8e1e4f Update gitignore for osx 2019-07-05 16:33:24 +08:00
Benau
2fe99efee0 Fix #3982 2019-07-03 07:58:27 +08:00
Benau
6dfc8dd52c Add text shaping rule for variation selector-16 2019-07-01 14:53:44 +08:00
Benau
7c4c7b6f63 Use quicker ways to stop ingame protocol after finishing game 2019-07-01 14:20:24 +08:00
Benau
3573f64ae1 Allow start and terminate protocol directly 2019-07-01 10:49:41 +08:00
Deve
242f1ecfe2 Change to spectator mode after race end in multitouch gui.
Tested only on desktop, but should work on android too.
2019-06-30 23:19:59 +02:00
Benau
c5452cda64 Allow karts with custom engine sfx 2019-07-01 01:50:29 +08:00
Benau
1aca4a9ff5 Fix artifacts in the begining of race by raytracer reflexion 2019-06-30 15:42:22 +08:00
Benau
8fa3c79be7 Clear only data from network to fix #3980 2019-06-30 10:05:56 +08:00
Benau
0253384bf9 Fix valgrind warning 2019-06-30 09:41:32 +08:00
Benau
c710057db1 Allow compling crash reporting with mingw with unicode support 2019-06-29 14:50:33 +08:00
Benau
cc671dd710 Allow showing supertuxkart icon in header bar 2019-06-29 14:38:44 +08:00
Benau
29d1dcd196 Remove console window in non-debug mingw build 2019-06-29 14:08:28 +08:00
Benau
a37b300530 Fix possible crashes in null device 2019-06-29 12:41:56 +08:00
Benau
c321490a8a Handle exception in unicode conversion other than exiting STK immediately 2019-06-29 12:17:43 +08:00
Benau
4f1361b71f Fix encoding for default username 2019-06-29 09:38:36 +08:00
Deve
23c3736bd5 Optimize png files to make apk < 100MB 2019-06-29 00:07:47 +02:00
Deve
4df28023b5 Fixed race results that were drawn too early.
It fixes #3978
2019-06-28 22:18:22 +02:00
Benau
08d686f156 Use already set unicode exe name in separate process 2019-06-29 02:02:28 +08:00
Benau
35c70a16b5 Avoid crashing if color emoji failed to load 2019-06-29 01:38:23 +08:00
Benau
b3200937da Allow getting unicode environment variables in windows 2019-06-29 00:31:30 +08:00
Benau
bc555ac514 Make all ifstream creation utf8 path aware 2019-06-28 23:39:18 +08:00
Benau
cbf55b6ecf Make all ofstream creation utf8 path aware 2019-06-28 22:54:02 +08:00
Benau
12a9237016 Make all rename utf8 path aware 2019-06-28 21:06:27 +08:00
Benau
31caa7e056 Make all fopen utf8 path aware 2019-06-28 21:05:50 +08:00
Benau
ea8896bc17 Add unicode filepath support to replay class 2019-06-28 20:59:44 +08:00
Benau
324d2817f5 Allow starting stk inside unicode filepath 2019-06-28 20:53:46 +08:00
Benau
1cd725586f Add functions to handle file in utf8 encoded name 2019-06-28 20:49:33 +08:00
ghostslayer989
74f227590e Replace xml.dom.minidom.parse which is known to be vulnerable to XML attacks. (#3933)
This code is only run during the development process when updating translations base and the source XML files are trusted data. There doesn't seem to be a downside to the change, however.
2019-06-28 12:36:08 +02:00
Alayan
fb99661d5d Display hours between 1h and 2h too in GPs 2019-06-28 12:25:17 +02:00
Deve
d9941e1be2 Merge pull request #3974 from dumaosen/master
UI fix bundle IX
2019-06-27 21:42:14 +02:00
Benau
12f08c410d Fix non-networked race with AIs country flag handling 2019-06-27 10:21:03 +08:00
dumaosen
5d676387bc Add a spacer under title 2019-06-27 06:32:03 +08:00
dumaosen
deba0b41ef Bigger icons 2019-06-26 22:19:12 +08:00
dumaosen
da84b8598b Smarter space 2019-06-26 22:06:23 +08:00
dumaosen
9ebca51c1a Revert height and width 2019-06-26 22:03:20 +08:00
dumaosen
e9522743f4 Make icons biger 2019-06-26 22:00:11 +08:00
dumaosen
53f6235125 Make widgets center 2019-06-26 21:58:02 +08:00
dumaosen
ad9a8c9c26 Make more space 2019-06-26 21:51:03 +08:00
dumaosen
85e46c06db Make title center 2019-06-26 21:46:53 +08:00
dumaosen
49e4a35b3e Add a space between icons and box 2019-06-26 21:45:31 +08:00
Benau
24c4f4c8de Fix GLES shader 2019-06-26 16:25:13 +08:00
Benau
461310dfba Fix android build 2019-06-26 16:12:22 +08:00
Benau
1620cbdbd8 Add minimum composition text support in IME 2019-06-26 15:44:55 +08:00
Benau
7184119409 Clean up input method code in windows with better unicode handling 2019-06-26 13:14:52 +08:00
Benau
c337976413 Use unicode windows build with enabling directinput support in mingw 2019-06-26 11:32:18 +08:00
samuncle
000fe8cf4e Merge pull request #3804 from supertuxkart/feature/raytracer-reflexion
Enable Space Screen Raytracer for real time reflections
2019-06-25 20:44:21 +02:00
samuncle
dfed11c6a8 Bring back the legacy gloss computation (to disable once a proper fallback is done) 2019-06-25 20:42:29 +02:00
samuncle
26a387ea36 Update the reflection 2019-06-24 23:33:03 +02:00
samuncle
10eb549012 soften the degraded ibl to make preview less dark 2019-06-24 23:33:03 +02:00
samuncle
187623b6a8 Update raytracer reflection to mitigate surface which are too glossy 2019-06-24 23:33:03 +02:00
samuncle
b787c09705 Remove useless code 2019-06-24 23:33:03 +02:00
samuncle
104de39a04 Disable completly space screen reflexion for opengl-es (probably too slow for android 2019-06-24 23:33:03 +02:00
samuncle
3291e23ca6 Reset the shader to fix the minimap 2019-06-24 23:33:03 +02:00
samuncle
674a449c10 Reset the shader to fix the minimap 2019-06-24 23:33:03 +02:00
samuncle
3cbac8e6ea Reset the shader to fix the minimap 2019-06-24 23:33:03 +02:00
samuncle
5633d217a6 Reset the shader to fix the minimap 2019-06-24 23:33:03 +02:00
samuncle
bc49620b23 A few minor changes 2019-06-24 23:33:03 +02:00
samuncle
be577df2ec Update with more probable values 2019-06-24 23:33:03 +02:00
samuncle
476b73375a Experimental raytracer with multisampling (todo: implement this properly) 2019-06-24 23:33:03 +02:00
samuncle
11562a541c Experimental blur test 2019-06-24 23:33:03 +02:00
samuncle
a5e40f9a8a Add color buffer to compute proper space screen reflexion 2019-06-24 23:33:03 +02:00
samuncle
13d121e45d remove dead code 2019-06-24 23:33:03 +02:00
samuncle
cb8f9ecf43 Minor changes 2019-06-24 23:33:03 +02:00
samuncle
025001993d Add space screen reflexion shader 2019-06-24 23:33:03 +02:00
Benau
074039d2c5 Use a better image resize code
The box filter from irrlicht produces wrong brightness when using with
different size
2019-06-23 01:02:05 +08:00
Deve
b8fbc79306 Merge pull request #3968 from ldm0/master
Typo fix
2019-06-22 07:57:51 +02:00
Donough Liu
1ce37e3bea Function name typo fix 2019-06-22 09:51:32 +08:00
Donough Liu
25926b0aec Typo fix 2019-06-22 09:37:24 +08:00
Benau
b58b93ac98 Reserve enough space for each line in profiler
And use drawQuick to avoid text shaping
2019-06-20 16:29:07 +08:00
Benau
13b6a6b25c Fix inherited script font selection 2019-06-20 15:37:53 +08:00
Benau
d0fac726d3 Allow to use emoji ingame 2019-06-20 10:34:47 +08:00
Benau
d6aa111f16 Rename country_flag capability to color_emoji for more usage 2019-06-20 01:33:46 +08:00
Benau
7165449da8 Add emoji keyboard 2019-06-20 01:24:55 +08:00
Benau
1389d55e35 Use last cluster to determine linebreaking so ligatures is handled 2019-06-19 12:49:47 +08:00
Benau
c969e40fbf Update country names for thai 2019-06-19 12:08:50 +08:00
Benau
59ccef98fb Add thai dictionary from ICU for linebreaking 2019-06-19 11:08:41 +08:00
Benau
e344a94946 Allow game protocols self-terminated if world is gone 2019-06-18 00:42:44 +08:00
Benau
0ce185e42c Allow breaking with zero-width space 2019-06-17 16:09:27 +08:00
Benau
d666a350f6 Rewrite message queue with GlyphLayout and fix #3922 2019-06-17 15:48:15 +08:00
Benau
2ff899e23e Fix android server creation exit crash 2019-06-17 11:32:08 +08:00
Benau
7d1afc99fe Fix missing achievements translation 2019-06-17 11:01:04 +08:00
Benau
d44275a1f6 Fix FPS drawing if there it's translated 2019-06-17 10:37:32 +08:00
Deve
5853ffc15d Add a possibility to move the window on wayland compositors that don't support decorations 2019-06-16 22:48:06 +02:00
Deve
4bd94f8ea6 Check hardware keyboard availability on wayland for better touch screen support 2019-06-16 22:48:06 +02:00
Benau
a0e182b142 Fix RTL top text missing 2019-06-17 01:31:51 +08:00
Benau
bb63a85d6f Remove unneeded RTL settings 2019-06-17 01:22:34 +08:00
Benau
8995342b94 Clear cached glyph layouts if too many 2019-06-17 01:12:54 +08:00
Benau
ae3fb4b004 Fix missing server infos if back from live join kart selection 2019-06-17 01:07:28 +08:00
Benau
275dbe3631 Show country flag in soccer if client supports 2019-06-16 15:25:53 +08:00
Benau
970061358b Show country flag in result screen 2019-06-16 14:07:16 +08:00
Benau
6c74d4a287 Show country flag in race gui 2019-06-16 13:56:37 +08:00
Benau
6a05325c75 Show country flag in lobby 2019-06-16 13:34:56 +08:00
Deve
09c0731392 Fixed compilation.
sstream uses _C internally, so it must be included before our #undef _C.
2019-06-15 21:48:28 +02:00
Benau
9f953fab0e Show country flag in server screen 2019-06-16 01:40:31 +08:00
Benau
8df24aedab Add tool in StringUtils to make country flag 2019-06-16 01:40:06 +08:00
Benau
c57a6a3d0d Update translation source 2019-06-16 01:02:10 +08:00
Benau
a7b096ab9b Add translation help for select challenge dialog 2019-06-16 00:58:09 +08:00
Benau
44095088ee Avoid using extreme size in non-artist debug mode if going back from it 2019-06-16 00:47:35 +08:00
dumaosen
4f6e3793b8 fix #3923 && replace fonts size to font size (#3960)
* Replace fonts size into font size

* replace fonts size to font size

* Replace fonts size into font size

* #3923 && replace fonts size to font size

* delete min & max

* add font size spinner in loadedfromfile

* Delete wrap around

* Fix a bug

* Wider range in artist debug mode

* Better word
2019-06-16 00:33:57 +08:00
Benau
fb31ddc81f Fix cursor positioning with emoji in android 2019-06-15 16:26:57 +08:00
Benau
784c6715ad Fix composing text color 2019-06-15 15:00:03 +08:00
Benau
2b33917b91 Remove unneeded RTL handling in widgets and translation 2019-06-15 14:41:23 +08:00
Benau
8d1923acfd Remove unneeded translation.hpp in header files 2019-06-15 14:28:35 +08:00
Benau
20864d3c53 Return a copy of stringw in translation to remove the mutex lock 2019-06-15 14:26:13 +08:00
Benau
9a7210614b Remove fribidize in translation class 2019-06-15 14:11:14 +08:00
Benau
b5e5d44808 Remove no longer needed fribidize 2019-06-15 14:04:55 +08:00
Benau
fc143276fe Allow to use stringw directly when setText 2019-06-15 13:56:36 +08:00
Benau
a56343b7e3 Clean up headers
Remove special RTL handling as it will be done when texting shaping
2019-06-15 13:52:28 +08:00
Benau
caa0554127 Reserve enough space for newline text 2019-06-15 11:09:31 +08:00
Benau
64b8fc4466 Round next line offset to integer to avoid blurring effect 2019-06-15 11:08:11 +08:00
Deve
b892836e94 Fixed credits screen 2019-06-14 21:47:52 +02:00
Benau
64a28f5650 Move check_error after make to check correctly 2019-06-14 22:46:35 +08:00
Benau
70a17007b6 Use separate info in server dialog 2019-06-14 21:57:56 +08:00
Benau
fdf92e108d Improve spacing in track info screen 2019-06-14 20:50:24 +08:00
Benau
c2339dc83b Make too long broken text draw as fit as possible 2019-06-14 20:39:30 +08:00
Benau
2eca3164b8 Improve cursor positioning for RTL text 2019-06-14 19:27:18 +08:00
Benau
69f71e4959 Fix post race info out of border when using big font 2019-06-14 15:33:43 +08:00
Benau
5589003a80 Fix RTL text missing in race result gui
We need to always specify the lower corner to allow auto RTL text
alignment working
2019-06-14 14:14:31 +08:00
Benau
1edb0b152e Use 4 spaces instead of tab for separation 2019-06-14 13:44:43 +08:00
Benau
e969a5a352 Reserve enough space for general textfield dialog for RTL text alignment 2019-06-14 13:26:33 +08:00
Benau
d51f7f4448 Avoid substr exception when using on-screen keyboard 2019-06-14 11:32:47 +08:00
Benau
c3a719cd4b Change some on-screen keyboard characters after FreeSans is removed 2019-06-14 11:03:51 +08:00
Benau
acc05bfcef Only toggleOnScreenKeyboard false if using it 2019-06-14 10:40:54 +08:00
dumaosen
b7dc5dd6f2 New interface of challenge selection (#3957)
* New interface

* New interface

* New interface

* Replace tabs into 4 spaces && fix a bug

* Change the solution

* Fix a bug
2019-06-13 20:49:25 +02:00
Benau
84fa4ecac8 Fix text display with RTL 2019-06-14 01:45:21 +08:00
Deve
ec97bc8316 Always call drawTooltips.
If tooltips list is empty, then it does nothing and at least the list is cleared each frame.

It fixes a crash for #3957
2019-06-13 19:21:31 +02:00
Deve
8c4ace6c17 Call onUpdate before drawing is started.
No idea why it's in render() function, especially that some dialogs are self-destroyed in onUpdate.

It may need some testing if everything is ok.
2019-06-13 19:17:25 +02:00
Deve
c8099cd11d Fixed android compilation 2019-06-12 10:00:17 +02:00
Benau
392d3cfe86 Fix memory read error by moving destruction of dialog to onUpdate 2019-06-12 12:07:58 +08:00
Benau
effc0a27dc Always use thin border for fallback font (emoji)
Which avoids the scaling issue of border
2019-06-12 09:06:54 +08:00
Benau
f07110ed26 Fix #3936 2019-06-12 08:44:39 +08:00
Benau
65a54cbd8b Fix color emoji scaled wrongly with overbright color 2019-06-12 01:18:36 +08:00
Benau
c398ba4484 Fix server only build 2019-06-12 00:34:32 +08:00
Benau
d7cd98f636 Use a smaller ratio to waste less space 2019-06-11 16:30:06 +08:00
Benau
1707ac7e1e Use GlyphLayout to draw list widget 2019-06-11 16:29:35 +08:00
Benau
44796bc8c0 Use a better way to erase top text 2019-06-11 15:05:46 +08:00
Benau
0fdbe5d34f Fix utf16 conversion
Follow the rules in:
https://github.com/brofield/simpleini/blob/master/ConvertUTF.c
2019-06-11 08:29:48 +08:00
Benau
5af761b841 Make xmlEncode/Decode working in windows 2019-06-11 01:07:42 +08:00
Benau
591bd0c3af Use utf16 for java string to stringw conversion 2019-06-10 16:09:07 +08:00
Benau
c0faf69a42 Add utf32 / wchar_t handling in network string 2019-06-10 15:31:49 +08:00
Benau
c5f3f3aecf Update android build script for new libraries 2019-06-10 13:54:10 +08:00
Benau
28cc2838a8 Add color emoji 2019-06-10 10:35:42 +08:00
Benau
89e3bcd11b Update stk edit box to be more i18n friendly 2019-06-10 00:43:31 +08:00
Benau
acb9054dcb Use libraqm for text layout 2019-06-09 11:26:00 +08:00
Benau
43d322c634 Add libraries for emoji and complex text 2019-06-09 10:06:50 +08:00
dumaosen
6cc75a106b UI fix bundle VII (#3949)
* Smarter size

* Better size

* Smarter row size

* Smarter size

* Fix #3792

* Bigger title && use 4 spaces

* Fix #3792

* Better credits

* Smarter size

* Less lines to preserve space

* Smarter icon size

* Better size

* Completely fix #3792

Using buttonbar in every line can avoid scaling problems

* Completely fix #3792

* Completely fix #3792

* Add space under the screen

* Make space smaller

* Smarter ratingbar size

* Better size

* More reasonable size for powerup texts

* Better spacer under the screen

* Sparter space under buttons

* Smarter space under buttons

* Smarter space

* Smaeter space under icons

* Smarter space under buttons

* Smarter space

* Smarter space under butons

* Smarter space

* Smarter space under buttons

* Smarter space

* Smarter space under buttons

* Smarter space

* Smarter stars size

* Fix an extra line

* change buttonbar back into ribbon

* dont declare the width of the buttons

It may cause some characters partly showed or hidden in some lang
2019-06-08 22:01:54 +02:00
Deve
08c61bfb91 Disable changing font size during race 2019-06-05 23:31:24 +02:00
Deve
4c4b6eda3a Merge branch 'gradlew' 2019-06-05 23:02:44 +02:00
Deve
7f42b84432 Allow to modify multitouch settings during the race 2019-06-05 22:59:47 +02:00
Benau
75be2b16c9 Update translation with thai font 2019-06-05 10:18:29 +08:00
Reiner Herrmann
07b6a16000 Fix several spelling/grammar errors (#3951)
found by lintian
2019-06-04 19:04:18 -04:00
Deve
c5d681dcc7 Remove ant support 2019-06-04 22:28:24 +02:00
Deve
7129e36901 Use gradle wrapper to avoid compilation errors on some systems 2019-06-04 22:23:07 +02:00
Benau
a429410340 Update fonts to allow use the minimum size
Remove too incomplete translation to load less, and it should be
possible to load CJK font in /system/fonts on android to reduce
apk size
2019-05-31 19:12:35 +08:00
Benau
867cecc01e Refactor FaceTTF for later better usage 2019-05-30 10:34:47 +08:00
dumaosen
dd9d5c89e1 Use icons in general_text_field (#3944)
* Use icons in general_text_field

* Use icons for general_text_field

* Add </buttonbar>

* Use 4 spaces
2019-05-29 01:14:01 +08:00
Benau
d487a2e72e Clear text when closing keyboard if onEnterPressed returns true 2019-05-28 15:21:06 +08:00
Benau
391b61be95 Fix highlighting of composing text in the middle of sentence 2019-05-28 14:24:45 +08:00
Benau
240546ac00 Fix waiting message for big font size 2019-05-28 11:37:50 +08:00
Benau
4413c06a82 Allow login with next button in native android keyboard 2019-05-28 09:52:20 +08:00
Benau
1d3dfc3110 Only do android callback for soft keyboard 2019-05-28 01:55:10 +08:00
Benau
6216d003b6 Code clean up 2019-05-28 01:47:41 +08:00
Benau
677d984267 Fix navigation with hacker keyboard arrows 2019-05-28 01:43:42 +08:00
Benau
2744a24951 Don't set input type if it's the same as old one
It breaks Gboard word correction if you change cursor in screen
2019-05-28 00:53:53 +08:00
Benau
1d5e80c131 Add cap sentences for chat
Can be disabled in per keyboard setting in system configuration
2019-05-28 00:43:08 +08:00
Benau
e3ce7d0a19 Use email keyboard if possible 2019-05-27 21:11:35 +08:00
Benau
336300b997 Allow showing different soft keyboard in android 2019-05-27 16:34:16 +08:00
Benau
420c51955e Handle action next with STK properly 2019-05-27 15:51:36 +08:00
Benau
e24f95eefa Make sure STKEdit focus is gone when not needed 2019-05-27 14:25:08 +08:00
Benau
72c61e412a Fix compiler warnings 2019-05-27 13:13:51 +08:00
Benau
d3ef05b37c Remove unused functions 2019-05-27 12:41:28 +08:00
Benau
f61241f745 Add onTextUpdated for android soft keyboard input 2019-05-27 12:32:23 +08:00
Benau
a96071f9d3 Make android callback thread safe 2019-05-27 12:17:08 +08:00
Benau
febad27342 Prevent copying text to non focused widget in STK.
It can happen if user uses the arrows in hacker keyboard to change
widget focus
2019-05-27 11:09:28 +08:00
Benau
9b94437cac Make it possible to show missing texture file name 2019-05-27 08:44:57 +08:00
Benau
678d3cdf81 Fix Gboard selection 2019-05-27 00:39:00 +08:00
Benau
baa2feab14 Use utf32 for conversion 2019-05-26 01:18:51 +08:00
David CARLIER
a4f962ce57 Silent build warning, exception as ref. instead (#3940) 2019-05-26 00:36:54 +08:00
Benau
34e680bfbd Allow copying from STK edit box to android edit text 2019-05-25 22:19:15 +08:00
Benau
e1a7901c4c Add callback before hiding the soft keyboard 2019-05-25 13:34:36 +08:00
Benau
e6d5346e5e Allow copying java EditText to STK editbox 2019-05-25 00:40:37 +08:00
Benau
27f0f8c961 Move hideNavBar to java for native android keyboard 2019-05-21 16:31:59 +08:00
Benau
1814472214 Improve screen keyboard handling for android (tv)
And remove some android ifdef for wayland on screen keyboard later
2019-05-21 12:43:20 +08:00
Deve
f14d8fd921 Update android builder script 2019-05-20 22:30:49 +02:00
Deve
21f148bea2 Update gradle plugin version to avoid error in release build.
Now it needs gradle >= 4.4
2019-05-20 22:30:17 +02:00
Benau
d5246e5291 Move the screen and touchscreen events horizontally for screen keyboard 2019-05-21 01:46:14 +08:00
dumaosen
18dc77c8f9 UI fix bundle VI (#3926)
* Fix skill bars bug in local multiplayer

* Fix skill bars bug in local multiplayer

* Smaller height

* Better multiplayer spinner
2019-05-19 22:42:46 +02:00
Benau
766c971339 Try to save keyboard height for moving screen with it later 2019-05-19 17:41:51 +08:00
Benau
ede56a3cf8 Move show and hide keyboard to java memeber function 2019-05-18 15:35:25 +08:00
Benau
0e1c0d1541 Allow handling ACTION_MULTIPLE for unicode and voice message 2019-05-18 09:15:58 +08:00
dumaosen
2d3ae6aefc UI fix bundle V (#3921)
* Use font height

* Smarter space

* Smarter space

* Better space to avoid bad looking ui

* Smarter space

* Use font height

* Better height

* Better skill bar look

* Better skill bars look
2019-05-17 21:42:45 +02:00
Deve
ec485bae4c Add font size to options 2019-05-16 22:16:36 +02:00
dumaosen
86a0d06f99 IV for better row size (#3920)
* Smaller rows

* Bigger row

* Smaller row
2019-05-16 21:21:56 +02:00
Deve
80be3a936a Some gui fixes 2019-05-15 22:54:39 +02:00
Deve
10a580ebd3 Give slightly more space for options in tracks screen 2019-05-15 22:37:56 +02:00
Deve
5b133c21c9 Make hiscores list scrollable 2019-05-15 22:27:29 +02:00
dumaosen
dff77dd808 GenIII for scaling issues fix (#3917)
* Use foont height

* Use font height

* Bigger size

* Use font height

* Use font height

* Use font height

* Use font height

* Better height

* Use font height

* Use font height

* Bigger size
2019-05-15 12:13:50 +02:00
Benau
6bd92e41a6 Update translations 2019-05-15 16:34:29 +08:00
Benau
30ab026101 Update translation string 2019-05-14 15:21:28 +08:00
Benau
206a3d8aec Add server location to dialog 2019-05-14 15:16:21 +08:00
Benau
b9f82ebdf0 Rename network user dialog to network player dialog 2019-05-14 14:44:58 +08:00
Benau
8ccf57f100 Merge pull request #3916 from chewi/system-squish
CMake: Add option to use system Squish library
2019-05-14 10:08:12 +08:00
Benau
b79151c760 Enable live join only when no game protocols 2019-05-14 09:05:46 +08:00
Benau
45cafe9984 Replace tab with 4 spaces 2019-05-14 08:34:36 +08:00
James Le Cuirot
e1601b1ae0 CMake: Add option to use system Squish library
The system version was preferred before but it wasn't possible to
explicitly disable it, making its use automagic, which is bad for
packaging.
2019-05-13 22:52:33 +01:00
Deve
e972c7d40f Draw user button over logo to avoid hover conflict 2019-05-13 23:48:11 +02:00
Deve
4883e4a585 Use floating point value for font scale 2019-05-13 23:46:28 +02:00
dumaosen
da4ac0a976 A better solution for those scaling issues in high or creepy resolutions gen II (#3910)
* Fix scaling issues

* Fonts size adjustion support

* Add fonts size support && Fix scaling issue

* Use fonts height

* Fix scaling issues

* Add my name onto CREDITS

* Fix scaling issues

* Fix scaling issues

* Use space instead of tab

* Use space instead of tab

* Fix bad scale

* Use font height
2019-05-13 23:39:43 +02:00
Benau
86bc8bd877 Add country code info to submit ranking 2019-05-14 01:04:20 +08:00
Benau
07e490c038 Make sure protocol only started once 2019-05-14 00:25:01 +08:00
Benau
8027df6373 Fix possible enet packet leaking 2019-05-14 00:07:40 +08:00
Benau
7ee774118b Move validation checking to sendPacketToAllPeersWith 2019-05-13 15:41:15 +08:00
Benau
bb65ba927e Always discard unknown synchronous message instead of keeping it
Synchronous message can only be EVENT_TYPE_MESSAGE anyway
2019-05-13 14:02:04 +08:00
Benau
fff6c1d51f Add success status to player who reports 2019-05-13 13:25:43 +08:00
Benau
5b6b38346c Clean up protocol manager 2019-05-13 12:02:21 +08:00
Benau
0912758d0e Get a copied list of protocols to prevent long time locking 2019-05-12 15:43:11 +08:00
Benau
b0695b08a5 Use mono time for event arrival time 2019-05-12 14:33:48 +08:00
Benau
d7bffa4ade Check again for max players if it's pending connection
Should fix #3874
2019-05-12 13:39:16 +08:00
Benau
4fe2fc5f58 Add last session player info if sqlite supports window functions 2019-05-12 13:04:43 +08:00
Benau
21322fdf9e Allow showing full country info in views 2019-05-11 10:16:38 +08:00
Benau
d47cdac279 Fix server only build 2019-05-11 08:27:24 +08:00
Benau
b3bbe934d4 Sort full stats with connected_time
So newest connection come first in sql viewer
2019-05-11 07:53:38 +08:00
Benau
480ce07ae0 Show player location if available from server 2019-05-11 01:47:45 +08:00
Benau
1b5c0fbabe Add localized country name handling 2019-05-11 01:11:48 +08:00
Benau
b2ad140a78 Add tools to generate localized country name 2019-05-11 01:06:48 +08:00
Benau
81dafa44d2 Use sqlite3_busy_handler to allow writing lock waiting 2019-05-10 20:14:36 +08:00
Benau
b10b2948c3 Fix copy and paste typo 2019-05-10 16:49:38 +08:00
Benau
f54af02b45 Use sqlite3_open_v2 with SQLITE_OPEN_SHAREDCACHE 2019-05-10 16:16:09 +08:00
Benau
66c34c7443 Always call sqlite3_finalize to avoid deadlock 2019-05-10 15:35:02 +08:00
Benau
21a23dc9e6 Add optional ip geolocation table support 2019-05-10 11:35:04 +08:00
Benau
005418d611 Use sqlite3_bind_text to allow special characters in text 2019-05-10 09:30:02 +08:00
Benau
ef9b80e5af Add server uid to player reports table 2019-05-10 01:31:38 +08:00
Benau
44618c2a52 Rename to country code for a better name 2019-05-10 00:43:21 +08:00
Benau
a569d1f823 Clear expired player reports if necessary 2019-05-09 16:23:07 +08:00
Benau
bf3466d4d1 Write report info to table 2019-05-09 15:45:02 +08:00
Benau
65e53f19e5 Add framework for reporting player 2019-05-09 14:36:47 +08:00
Benau
fce5827c7d Allow using empty ban table name to disable its functionality 2019-05-09 13:09:50 +08:00
Benau
c90d32e35d Add easySQLQuery for simple sql query 2019-05-09 12:29:29 +08:00
Benau
c38278fbc1 Add report_player network capabilities 2019-05-09 11:22:19 +08:00
Benau
bb3566ac81 Add report player function in dialog 2019-05-09 10:04:19 +08:00
Benau
e97e84f194 Fix #3907 2019-05-08 14:19:49 +08:00
Benau
7113c4bcec Fix typo 2019-05-08 13:04:12 +08:00
Benau
a2b951d769 Add per minute database cleanup 2019-05-08 12:51:50 +08:00
Benau
569042afa4 Fix powerup zipper fire missing in remote karts 2019-05-07 16:17:28 +08:00
auria.mg
e0d7e58bda Add credit for donator who wishes to be listed in the credits 2019-05-06 19:43:38 -04:00
Alayan
83d5c07046 Cleaner sorting code for 3SB kart rank 2019-05-06 20:56:19 +02:00
Benau
6f8d0892a2 Fix sign of time with mono clock 2019-05-06 16:41:29 +08:00
Benau
ebf95ee958 Use monotonic clock to avoid system time changes 2019-05-06 15:17:19 +08:00
Benau
2bfa7dd5f8 Add first and last played time to player stats view 2019-05-06 14:45:11 +08:00
Benau
ab9e8b7dcf Add some useful default view from stats table 2019-05-06 12:52:29 +08:00
Benau
f34e0e9dc0 Hide rewind queue warnings if not connection debug 2019-05-06 12:26:11 +08:00
Benau
9e06fe9b6f Add current query to error log message 2019-05-06 01:16:27 +08:00
Benau
932b17a7e5 Don't show verbose player info in log if database management 2019-05-06 00:52:11 +08:00
Benau
f6e8ff2936 Add server stats table and writing handling 2019-05-06 00:46:29 +08:00
Benau
f397064850 Remove old ban list 2019-05-06 00:20:30 +08:00
Benau
bcc3aef4c8 Add sqlite3 for ip / online id ban table 2019-05-06 00:19:58 +08:00
Benau
7d19ccaad8 Make controller events conditional wait to avoid being stalled 2019-05-05 15:46:59 +08:00
Alayan
fb7c82786a Simplify selection of the most appropriate set of egg in egg hunts 2019-05-05 00:15:07 +02:00
Alayan
f27a51f680 Fix #3904 (less harsh finish times in networked races, because of auto-end) 2019-05-04 22:30:31 +02:00
Alayan
78b07e5c54 Simplify number of AI in teams computations 2019-05-04 21:24:38 +02:00
Alayan
4e1d91bcaf Fix #3459 2019-05-04 19:27:22 +02:00
Alayan
bc17caa3d0 Add special text for nitro challenges 2019-05-04 18:44:29 +02:00
Alayan
fbb0f48101 Replace lap number indicator by challenge type indicator 2019-05-04 18:24:31 +02:00
Mario
bbfc4dce82 Clear separation between information for readers/players and contributors (#3860) 2019-05-04 16:39:53 +02:00
Benau
a9d9d1a121 Ignore player finished result screen event during reset 2019-05-04 15:08:54 +08:00
Benau
626309d027 Move resetServer to async thread to avoid mutex locking 2019-05-04 00:52:21 +08:00
Alayan
141f870ad8 Fix #3899 2019-05-03 00:04:05 +02:00
Alayan
d6c0847b66 Remove some useless code 2019-05-02 23:53:52 +02:00
Benau
0d72de7094 Merge pull request #3891 from devnexen/register_kw_obsolete
register keyword removal
2019-05-01 17:54:59 +08:00
David Carlier
3b699034f9 register keyword removal 2019-04-30 21:20:08 +01:00
Alayan
5206f22a9c Remove useless code from the overworld UI 2019-04-29 23:40:30 +02:00
Alayan
e60cf7fcc3 Fix #3856 2019-04-29 21:52:24 +02:00
Alayan-stk-2
b4a3214c46 Improve the english for some networking log messages 2019-04-29 21:32:18 +02:00
Benau
d88522768e Add basic checking to prevent fake ranked servers 2019-04-29 16:22:56 +08:00
Alayan
03b7ca4ae4 Fix #3883 2019-04-28 03:37:03 +02:00
Alayan
82d6d220d4 Replace hardcoded ticks value by time2ticks calls 2019-04-28 03:32:09 +02:00
Deve
a742d17fd1 Fixed build with gradle 4.4 2019-04-26 00:11:49 +02:00
Benau
1f32066248 Update CHANGELOG.md 2019-04-20 14:11:09 +08:00
Daniel Butum
647c4bad6c Fix #3842 by always using https links (#3854) 2019-04-19 19:31:26 +02:00
hiker
74dbf55da3 Updated donors. 2019-04-19 17:06:56 +10:00
4046 changed files with 1067038 additions and 504132 deletions

View File

@@ -1,58 +0,0 @@
environment:
DEPS_DIR: c:\\projects\dependencies
DEPS_BRANCH: master
ASSETS_DIR: c:\\projects\stk-assets
APPVEYOR_CACHE_ENTRY_ZIP_ARGS: -t7z -m0=lzma2 -mx=9
os: Visual Studio 2015
clone_depth: 1
shallow_clone: true
platform:
# - x86
- x64
configuration:
- Debug
- Release
matrix:
fast_finish: true
#cache:
# - '%DEPS_DIR%'
#- '%ASSETS_DIR%'
install:
- ps: >-
If(!(Test-Path "$env:DEPS_DIR")) {
Write-Host "Downloading dependencies";
Start-Process -FilePath "git" -ArgumentList "clone --branch $env:DEPS_BRANCH --single-branch --depth 1 https://github.com/supertuxkart/dependencies.git $env:DEPS_DIR" -Wait;
}
Else {
Write-Host "Updating dependencies";
Start-Process -FilePath "git" -ArgumentList "fetch --depth 1" -WorkingDirectory "$env:DEPS_DIR" -Wait;
}
Get-ChildItem $env:DEPS_DIR | Measure-Object -property length -sum
#- ps: >-
#If(!(Test-Path "$env:ASSETS_DIR")) {
# Write-Host "Downloading assets";
# Start-Process -FilePath "svn" -ArgumentList "checkout https://svn.code.sf.net/p/supertuxkart/code/stk-assets $env:ASSETS_DIR" -Wait;
#}
#Else {
# Write-Host "Updating assets";
# Start-Process -FilePath "svn" -ArgumentList "update" -WorkingDirectory "$env:ASSETS_DIR" -Wait;
#}
#Get-ChildItem $env:ASSETS_DIR | Measure-Object -property length -sum
before_build:
- ps: Copy-Item "${env:DEPS_DIR}\windows_64bit\dependencies" c:\projects\stk-code\dependencies-64bit Recurse
- cmd: |
md build
cd build
if "%platform%"=="x64" set CMAKE_GENERATOR_NAME="Visual Studio 14 2015 Win64"
cmake -G %CMAKE_GENERATOR_NAME% -DCMAKE_BUILD_TYPE="%configuration%" .. -DCHECK_ASSETS=OFF
build:
parallel: true
project: build\ALL_BUILD.vcxproj

View File

@@ -14,7 +14,7 @@ For any suggestions, please address them on the forum: https://forum.freegamedev
## Configuration
<!-- PLease specify the version of STK you are using. The version can be found in the "About" screen. -->
<!-- Please specify the version of STK you are using. The version can be found in the "About" screen. -->
STK release version:
<!-- Please specify where you downloaded STK -->
@@ -31,10 +31,9 @@ Gamepads/keyboards models if related to the issue:
## Additional information
<!--
Please provide stdout.log, it is located in:
* %appdata%\supertuxkart\0.8.2 (Windows)
* ~/Library/Application Support/supertuxkart/0.8.2 (mac)
* $XDG_CONFIG_HOME/supertuxkart/0.8.2 or ~/.config/supertuxkart/0.8.2 (Linux and other unix based systems)
Note that in the Git/beta version the folder is 0.10-git rather than 0.8.2.
* %appdata%\supertuxkart\config-0.10 (Windows)
* ~/Library/Application Support/supertuxkart/config-0.10 (mac)
* $XDG_CONFIG_HOME/supertuxkart/config-0.10 or ~/.config/supertuxkart/config-0.10 (Linux and other unix based systems)
-->
stdout.log:
```

11
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,11 @@
## Agreement
```
By creating a pull request in stk-code, you hereby agree to dual-license your contribution as
GNU General Public License version 3 or any later version and
Mozilla Public License version 2 or any later version.
This includes your previous contribution(s) under the same name of contributor.
Keep the above statement in the pull request comment for agreement.
```

165
.github/workflows/apple.yml vendored Normal file
View File

@@ -0,0 +1,165 @@
name: apple
on:
push:
branches:
- master
tags:
- '*'
pull_request: {}
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: true
matrix:
platform: [iPhoneOS, MacOSX]
arch: [arm64, x86_64]
exclude:
- platform: iPhoneOS
arch: x86_64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: true
- id: sysroot
uses: ASzc/change-string-case-action@v1
with:
string: ${{ matrix.platform }}
- name: Download cctools
run: |
cd /opt
wget https://github.com/supertuxkart/dependencies/releases/download/preview/cctools.tar.xz
tar xf cctools.tar.xz
- name: Restore timestamps
run: |
wget https://github.com/MestreLion/git-tools/archive/refs/heads/main.zip
unzip main.zip
python git-tools-main/git-restore-mtime
- name: List build cache restore keys
run: |
# Look for the last 9 build caches (GitHub supports max 10 including current one)
for number in 1 2 3 4 5 6 7 8 9
do
id=$((${{ github.run_number }} - number))
echo "cache_$number=apple-${{ github.ref }}-${{ matrix.arch }}-${{ matrix.platform }}-$id" >> $GITHUB_ENV
done
- name: Handle build cache
uses: actions/cache@v2
with:
path: |
build
key: apple-${{ github.ref }}-${{ matrix.arch }}-${{ matrix.platform }}-${{ github.run_number }}
restore-keys: |
${{ env.cache_1 }}
${{ env.cache_2 }}
${{ env.cache_3 }}
${{ env.cache_4 }}
${{ env.cache_5 }}
${{ env.cache_6 }}
${{ env.cache_7 }}
${{ env.cache_8 }}
${{ env.cache_9 }}
- name: Download dependencies
run: |
wget https://github.com/supertuxkart/dependencies/releases/download/preview/dependencies-${{ steps.sysroot.outputs.lowercase }}.tar.xz
tar xf dependencies-${{ steps.sysroot.outputs.lowercase }}.tar.xz
- name: Configure clang runtime name
run: |
if [ ${{ matrix.platform }} = "MacOSX" ]; then
echo "rt=osx" >> $GITHUB_ENV
elif [ ${{ matrix.platform }} = "iPhoneOS" ]; then
echo "rt=ios" >> $GITHUB_ENV
elif [ ${{ matrix.platform }} = "AppleTVOS" ]; then
echo "rt=tvos" >> $GITHUB_ENV
elif [ ${{ matrix.platform }} = "iPhoneSimulator" ]; then
echo "rt=iossim" >> $GITHUB_ENV
elif [ ${{ matrix.platform }} = "AppleTVSimulator" ]; then
echo "rt=tvossim" >> $GITHUB_ENV
fi
- name: Configure bulid
run: |
mkdir -p build
cd build
cmake .. -DCCTOOLS_PREFIX=/opt/cctools -DCCTOOLS_ARCH=${{ matrix.arch }} -DCCTOOLS_PLATFORM=${{ matrix.platform }} \
-DRT=/opt/cctools/darwin/libclang_rt.${{ env.rt }}.a -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-cctools.cmake -DCHECK_ASSETS=OFF
- name: Build
run: |
cd build
make -j4
mv bin ../${{ steps.sysroot.outputs.lowercase }}-${{ matrix.arch }}
- name: Upload binaries
uses: actions/upload-artifact@v2
with:
name: ${{ steps.sysroot.outputs.lowercase }}-${{ matrix.arch }}
path: ${{ steps.sysroot.outputs.lowercase }}-${{ matrix.arch }}
packaging:
name: Packaging STK
needs: build
runs-on: macos-latest
steps:
- name: Configure packaging name for git master branch
if: ${{ github.ref == 'refs/heads/master' }}
run: |
echo "release_tag=git`date +%Y%m%d`" >> $GITHUB_ENV
echo "release_name=preview" >> $GITHUB_ENV
- name: Configure packaging name for tag
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: |
echo "release_tag=`basename $GITHUB_REF`" >> $GITHUB_ENV
echo "release_name=`basename $GITHUB_REF`" >> $GITHUB_ENV
- name: Configure packaging name for non-releasing branch
if: ${{ (github.ref != 'refs/heads/master' && !startsWith(github.ref, 'refs/tags/')) || github.repository_owner != 'supertuxkart' }}
run: |
echo "release_tag=" >> $GITHUB_ENV
echo "release_name=" >> $GITHUB_ENV
- name: Check for prerelease
if: ${{ github.ref == 'refs/heads/master' || contains(github.ref, 'rc') || contains(github.ref, 'beta') }}
run: |
echo "release_pre=true" >> $GITHUB_ENV
- name: Check for non-prerelease
if: ${{ github.ref != 'refs/heads/master' && !contains(github.ref, 'rc') && !contains(github.ref, 'beta') }}
run: |
echo "release_pre=false" >> $GITHUB_ENV
- name: Show packaging name
run : |
echo "${{ env.release_tag }}"
echo "${{ env.release_name }}"
echo "${{ env.release_pre }}"
- name: Download binaries
uses: actions/download-artifact@v2
- name: Run dylibbundler and archive
if: ${{ env.release_tag != '' }}
run: |
wget https://github.com/supertuxkart/dependencies/releases/download/preview/dependencies-macosx.tar.xz
tar xf dependencies-macosx.tar.xz
HOMEBREW_NO_AUTO_UPDATE=1 brew install dylibbundler
lipo -create ./macosx-x86_64/supertuxkart.app/Contents/MacOS/supertuxkart ./macosx-arm64/supertuxkart.app/Contents/MacOS/supertuxkart -output ./macosx-arm64/supertuxkart.app/Contents/MacOS/supertuxkart
chmod 755 ./macosx-arm64/supertuxkart.app/Contents/MacOS/supertuxkart
dylibbundler -od -b -x ./macosx-arm64/supertuxkart.app/Contents/MacOS/supertuxkart -d ./macosx-arm64/supertuxkart.app/Contents/libs/ -p @executable_path/../libs/ -s dependencies-macosx/lib
# We use SDL_Vulkan_LoadLibrary for 10.9 compatibility, so otool -L supertuxkart has no libMoltenVK.dylib
cp ./dependencies-macosx/lib/libMoltenVK.dylib ./macosx-arm64/supertuxkart.app/Contents/libs/
cd ./macosx-arm64/supertuxkart.app/Contents/Resources/data
wget https://github.com/supertuxkart/stk-assets-mobile/releases/download/git/stk-assets-full.zip
unzip stk-assets-full.zip
rm stk-assets-full.zip
cd ../../../../..
mv ./macosx-arm64/supertuxkart.app SuperTuxKart.app
# Use Ad Hoc certificate for now, use Apple developer certificate after STK is on App Store later
codesign --force -s - SuperTuxKart.app/Contents/libs/*.dylib
codesign --force --deep -s - SuperTuxKart.app
zip -r SuperTuxKart-${{ env.release_tag }}-mac.zip SuperTuxKart.app
- name: Create release
if: ${{ env.release_tag != '' }}
uses: ncipollo/release-action@v1.8.8
with:
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: "SuperTuxKart*.zip"
tag: ${{ env.release_name }}
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
allowUpdates: true
prerelease: ${{ env.release_pre }}

169
.github/workflows/linux.yml vendored Normal file
View File

@@ -0,0 +1,169 @@
# Copyright (C) 2020-2021 Jacob Burroughs <maths22@gmail.com>
# 2020-2021 A. Semphris <semphris@protonmail.com>
#
# Released under the Creative Commons Zero (CC0) license, available at:
# Legal code: https://creativecommons.org/publicdomain/zero/1.0/legalcode
# Information: https://creativecommons.org/share-your-work/public-domain/cc0/
# Note: Parts of this code were taken from the SuperTux project.
# ~ Semphris (responsible for transfering and adapting the file)
name: linux
on:
push:
branches:
- master
tags:
- '*'
pull_request: {}
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest]
compiler: [gcc, clang]
build_type: [Debug, Release]
server_only: [ON, OFF]
exclude:
- os: macos-latest
compiler: gcc
- os: macos-latest
build_type: Debug
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
submodules: true
- name: Configure packaging name for git master branch
if: ${{ matrix.build_type == 'Release' && matrix.server_only == 'OFF' &&
github.ref == 'refs/heads/master' }}
run: |
echo "release_tag=git`date +%Y%m%d`" >> $GITHUB_ENV
echo "release_name=preview" >> $GITHUB_ENV
- name: Configure packaging name for tag
if: ${{ matrix.build_type == 'Release' && matrix.server_only == 'OFF' &&
startsWith(github.ref, 'refs/tags/') }}
run: |
echo "release_tag=`basename $GITHUB_REF`" >> $GITHUB_ENV
echo "release_name=`basename $GITHUB_REF`" >> $GITHUB_ENV
- name: Configure packaging name for non-releasing branch
if: ${{ matrix.build_type != 'Release' || matrix.server_only != 'OFF' ||
!(github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) ||
github.repository_owner != 'supertuxkart' }}
run: |
echo "release_tag=" >> $GITHUB_ENV
echo "release_name=" >> $GITHUB_ENV
- name: Check for prerelease
if: ${{ github.ref == 'refs/heads/master' || contains(github.ref, 'rc') || contains(github.ref, 'beta') }}
run: |
echo "release_pre=true" >> $GITHUB_ENV
- name: Check for non-prerelease
if: ${{ github.ref != 'refs/heads/master' && !contains(github.ref, 'rc') && !contains(github.ref, 'beta') }}
run: |
echo "release_pre=false" >> $GITHUB_ENV
- name: Show packaging name
run : |
echo "${{ env.release_tag }}"
echo "${{ env.release_name }}"
echo "${{ env.release_pre }}"
- name: Install linux dependencies
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
sudo apt-get update
sudo apt install -y build-essential cmake libbluetooth-dev libcurl4-gnutls-dev \
libfreetype6-dev libharfbuzz-dev libjpeg-dev libogg-dev libopenal-dev \
libpng-dev libsdl2-dev libvorbis-dev pkg-config zlib1g-dev clang
- name: Install dylibbundler for packaging osx binary
if: ${{ env.release_tag != '' && matrix.os == 'macos-latest' && matrix.build_type == 'Release' && matrix.server_only == 'OFF' }}
run: |
HOMEBREW_NO_AUTO_UPDATE=1 brew install dylibbundler
- name: Install macos dependencies
if: ${{ matrix.os == 'macos-latest' }}
run: |
# Something funky happens with freetype if mono is left
sudo mv /Library/Frameworks/Mono.framework /Library/Frameworks/Mono.framework-disabled
wget https://github.com/supertuxkart/dependencies/releases/download/preview/dependencies-mac.tar.xz
# Remove any existing installation to avoid conflict with bundled dependencies
rm -rf /usr/local/include/*
rm -rf /usr/local/opt/openssl@1.1/include
rm -rf /usr/local/opt/freetype
rm -rf /usr/local/opt/harfbuzz
tar xf dependencies-mac.tar.xz -C /usr/local
rm dependencies-mac.tar.xz
- name: Set compiler (gcc)
if: ${{ matrix.os == 'ubuntu-latest' && matrix.compiler == 'gcc' }}
run: |
echo "CXX=g++" >> $GITHUB_ENV
echo "CC=gcc" >> $GITHUB_ENV
- name: Set compiler (clang)
if: ${{ matrix.os == 'ubuntu-latest' && matrix.compiler == 'clang' }}
run: |
echo "CXX=clang++" >> $GITHUB_ENV
echo "CC=clang" >> $GITHUB_ENV
- name: Set compiler (macos)
if: ${{ matrix.os == 'macos-latest' }}
run: |
# This ensures for now we use clang11
# Clang12 runs into a bunch of fun with `include location '/usr/local/include' is unsafe for cross-compilation`
# that we don't care about for now
echo "CXX=clang++" >> $GITHUB_ENV
echo "CC=clang" >> $GITHUB_ENV
- name: Configure bulid (linux)
if: ${{ matrix.os != 'macos-latest' }}
env:
BUILD_TYPE: ${{ matrix.build_type }}
SERVER_ONLY: ${{ matrix.server_only }}
run: |
cmake --version
$CXX --version
mkdir "build"
cd "build"
cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSERVER_ONLY=$SERVER_ONLY -DCHECK_ASSETS=off -DBUILD_RECORDER=off;
- name: Configure bulid (macos)
if: ${{ matrix.os == 'macos-latest' }}
env:
BUILD_TYPE: ${{ matrix.build_type }}
SERVER_ONLY: ${{ matrix.server_only }}
run: |
cmake --version
$CXX --version
mkdir "build"
cd "build"
CFLAGS="-mmacosx-version-min=10.9" CXXFLAGS="-mmacosx-version-min=10.9" LINKFLAGS="-mmacosx-version-min=10.9" LDFLAGS="-mmacosx-version-min=10.9" /usr/local/opt/cmake/bin/cmake .. -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSERVER_ONLY=$SERVER_ONLY -DCHECK_ASSETS=off -DBUILD_RECORDER=off;
- name: Build and install
working-directory: build
run: |
make -j3 VERBOSE=1
make install DESTDIR="/tmp/stk" VERBOSE=1
- name: Packaging (macos)
if: ${{ env.release_tag != '' && matrix.os == 'macos-latest' && matrix.build_type == 'Release' && matrix.server_only == 'OFF' }}
working-directory: build
run: |
/usr/local/opt/dylibbundler/bin/dylibbundler -od -b -x ./bin/SuperTuxKart.app/Contents/MacOS/supertuxkart -d ./bin/SuperTuxKart.app/Contents/libs/ -p @executable_path/../libs/
wget https://github.com/supertuxkart/stk-assets-mobile/releases/download/git/stk-assets-full.zip
unzip stk-assets-full.zip -d ../data
rm stk-assets-full.zip
cd bin
# Fix the name on case insensitive filesystem
mv supertuxkart.app stk.app
mv stk.app SuperTuxKart.app
zip -r ../SuperTuxKart-${{ env.release_tag }}-mac.zip .
- name: Create Release (macos)
if: ${{ env.release_tag != '' && matrix.os == 'macos-latest' && matrix.build_type == 'Release' && matrix.server_only == 'OFF' }}
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: "build/SuperTuxKart-${{ env.release_tag }}-mac.zip"
tag: ${{ env.release_name }}
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
allowUpdates: true
prerelease: ${{ env.release_pre }}

113
.github/workflows/switch.yml vendored Normal file
View File

@@ -0,0 +1,113 @@
name: switch
on:
push:
branches:
- master
- feature/gh-actions-switch-cache
tags:
- '*'
pull_request: {}
workflow_dispatch:
jobs:
build_switch:
name: Build Switch
runs-on: ubuntu-latest
container:
image: 'devkitpro/devkita64'
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
# We need 0 so we get all commits for mtime!
fetch-depth: 0
path: "./stk-code"
- name: Grab assets
run: |
wget -q https://github.com/supertuxkart/stk-assets-mobile/releases/download/git/stk-assets-full.zip
unzip -q stk-assets-full.zip -d stk-assets
rm stk-assets-full.zip
- name: Restore modified date
run: |
cd stk-code
git restore-mtime .
cd ..
# Env setup!
- name: Configure packaging name for git master branch
if: ${{ github.ref == 'refs/heads/master' }}
run: |
echo "release_tag=git`date +%Y%m%d`" >> $GITHUB_ENV
echo "release_name=preview" >> $GITHUB_ENV
- name: Configure packaging name for tag
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: |
echo "release_tag=`basename $GITHUB_REF`" >> $GITHUB_ENV
echo "release_name=`basename $GITHUB_REF`" >> $GITHUB_ENV
- name: Configure packaging name for non-releasing branch
if: ${{ (github.ref != 'refs/heads/master' && !startsWith(github.ref, 'refs/tags/')) || github.repository_owner != 'supertuxkart' }}
run: |
echo "release_tag=" >> $GITHUB_ENV
echo "release_name=" >> $GITHUB_ENV
- name: Check for prerelease
if: ${{ github.ref == 'refs/heads/master' || contains(github.ref, 'rc') || contains(github.ref, 'beta') }}
run: |
echo "release_pre=true" >> $GITHUB_ENV
- name: Check for non-prerelease
if: ${{ github.ref != 'refs/heads/master' && !contains(github.ref, 'rc') && !contains(github.ref, 'beta') }}
run: |
echo "release_pre=false" >> $GITHUB_ENV
- name: Show packaging name
run : |
echo "${{ env.release_tag }}"
echo "${{ env.release_name }}"
echo "${{ env.release_pre }}"
- name: List build cache restore keys
shell : bash
run: |
# Look for the last 9 build caches (GitHub supports max 10 including current one)
for number in 1 2 3 4 5 6 7 8 9
do
id=$((${{ github.run_number }} - number))
echo "cache_$number=switch-${{ github.ref }}-$id" >> $GITHUB_ENV
done
- name: Handle build cache
uses: actions/cache@v2
with:
# This is unnecessarily verbose and might break, but again ! seems broken
# See: https://github.com/Mstrodl/stk-code/runs/2333673736?check_suite_focus=true#step:16:34
path: |
stk-code/cmake_build/CMakeFiles
stk-code/cmake_build/Makefile
stk-code/cmake_build/lib
stk-code/cmake_build/bin/supertuxkart
stk-code/cmake_build/*.cmake
stk-code/cmake_build/*.txt
# Make sure PRs can't overwrite!
key: switch-${{ github.ref }}-${{ github.run_number }}
restore-keys: |
${{ env.cache_1 }}
${{ env.cache_2 }}
${{ env.cache_3 }}
${{ env.cache_4 }}
${{ env.cache_5 }}
${{ env.cache_6 }}
${{ env.cache_7 }}
${{ env.cache_8 }}
${{ env.cache_9 }}
- name: Run build script
run: |
cd stk-code/switch
PROJECT_VERSION="${{ env.release_tag }}" ./make.sh
- name: Create release
uses: ncipollo/release-action@v1.8.8
if: ${{ env.release_tag != '' }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: "stk-code/cmake_build/bin/SuperTuxKart-${{ env.release_tag }}-switch.zip"
tag: ${{ env.release_name }}
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
allowUpdates: true
prerelease: ${{ env.release_pre }}

298
.github/workflows/windows.yml vendored Normal file
View File

@@ -0,0 +1,298 @@
name: windows
on:
push:
branches:
- master
tags:
- '*'
pull_request: {}
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: true
matrix:
arch: [i686, x86_64, armv7, aarch64]
os: [windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: false
- name: Set up environment for windows-latest
shell : bash
if: ${{ matrix.os == 'windows-latest' }}
run: |
echo "wget=C:\msys64\usr\bin\wget.exe" >> $GITHUB_ENV
echo "unzip=unzip" >> $GITHUB_ENV
if [ ${{ matrix.arch }} = "i686" ]; then
echo "cmake_arch=Win32" >> $GITHUB_ENV
elif [ ${{ matrix.arch }} = "x86_64" ]; then
echo "cmake_arch=x64" >> $GITHUB_ENV
elif [ ${{ matrix.arch }} = "armv7" ]; then
echo "cmake_arch=ARM" >> $GITHUB_ENV
else
echo "cmake_arch=ARM64" >> $GITHUB_ENV
fi
- name: Set up environment for ubuntu-latest
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
echo "wget=wget" >> $GITHUB_ENV
echo "unzip=unzip" >> $GITHUB_ENV
- name: Restore timestamps
run: |
${{ env.wget }} https://github.com/MestreLion/git-tools/archive/refs/heads/main.zip
${{ env.unzip }} main.zip
python git-tools-main/git-restore-mtime
- name: List build cache restore keys
shell : bash
run: |
# Look for the last 9 build caches (GitHub supports max 10 including current one)
for number in 1 2 3 4 5 6 7 8 9
do
id=$((${{ github.run_number }} - number))
echo "cache_$number=windows-${{ github.ref }}-${{ matrix.arch }}-${{ matrix.os }}-$id" >> $GITHUB_ENV
done
- name: Handle build cache
uses: actions/cache@v2
with:
path: |
build
key: windows-${{ github.ref }}-${{ matrix.arch }}-${{ matrix.os }}-${{ github.run_number }}
restore-keys: |
${{ env.cache_1 }}
${{ env.cache_2 }}
${{ env.cache_3 }}
${{ env.cache_4 }}
${{ env.cache_5 }}
${{ env.cache_6 }}
${{ env.cache_7 }}
${{ env.cache_8 }}
${{ env.cache_9 }}
- name: Download dependencies
run: |
${{ env.wget }} https://github.com/supertuxkart/dependencies/releases/download/preview/dependencies-win-${{ matrix.arch }}.zip
${{ env.unzip }} dependencies-win-${{ matrix.arch }}.zip
- name: Install MinGW for i686 or x86_64
if: ${{ matrix.os == 'ubuntu-latest' && ( matrix.arch == 'i686' || matrix.arch == 'x86_64' ) }}
run: |
cd /
sudo mkdir -p /data/mxe/usr
cd /data/mxe/usr
# It's compiled from https://github.com/mxe/mxe
sudo wget https://github.com/supertuxkart/dependencies/releases/download/preview/mxe_static_mingw.zip
sudo unzip mxe_static_mingw.zip
sudo rm mxe_static_mingw.zip
- name: Install MinGW for armv7 or aarch64
if: ${{ matrix.os == 'ubuntu-latest' && ( matrix.arch == 'armv7' || matrix.arch == 'aarch64' ) }}
run: |
cd /
sudo wget https://github.com/mstorsjo/llvm-mingw/releases/download/20210423/llvm-mingw-20210423-msvcrt-ubuntu-18.04-x86_64.tar.xz
sudo tar xf llvm-mingw-20210423-msvcrt-ubuntu-18.04-x86_64.tar.xz
sudo mv llvm-mingw-20210423-msvcrt-ubuntu-18.04-x86_64 llvm-mingw
- name: Set up MinGW Toolchain for i686
if: ${{ matrix.os == 'ubuntu-latest' && matrix.arch == 'i686' }}
run: |
echo "SET(CMAKE_SYSTEM_NAME Windows)" > toolchain.cmake
echo "SET(CMAKE_C_COMPILER /data/mxe/usr/bin/i686-w64-mingw32.static.posix.dw2-gcc)" >> toolchain.cmake
echo "SET(CMAKE_CXX_COMPILER /data/mxe/usr/bin/i686-w64-mingw32.static.posix.dw2-g++)" >> toolchain.cmake
echo "SET(CMAKE_RC_COMPILER /data/mxe/usr/bin/i686-w64-mingw32.static.posix.dw2-windres)" >> toolchain.cmake
echo "SET(CMAKE_FIND_ROOT_PATH \${PROJECT_SOURCE_DIR}/dependencies-win-i686 /data/mxe/usr/i686-w64-mingw32.static.posix.dw2/ /data/mxe/usr/lib/gcc/i686-w64-mingw32.static.posix.dw2/5.5.0/)" >> toolchain.cmake
echo "set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> toolchain.cmake
echo "set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ALWAYS)" >> toolchain.cmake
echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> toolchain.cmake
- name: Set up MinGW Toolchain for x86_64
if: ${{ matrix.os == 'ubuntu-latest' && matrix.arch == 'x86_64' }}
run: |
echo "SET(CMAKE_SYSTEM_NAME Windows)" > toolchain.cmake
echo "SET(CMAKE_C_COMPILER /data/mxe/usr/bin/x86_64-w64-mingw32.static.posix.seh-gcc)" >> toolchain.cmake
echo "SET(CMAKE_CXX_COMPILER /data/mxe/usr/bin/x86_64-w64-mingw32.static.posix.seh-g++)" >> toolchain.cmake
echo "SET(CMAKE_RC_COMPILER /data/mxe/usr/bin/x86_64-w64-mingw32.static.posix.seh-windres)" >> toolchain.cmake
echo "SET(CMAKE_FIND_ROOT_PATH \${PROJECT_SOURCE_DIR}/dependencies-win-x86_64 /data/mxe/usr/x86_64-w64-mingw32.static.posix.seh/ /data/mxe/usr/lib/gcc/x86_64-w64-mingw32.static.posix.seh/5.5.0/)" >> toolchain.cmake
echo "set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> toolchain.cmake
echo "set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ALWAYS)" >> toolchain.cmake
echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> toolchain.cmake
# Manually specify CMAKE_SYSTEM_PROCESSOR, it can only be set together with -DDCMAKE_SYSTEM_NAME
- name: Configure bulid for MSVC
if: ${{ matrix.os == 'windows-latest' }}
run: |
mkdir -Force build
cd build
cmake .. -G "Visual Studio 17 2022" -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} -A ${{ env.cmake_arch }} -DCHECK_ASSETS=OFF
- name: Configure bulid for MinGW (i686 or x86_64)
if: ${{ matrix.os == 'ubuntu-latest' && matrix.arch != 'armv7' && matrix.arch != 'aarch64' }}
run: |
mkdir -p build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCHECK_ASSETS=OFF -DUSE_DIRECTX=ON
- name: Configure bulid for MinGW (armv7 or aarch64)
if: ${{ matrix.os == 'ubuntu-latest' && ( matrix.arch == 'armv7' || matrix.arch == 'aarch64' ) }}
run: |
mkdir -p build
cd build
cmake .. -DLLVM_ARCH=${{ matrix.arch }} -DLLVM_PREFIX=/llvm-mingw -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-llvm-mingw.cmake -DCHECK_ASSETS=OFF -DUSE_DIRECTX=ON
- name: Build for MSVC
if: ${{ matrix.os == 'windows-latest' }}
working-directory: build
run: |
cmake --build . --config Debug
- name: Build for MinGW
if: ${{ matrix.os == 'ubuntu-latest' }}
working-directory: build
run: |
make -j4
cd ..
mv COPYING tools
- name: Upload binaries of MinGW
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.arch }}
path: build/bin/*
- name: Upload stk-code/data
# We only need to upload stk-code/data once
if: ${{ matrix.os == 'ubuntu-latest' && matrix.arch == 'i686'}}
uses: actions/upload-artifact@v2
with:
name: data
path: data
- name: Upload stk-code/tools
# We only need to upload stk-code/tools once
if: ${{ matrix.os == 'ubuntu-latest' && matrix.arch == 'i686'}}
uses: actions/upload-artifact@v2
with:
name: tools
path: tools
- name: Remove built binaries for less cache size
shell : bash
run: |
rm -rf build/Debug
rm -rf build/bin
packaging:
name: Packaging STK
needs: build
runs-on: windows-latest
steps:
- name: Configure packaging name for git master branch
shell : bash
if: ${{ github.ref == 'refs/heads/master' }}
run: |
echo "release_tag=git`date +%Y%m%d`" >> $GITHUB_ENV
echo "release_name=preview" >> $GITHUB_ENV
- name: Configure packaging name for tag
shell : bash
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: |
echo "release_tag=`basename $GITHUB_REF`" >> $GITHUB_ENV
echo "release_name=`basename $GITHUB_REF`" >> $GITHUB_ENV
- name: Configure packaging name for non-releasing branch
shell : bash
if: ${{ (github.ref != 'refs/heads/master' && !startsWith(github.ref, 'refs/tags/')) || github.repository_owner != 'supertuxkart' }}
run: |
echo "release_tag=" >> $GITHUB_ENV
echo "release_name=" >> $GITHUB_ENV
- name: Check for prerelease
shell : bash
if: ${{ github.ref == 'refs/heads/master' || contains(github.ref, 'rc') || contains(github.ref, 'beta') }}
run: |
echo "release_pre=true" >> $GITHUB_ENV
- name: Check for non-prerelease
shell : bash
if: ${{ github.ref != 'refs/heads/master' && !contains(github.ref, 'rc') && !contains(github.ref, 'beta') }}
run: |
echo "release_pre=false" >> $GITHUB_ENV
- name: Show packaging name
shell : bash
run : |
echo "${{ env.release_tag }}"
echo "${{ env.release_name }}"
echo "${{ env.release_pre }}"
- name: Download MinGW binaries and data
uses: actions/download-artifact@v2
- name: Generate .pdb files
if: ${{ env.release_tag != '' }}
run: |
C:\msys64\usr\bin\wget.exe https://github.com/rainers/cv2pdb/releases/download/v0.50/cv2pdb-0.50.zip
unzip cv2pdb-0.50.zip
cd i686
..\cv2pdb.exe supertuxkart.exe
cd ..
cd x86_64
..\cv2pdb.exe supertuxkart.exe
- name: Downloading stk-assets
if: ${{ env.release_tag != '' }}
run: |
C:\msys64\usr\bin\wget.exe https://github.com/supertuxkart/stk-assets-mobile/releases/download/git/stk-assets-full.zip
mkdir stk-assets
cd stk-assets
unzip ..\stk-assets-full.zip
- name: Move folders
shell : bash
if: ${{ env.release_tag != '' }}
run: |
mkdir SuperTuxKart-${{ env.release_tag }}-win
mv stk-assets SuperTuxKart-${{ env.release_tag }}-win
mkdir SuperTuxKart-${{ env.release_tag }}-win/stk-code
mv data SuperTuxKart-${{ env.release_tag }}-win/stk-code
mv tools/run_game.bat SuperTuxKart-${{ env.release_tag }}-win
mkdir SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-i686
mkdir SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-x86_64
mkdir SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-armv7
mkdir SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-aarch64
mv i686 SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-i686/bin
mv x86_64 SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-x86_64/bin
mv armv7 SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-armv7/bin
mv aarch64 SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-aarch64/bin
# libwinpthread-1.dll is useless because we statically link
rm -f SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-armv7/bin/libwinpthread-1.dll
rm -f SuperTuxKart-${{ env.release_tag }}-win/stk-code/build-aarch64/bin/libwinpthread-1.dll
- name: Start packaging STK
if: ${{ env.release_tag != '' }}
run: |
Compress-Archive -LiteralPath SuperTuxKart-${{ env.release_tag }}-win -DestinationPath SuperTuxKart-${{ env.release_tag }}-win.zip
- name: Configure NSIS script
shell : bash
if: ${{ env.release_tag != '' && startsWith(github.ref, 'refs/tags/') }}
run: |
mv tools SuperTuxKart-${{ env.release_tag }}-win/stk-code
cd SuperTuxKart-${{ env.release_tag }}-win/stk-code/tools/windows_installer
for arch in i686 x86_64 aarch64
do
cp supertuxkart-github-actions.nsi $arch.nsi
sed -i "s/define APPNAMEANDVERSION \"\"/define APPNAMEANDVERSION \"SuperTuxKart ${{ env.release_tag }}\"/g" $arch.nsi
sed -i "s/define ARCH \"\"/define ARCH \"$arch\"/g" $arch.nsi
sed -i "s/define VERSION \"\"/define VERSION \"${{ env.release_tag }}\"/g" $arch.nsi
sed -i "s/OutFile \"\"/OutFile \"SuperTuxKart-${{ env.release_tag }}-installer-$arch.exe\"/g" $arch.nsi
for filename in $(ls ../../build-$arch/bin)
do
file="\\\\$filename"
sed -i "288a\ DELETE /REBOOTOK \"\$INSTDIR$file\"" $arch.nsi
done
# Print result
#cat $arch.nsi
done
mv ../COPYING ../..
- name: Run makensis.exe
if: ${{ env.release_tag != '' && startsWith(github.ref, 'refs/tags/') }}
run: |
cd SuperTuxKart-${{ env.release_tag }}-win\stk-code\tools\windows_installer
C:\msys64\usr\bin\wget.exe https://nsis.sourceforge.io/mediawiki/images/6/6c/Shelllink.zip
unzip Shelllink.zip
Move-Item Unicode\Plugins\ShellLink.dll .
& "C:\Program Files (x86)\NSIS\makensis.exe" i686.nsi
& "C:\Program Files (x86)\NSIS\makensis.exe" x86_64.nsi
& "C:\Program Files (x86)\NSIS\makensis.exe" aarch64.nsi
- name: Create release
uses: ncipollo/release-action@v1.8.8
if: ${{ env.release_tag != '' }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: "SuperTuxKart-*.zip, SuperTuxKart-${{ env.release_tag }}-win/stk-code/tools/windows_installer/*.exe"
tag: ${{ env.release_name }}
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
allowUpdates: true
prerelease: ${{ env.release_pre }}

19
.gitignore vendored
View File

@@ -1,10 +1,16 @@
bld*/
build*/
cmake_build*/
xcode_build*/
dependencies*/
CMakeFiles/
stk-editor/
.vscode/
tags.*
# clangd
.cache/
compile_commands.json
.config/
supertuxkart-64
@@ -58,10 +64,14 @@ android/android-sdk*
android/assets
android/bin
android/build
android/deps-*
android/libs
android/obj
android/res
android/.gradle
android/.cxx
android/src/main/java/HID*
android/src/main/java/SDL*
android-*
*.apk
*.keystore
@@ -71,5 +81,14 @@ lib/freetype
lib/ifaddrs
lib/libogg
lib/libvorbis
lib/libpng
lib/libjpeg
lib/zlib
lib/openal
lib/openssl
lib/harfbuzz
lib/sdl2
lib/mbedtls
lib/astc-encoder
.DS_Store

View File

@@ -1,56 +0,0 @@
# Travis-CI configuration file for SuperTuxKart
#
# Configuration manual:
# http://docs.travis-ci.com/user/build-configuration/
#
sudo: false
language: cpp
os:
- linux
- osx
compiler:
- gcc
- clang
matrix:
fast_finish: true
env:
matrix:
- BUILD_TYPE="Debug" SERVER_ONLY="OFF"
- BUILD_TYPE="Debug" SERVER_ONLY="ON"
- BUILD_TYPE="Release" SERVER_ONLY="OFF"
- BUILD_TYPE="Release" SERVER_ONLY="ON"
addons:
apt:
packages:
- build-essential
- cmake
- libbluetooth-dev
- libcurl4-gnutls-dev
- libfreetype6-dev
- libfribidi-dev
- libgl1-mesa-dev
- libjpeg-dev
- libogg-dev
- libopenal-dev
- libpng-dev
- libvorbis-dev
- libxrandr-dev
- mesa-common-dev
- pkg-config
- zlib1g-dev
before_script:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew bundle; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sudo mkdir -p /usr/local/include/; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sudo ln -s /System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/ /usr/local/include/GL; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export CMAKE_PREFIX_PATH=/usr/local/opt/freetype/:/usr/local/opt/curl/:/usr/local/opt/libogg/:/usr/local/opt/libogg/:/usr/local/opt/libvorbis/:/usr/local/opt/openssl\@1.1/:/usr/local/opt/glew/:/usr/local/opt/fribidi/; fi
script:
- mkdir "build"
- cd "build"
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then /usr/local/opt/cmake/bin/cmake .. -DFREETYPE_INCLUDE_DIRS=/usr/local/opt/freetype/include/freetype2/ -DUSE_SYSTEM_GLEW=1 -DOPENAL_INCLUDE_DIR=/usr/local/opt/openal-soft/include/ -DOPENAL_LIBRARY=/usr/local/opt/openal-soft/lib/libopenal.dylib -DFREETYPE_LIBRARY=/usr/local/opt/freetype/lib/libfreetype.dylib -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSERVER_ONLY=$SERVER_ONLY -DCHECK_ASSETS=off -DBUILD_RECORDER=off; fi
- if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSERVER_ONLY=$SERVER_ONLY -DCHECK_ASSETS=off -DBUILD_RECORDER=off; fi
- make VERBOSE=1 -j3

View File

@@ -4,6 +4,6 @@ brew "libvorbis"
brew "openal-soft"
brew "freetype"
brew "curl"
brew "nettle"
brew "fribidi"
brew "glew"
brew "harfbuzz"
brew "libjpeg"
brew "sdl2"

View File

@@ -3,9 +3,212 @@ This file documents notable changes to SuperTuxKart across versions since its in
It should be kept in mind that some versions have a less complete changelog than others, and that this changelog do not list the details of the many small bugfixes and improvements which together make a significant part of the progress between releases.
For similar reasons, and because some features are vastly more complex than others, attributions of main changes should not be taken as a shorcut for overall contribution.
For similar reasons, and because some features are vastly more complex than others, attributions of main changes should not be taken as a shortcut for overall contribution.
## SuperTuxKart 0.10.0 (19. April 2019)
## SuperTuxKart 1.3 (28. September 2021)
### Networking
* Server bookmarks, by Benau
### Graphics
* Introduce render resolution scaling for the modern renderer, by QwertyChouskie and Deve. For users with limited GPU power, this allows to get significant performance (FPS) gains at the cost of image quality. It can also allow additional graphics effects at the same performance. This is especially useful for users with high-resolution and high-DPI screens. The scaling only affects the 3D scene, the UI remains crisp at full-resolution.
* Simplification through removal of unused deprecated graphical effects, by Samuncle
* Many updates to texture-related code, by Benau
* Auto-compute Level of Detail distances for 3D models set to use LOD depending on track complexity, by Samuncle. The geometry level parameter allows partial control over the drawing distances.
* Improved screen space reflection, by QwertyChouskie
### General
* Switch port, by Mary
* Gamepad force feedback support, by Mary
* Highscore screen, by RQWorldblender
* Grand Prix highscores, by mrkubax10
* Updates to the bundled tinygettext library, by Benau
* Enable custom skidding sounds for karts, by Benau
* Greatly sped up loading of tracks with many checklines through optimization, by heuchi
* And many bugfixes and enhancements too small or specific to be detailed
### User Interface
* Display the skin-appropriate iconset without having to restart, by Benau
* Fix some issues with the options menu when used during a pause, by Benau
* Add a confirmation dialog before closing the game through the "go back" key/button, by Benau
* In the result screen, display the race position with a number with 10 karts or more, by mrkubax10
* In the result screen, display the challenge result and the requirements met or failed, by CodingJellyFish
* Many small menu and dialogs improvements, by RQWorldblender and others
* Usability and functionality improvements to the debug menu, by RQWorldblender
* Clickable URLs in text, by Benau
#### In-race UI
* Add visual and sound feedback when a timed challenge or timed game is about to end, by mrkubax10 and Alayan
### Mobile
* Fix a precision issue that caused artefacted shadows, by icecream95 and Benau
#### iOS
* Use MojoAL instead of OpenAL, which iOS currently has issues with, by Benau
### Tracks and modeling
* Alien Signal, by Samuncle
* Ancient Colosseum Labyrinth, by Typhon306
* Improved Las Dunas Soccer, by Benau
* Add lap line extensions to Hacienda, Old Mine, Ravenbridge Mansion and Shifting Sands, by Benau
* New Pepper kart, by McRavenINDo
* Improved Adiumy, Emule, GNU and Sara karts, by McRavenINDo
## SuperTuxKart 1.2 (27. August 2020)
### Networking
* Add support for IPv6 LAN servers, by Benau
* Auto-detect client IPv4 and IPv6 support, by Benau
* Improved server creation speed and performance, by Benau
* Allow to use any addon karts online, on servers with live join enabled, by Benau. The kart has Tux's hitbox.
* Prevent undefined behaviour on battle/soccer servers with an excessive player limit, by Benau
* Use an improved rating formula for ranked play, by Alayan
### General
* Use SDL2 for window creation, allowing better gamepad support, by Benau
* Replace Fribidi by SheeBidi for RTL support, and remove the dependency to libraqm, by Benau
* Add support for in-race messages in scripting, by CodedOre
* Improved tutorial with free-flow racing (no more text interrupts), by CodedOre
* Haiku support, by AlwaysLivid
* Make the game's window resizable in-game, by Benau
* Download addon icons on-demand to speed-up the addons list loading, by Benau
* Allow theming of icons, by QwertyChouskie
* Many many bugfixes and enhancements
### Mobile
* Many minor bugfixes and compatibility enhancements
#### Android
* Use the android app bundle, allowing all tracks to be included, by Benau
* Use the native progress indicator during game data extraction, by Benau
* Add a launch splash screen, by Benau
#### iOS
* Allow server creation in-game by using only one process for client and server, by Benau
### User Interface
* Introduce element padding for skins, by QwertyChouskie
* New Cartoon skin, by LCP (art) and QwertyChouskie (code)
* Allow to rename control configurations, by GuillaumeBft
* Unthrottled keyboard navigations in menus, by Benau
* Show mobile players as such in server lobbies, using an emoji icon, by riso
* Always show the race end times in ms, by Fouks
* SVG icons support, by riso
* New tips for soccer mode
#### In-race UI
* Introduce camera settings in the options screen, by luffah
* More spectator cameras in online spectating, by luffah
* Add a minimap indicator for basketballs, by Alayan
* Add team chat for team games, by Benau
* Show the kart orientation on the soccer minimap, by riso
* Show a message once a goal is made in soccer, by riso
### Tracks and modeling
#### Karts
* New version of Kiki, by Typhon306 and McRavenINDo
* Improved karts, by Crystal
* Pidgin, Puffy
* Improved beastie animation, by D_ft Kid
## SuperTuxKart 1.1 (4. January 2020)
### Networking
* Add support for IPv6 clients and servers, by Benau
* Add AI support to local networking servers, by Benau. This AI is not as strong as the normal AI due to networking lag, but should offer enough challenge for a majority of players.
* Add support for AI bots for the server host, by Benau
* Improved handling of collisions, by Benau
* Improved support for playing addons on servers, by Benau
* Support using an IPV4 domain name to connect to a server, by Benau
* Add packet loss data to the server databases, by Benau
* New management features for server hosts, by Benau
* IP / online ID ban tables
* Server statistics
* Make the auto-end finish time more lenient, so it doesn't tank ranking score because of another player, by Alayan
* Add a player reporting function, by Benau
* Fix a bug that allowed to exceed a server's player limit if two players connected at the same time, by Benau
* Add lobby commands, by Benau
### Race gameplay and physics
* Random spawn point in local battle mode, by Aleman778
* Add an option to show everyone's items with the left characters icons, by Fouks
* Allow to choose the number of AI per team in soccer, by risostk
* In CTF mode, fix a bug that prevented scoring a point when the team's flag was in its immunity state, by Alayan
* Fix a bug that could result in the finish time being shown as 0:00:00, by Alayan
* Fix a bug that made AIs, in multiplayer and low difficulty, rubber-band towards the wrong player, by Alayan. Each player now correctly has its AIs, helping a weaker player to not be condemned to the last position.
### General
* Screen space reflection graphical effect, by samuncle
* Support unicode file paths, by Benau
* Complex text layout support, by Benau
* Add emoji support, by Benau
* Avoid "this program is not responding" warnings in Windows and Mac, by Benau
* Add a Story Mode timer, by Alayan
* Make text billboards size consistent accross resolutions, by Benau
* Don't trigger road sounds when the kart is flying, by Benau
* Remove an incorrect function call that could significantly hurt performance for Mac, by Benau
* Fix a nasty bug that made several sound effects to be played at a low volume after a crash, by Alayan
* Some code clean-up, by Alayan
* Addon skin support and skin-specified font by Benau
* Structure for allowing icon themes by Benau
* Add support for custom per-kart engine sounds, by Benau
* Fix an incorrect outdated driver warning for recent AMD cards on Windows, by Alayan
* Scripting enhancements, by deveee
* Add a continue button to cutscenes (mostly useful for touchscreen devices), by deveee
* Request the use of the performance GPU on Optimus systems, by deveee
* Fixed plural forms for translations in several languages, by deveee
* Close STK if Wayland crashes, by mstoeckl
* Support nested directories for addons, by Benau
* Scripting preprocessing for STK version, by Benau
* Updated Wiiuse library to 0.15.5
* Various tweaks and bugfixes, including crash fixes
### Mobile
* Add a screen allowing to download official assets that can't be included in the release package because of size limits, by Benau
* The tutorial text is now tailored for touchscreen usage, instead of the main keyboard text, by Benau
* Enhanced acceleration handle, by Benau
* Allow changing the touchscreen controller type in race paused dialog, by deveee
* Allow for optional auto-acceleration, by deveee
#### Android
* Various bugfixes by deveee, dos1
* Screen keyboard handling improvements, by deveee and Benau
* Allow copying text from the edit box, by Benau
* STK for Android now targets the version 29 of the API (Android 10.0), up from 26 (Android 8.0)
#### iOS
* Add iOS support, by Benau
* The Android code has been widely put to use for iOS
* Several changes or fixes to ensure proper behavior (input, screen-scaling, and more)
### User Interface
* Show tips for players when loading and after race ends, by dumaosen
* Better scaling of many many UI elements to large resolutions, by dumaosen and others
* Show country flags for servers and players in online multiplayer, by Benau
* Add a new option to change font size on the fly, by Benau and deveee
* Add icons for the available options in the race result screens, by dumaosen
* Make the highscore list scrollable, by deveee
* Display all the relevant info in the challenge dialog in Story Mode, by Alayan
* New challenge selection interface, by dumaosen
* Show the number of ranking points won or lost after a ranked race, by Benau
* Separate blurring visual effects from the main graphics presets, by Alayan
* Fix incorrect text resizing in the help menu, by Benau
* Make the custom random GP option more prominent in the track selection screen, by dumaosen
* Improvements to the scrollbars, by QwertyChouskie
* Allow sorting lists with the keyboard, by Benau
* Allow tooltip drawing outside of menus, by deveee
* Prevent some font scaling blur caused by non-integer offsets, by Benau
* Add a (configurable) limit to chat message frequency, by GuillaumeBft and Benau
* Allow to explicitly set the flip direction of tabs, by dumaosen
* Allow to download addons from the server lobby interface, by Benau
* Allow to filter installed and non-installed addons in the addons screen, by Alayan
* Many minor tweaks and bugfixes
#### In-race UI
* Scale down the lap time indicator next to the kart icons when there are many karts, by riso
* Limit how long chat and in-race messages can be, by Benau and Alayan
* Add an option to disable in-race messages only, by Alayan
### Tracks and modeling
#### Tracks
* A handful of minor graphical fixes and enhancements
* Fixed checklines that could be missed too easily in XR591 and the Old Mine.
#### Arenas
* Pumpkin Park, by samuncle
## SuperTuxKart 1.0 (20. April 2019)
### Networking
* Networking support for normal race, time trial, free for all, capture the flag and soccer by Benau and hiker :
* Access to a global server list, possibility to also create a LAN server
@@ -42,7 +245,7 @@ For similar reasons, and because some features are vastly more complex than othe
* Improvements to ghost replays (more data saved, live time difference, replay comparison, egg hunt replays) by Alayan
* Kart color customization by Benau
* Multithreading contention fixes by Benau
* Local multiplayer improvements by Fantasmos
* Local multiplayer improvements by Ben Krajancic
* Major revamp of the achievement system to make adding new achievements much easier and flexible, also fixing some related bugs by Alayan
* Store up to 5 highscores for a track/difficulty/mode/kart number combination, instead of 3
* Smooth turning for non-keyboard inputs for improved consistency between input mode by deveee
@@ -63,7 +266,6 @@ For similar reasons, and because some features are vastly more complex than othe
### User Interface
* New networking user interface by Benau and hiker
* Race UI improvements (new speedometer, nitro gauge, bigger minimap, minimap display options, more legible text with outlines and for some bigger font) by Alayan
* New coal skin by Alayan
* Support for collapsing widgets in UI by Mrxx99
* Multidirectional keyboard navigation in menus by Alayan
@@ -75,19 +277,26 @@ For similar reasons, and because some features are vastly more complex than othe
* Control configurations can be disabled without being deleted by Alayan
* Other significant enhancements (detailed progress of multi-goal achievements, reset password button, clearer checkbox status, milliseconds displayed in time-trials and egg hunts, nitro efficiency in the kart selection screen, better track info screen, better warnings when trying to do an online action with internet access disabled, hour support for GP time, default resolutions can't be used in fullscreen if unsupported by the monitor...)
* Many bugfixes and small enhancements mostly by deveee and Alayan
#### In-race UI
* New speedometer and nitro gauge, by Alayan
* Bigger minimap and new display options, by Alayan
* More legible text with outlines and for some bigger font, by Alayan
### Tracks and modeling
#### Tracks
* Black Forest by Sven Andreas Belting, replacing Green Valley
* Ravenbridge Mansion by samuncle, replacing Black Hill Mansion
* Las Dunas Soccer by samuncle
* Candela City arena by Benau based on samuncle's track
* Black Forest by Sven Andreas Belting (replacing Green Valley)
* Ravenbridge Mansion by samuncle (replacing Black Hill Mansion)
* Unwanted shortcuts and exploits found by several players and fixed mostly by Auria in many tracks :
* Antediluvian Abyss, Around the Lighthouse, Fort Magma, Grand Paradisio Island, Hacienda, Minigolf, Nessie's Pond, Northern Resort, The Old Mine, Oliver's Math Class, Shifting Sands, STK Enterprise, XR591
* Smoothness issues causing collisions and kart slowdown fixed by Auria :
* Nessie's Pond, Old Mine, Shifting Sands, Volcano Island, XR591
* Item (boxes, nitro, bananas) positions improvement by Alayan and theThomasPat :
* Around the Lighthouse, Black Forest, Candela City, Hacienda, Minigolf, Northern Resort, Oliver's Math Class, STK Enterprise, The Old Mine, Volcano Island, Zen Garden
#### Arenas
* Las Dunas Soccer, by samuncle
* Candela City arena by Benau, based on samuncle's track
#### Karts
* New version of Beastie by Jymis
* New version of Kiki by Benau
@@ -383,7 +592,7 @@ Too many to list them all. Main points:
* Improved AI
* New GUI handling, including resolution switching GUI
* Improved input handling
* Jump and look-back featue
* Jump and look-back feature
* Additional music and main theme
### Tracks and modeling
#### Karts

View File

@@ -2,7 +2,8 @@ cmake_minimum_required(VERSION 2.8.4)
# root CMakeLists for the SuperTuxKart project
project(SuperTuxKart)
set(PROJECT_VERSION "git")
set(PROJECT_VERSION "1.4-rc1")
add_definitions( -DSUPERTUXKART_VERSION="${PROJECT_VERSION}" )
if(NOT (CMAKE_MAJOR_VERSION VERSION_LESS 3))
@@ -18,34 +19,78 @@ if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "STKRelease")
endif()
CMAKE_DEPENDENT_OPTION(USE_SWITCH "Build targeting switch" OFF "NOT NINTENDO_SWITCH" ON)
if(WIN32)
option(USE_DIRECTX "Build DirectX 9 driver (requires DirectX SDK)" OFF)
endif()
option(SERVER_ONLY "Create a server only (i.e. no graphics or sound)" OFF)
option(CHECK_ASSETS "Check if assets are installed in ../stk-assets" ON)
option(USE_SYSTEM_ANGELSCRIPT "Use system angelscript instead of built-in angelscript. If you enable this option, make sure to use a compatible version." OFF)
option(USE_SYSTEM_ENET "Use system ENet instead of the built-in version, when available." ON)
option(USE_SYSTEM_GLEW "Use system GLEW instead of the built-in version, when available." ON)
CMAKE_DEPENDENT_OPTION(USE_IPV6 "Allow create or connect to game server with IPv6 address, system enet will not be used." ON
"NOT USE_SWITCH" OFF)
option(USE_SYSTEM_WIIUSE "Use system WiiUse instead of the built-in version, when available." OFF)
option(USE_CRYPTO_OPENSSL "Use OpenSSL instead of Nettle for cryptography in STK." OFF)
CMAKE_DEPENDENT_OPTION(BUILD_RECORDER "Build opengl recorder" ON
"NOT SERVER_ONLY;NOT APPLE" OFF)
CMAKE_DEPENDENT_OPTION(USE_FRIBIDI "Support for right-to-left languages" ON
"NOT SERVER_ONLY" OFF)
CMAKE_DEPENDENT_OPTION(USE_WIIUSE "Support for wiimote input devices" ON
"NOT SERVER_ONLY;NOT MINGW;NOT CYGWIN" OFF)
option(USE_SQLITE3 "Use sqlite to manage server stats and ban list." ON)
if(APPLE)
list(APPEND CMAKE_PREFIX_PATH /usr/local/opt)
include_directories(/usr/local/opt/fribidi/include/)
include_directories(/usr/local/opt/openssl@1.1/include/)
include_directories(/usr/local/opt/openssl@1.1/include/openssl/)
include_directories(/usr/local/opt/freetype/include/freetype2/)
CMAKE_DEPENDENT_OPTION(DLOPEN_MOLTENVK "Use dlopen to load MoltenVK for Apple." ON
"NOT IOS;NOT SERVER_ONLY" OFF)
endif()
CMAKE_DEPENDENT_OPTION(USE_CRYPTO_OPENSSL "Use OpenSSL instead of MbedTLS for cryptography in STK." ON
"NOT USE_SWITCH;NOT WIN32" OFF)
CMAKE_DEPENDENT_OPTION(BUILD_RECORDER "Build opengl recorder" ON
"NOT SERVER_ONLY;NOT APPLE;NOT USE_SWITCH" OFF)
CMAKE_DEPENDENT_OPTION(USE_SYSTEM_SQUISH "Use system Squish library instead of the built-in version, when available." ON
"NOT SERVER_ONLY" OFF)
CMAKE_DEPENDENT_OPTION(USE_WIIUSE "Support for wiimote input devices" ON
"NOT SERVER_ONLY;NOT CYGWIN;NOT USE_SWITCH;NOT MSVC" OFF)
CMAKE_DEPENDENT_OPTION(USE_DNS_C "Build bundled dns resolver" OFF "NOT CYGWIN;NOT USE_SWITCH" ON)
CMAKE_DEPENDENT_OPTION(USE_MOJOAL "Use bundled MojoAL instead of system OpenAL" OFF "NOT APPLE" ON)
if (DLOPEN_MOLTENVK)
ADD_DEFINITIONS(-DDLOPEN_MOLTENVK)
endif()
if((UNIX AND NOT APPLE) OR NINTENDO_SWITCH)
include(FindPkgConfig)
endif()
if(IOS)
include(cmake/XcodeHelper.cmake)
endif()
if(APPLE AND NOT IOS)
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm")
set(ARCHFLAGS "arm64")
list(APPEND CMAKE_PREFIX_PATH /opt/homebrew/opt)
include_directories(/opt/homebrew/opt/openssl@1.1/include/)
include_directories(/opt/homebrew/opt/openssl@1.1/include/openssl/)
include_directories(/opt/homebrew/opt/freetype/include/freetype2/)
include_directories(/opt/homebrew/opt/harfbuzz/include/harfbuzz/)
else()
set(ARCHFLAGS "${CMAKE_SYSTEM_PROCESSOR}")
list(APPEND CMAKE_PREFIX_PATH /usr/local/opt)
include_directories(/usr/local/opt/openssl@1.1/include/)
include_directories(/usr/local/opt/openssl@1.1/include/openssl/)
include_directories(/usr/local/opt/freetype/include/freetype2/)
include_directories(/usr/local/opt/harfbuzz/include/harfbuzz/)
endif()
endif()
if (IOS)
ADD_DEFINITIONS(-DMOBILE_STK)
ADD_DEFINITIONS(-DIOS_STK)
set(CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2")
option(USE_GLES2 "Use OpenGL ES2 renderer" ON)
endif()
if((UNIX AND NOT APPLE) AND NOT SERVER_ONLY)
option(ENABLE_WAYLAND_DEVICE "Enable Wayland device for linux build" ON)
if((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") OR
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64"))
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") OR
(${CMAKE_SYSTEM_PROCESSOR} MATCHES "riscv64"))
option(USE_GLES2 "Use OpenGL ES2 renderer" ON)
else()
option(USE_GLES2 "Use OpenGL ES2 renderer" OFF)
@@ -69,12 +114,26 @@ endif()
if(UNIX AND NOT APPLE)
option(USE_ASAN "Build with Leak/Address sanitizer" OFF)
option(USE_TSAN "Build with Thread sanitizer" OFF)
option(USE_LIBBFD "Use libbfd for crash reporting and leak check" OFF)
endif()
if(USE_ASAN)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
endif()
if(USE_TSAN)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread -fno-omit-frame-pointer")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread -fno-omit-frame-pointer")
endif()
set(STK_SOURCE_DIR "src")
set(STK_DATA_DIR "${PROJECT_SOURCE_DIR}/data")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
# CMAKE_RUNTIME_OUTPUT_DIRECTORY removes dSYMs in Xcode archive
if(NOT CMAKE_GENERATOR MATCHES "Xcode")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
endif()
# Define install paths
set(STK_INSTALL_BINARY_DIR "bin" CACHE
@@ -83,28 +142,26 @@ set(STK_INSTALL_DATA_DIR "share/supertuxkart" CACHE
STRING "Install data folder to this directory, absolute or relative to CMAKE_INSTALL_PREFIX")
# Define dependencies path
if(MSVC)
set(DEPENDENCIES "dependencies-vs")
elseif(MINGW)
set(DEPENDENCIES "dependencies-mingw")
else()
set(DEPENDENCIES "dependencies")
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" arch_lower)
set(BUILD_ARCH "unknown")
if (CMAKE_GENERATOR_PLATFORM)
set(BUILD_ARCH "${CMAKE_GENERATOR_PLATFORM}")
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(DEPENDENCIES "${DEPENDENCIES}-64bit")
if(arch_lower MATCHES "arm64" OR arch_lower MATCHES "aarch64" OR ${CMAKE_GENERATOR} MATCHES "(ARM64)" OR ${BUILD_ARCH} MATCHES "(ARM64)")
set(DEPENDENCIES "dependencies-win-aarch64")
elseif(arch_lower MATCHES "armv7" OR arch_lower MATCHES "armv7" OR ${CMAKE_GENERATOR} MATCHES "(ARM)" OR ${BUILD_ARCH} MATCHES "(ARM)")
set(DEPENDENCIES "dependencies-win-armv7")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(DEPENDENCIES "dependencies-win-x86_64")
else()
set(DEPENDENCIES "dependencies-win-i686")
endif()
if(WIN32)
ADD_DEFINITIONS(-DUNICODE)
ADD_DEFINITIONS(-D_UNICODE)
if(NOT IS_DIRECTORY "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}")
set(DEPENDENCIES "dependencies")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(DEPENDENCIES "${DEPENDENCIES}-64bit")
endif()
endif()
if(NOT IS_DIRECTORY "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}")
message(FATAL_ERROR "Dependencies directory not found.")
message(FATAL_ERROR "Dependencies directory not found, make sure dependencies-win-(arch) exists inside stk-code directory.")
endif()
endif()
@@ -118,14 +175,21 @@ if(WIN32)
include_directories(${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/include)
endif()
if(WIN32 AND NOT USE_DIRECTX)
add_definitions(-DNO_IRR_COMPILE_WITH_DIRECT3D_9_)
endif()
if(USE_GLES2)
add_definitions(-DUSE_GLES2)
add_definitions(-D_IRR_COMPILE_WITH_OGLES2_ -DNO_IRR_COMPILE_WITH_OPENGL_)
if (NOT IOS)
add_definitions(-D_IRR_COMPILE_WITH_OGLES2_)
endif()
add_definitions(-DNO_IRR_COMPILE_WITH_OPENGL_)
endif()
if(SERVER_ONLY)
add_definitions(-DSERVER_ONLY)
add_definitions(-DNO_IRR_COMPILE_WITH_X11_ -DNO_IRR_COMPILE_WITH_OPENGL_ -DNO_IRR_COMPILE_WITH_OSX_DEVICE_)
add_definitions(-DNO_IRR_COMPILE_WITH_X11_ -DNO_IRR_COMPILE_WITH_OPENGL_)
endif()
if(UNIX OR MINGW)
@@ -135,7 +199,7 @@ if(UNIX OR MINGW)
endif()
endif()
if(UNIX AND NOT APPLE)
if(UNIX AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
find_package(PkgConfig REQUIRED)
if(NOT PKGCONFIG_FOUND)
@@ -145,78 +209,93 @@ endif()
# Build the Bullet physics library
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/bullet")
include_directories("${PROJECT_SOURCE_DIR}/lib/bullet/src")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/bullet/src")
# Build the DNS C library
if(USE_DNS_C)
add_definitions(-DDNS_C)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/dnsc")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/dnsc")
else()
if(WIN32 OR CMAKE_SYSTEM_NAME MATCHES "BSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly" OR USE_SWITCH)
set(LIBRESOLV_LIBRARY)
elseif (HAIKU)
find_library(LIBRESOLV_LIBRARY NAMES network socket)
else()
find_library(LIBRESOLV_LIBRARY NAMES resolv libresolv)
endif()
endif()
# Find system ENet library or build it if missing
if((UNIX AND NOT APPLE) AND USE_SYSTEM_ENET)
if((UNIX AND NOT APPLE) AND USE_SYSTEM_ENET AND NOT USE_IPV6)
pkg_check_modules(ENET libenet>=1.3.4)
endif()
if(ENET_FOUND)
if (USE_IPV6)
add_definitions(-DENABLE_IPV6)
endif()
if(ENET_FOUND AND NOT USE_IPV6)
include_directories(${ENET_INCLUDE_DIRS})
else()
# Fallback to built-in version
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/enet")
include_directories("${PROJECT_SOURCE_DIR}/lib/enet/include")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/enet/include")
set(ENET_LIBRARIES "enet")
endif()
# Find system GLEW library or build it if missing
if (APPLE)
find_package(glew)
if(GLEW_FOUND)
include_directories(${GLEW_INCLUDE_DIRS})
if(NOT SERVER_ONLY)
if(USE_SYSTEM_SQUISH)
find_library(SQUISH_LIBRARY NAMES squish libsquish)
find_path(SQUISH_INCLUDEDIR NAMES squish.h PATHS)
endif()
elseif(NOT USE_GLES2 AND NOT SERVER_ONLY)
add_definitions(-DGLEW_NO_GLU)
if((UNIX AND NOT APPLE) AND USE_SYSTEM_GLEW)
pkg_check_modules(GLEW glew>=2.1)
endif()
if(GLEW_FOUND)
include_directories(${GLEW_INCLUDE_DIRS})
if (NOT SQUISH_LIBRARY OR NOT SQUISH_INCLUDEDIR)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/libsquish")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/libsquish")
SET(SQUISH_LIBRARY squish)
else()
# Fallback to built-in version silently
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/glew")
include_directories("${PROJECT_SOURCE_DIR}/lib/glew/include")
set(GLEW_LIBRARIES "glew")
include_directories("${SQUISH_INCLUDEDIR}")
MESSAGE(STATUS "Use system libsquish: ${SQUISH_LIBRARY}")
endif()
endif()
if(MSVC)
# Build zlib library
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/zlib")
include_directories("${PROJECT_SOURCE_DIR}/lib/zlib")
if(NOT SERVER_ONLY)
find_library(SHADERC_LIBRARY NAMES shaderc_shared libshaderc_shared)
find_path(SHADERC_INCLUDEDIR NAMES shaderc/shaderc.hpp PATHS)
if (NOT SHADERC_LIBRARY OR NOT SHADERC_INCLUDEDIR)
set(SHADERC_SKIP_INSTALL ON CACHE INTERNAL "Skip installation" FORCE)
set(SHADERC_SKIP_TESTS ON CACHE INTERNAL "Skip building tests" FORCE)
set(SHADERC_SKIP_EXAMPLES ON CACHE INTERNAL "Skip building examples" FORCE)
set(SHADERC_SKIP_COPYRIGHT_CHECK ON CACHE INTERNAL "Skip copyright check" FORCE)
set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lib/zlib" "${PROJECT_BINARY_DIR}/lib/zlib/")
set(ZLIB_LIBRARY zlibstatic)
set(SPIRV_HEADERS_SKIP_INSTALL ON CACHE INTERNAL "Skip install" FORCE)
set(SPIRV_HEADERS_SKIP_EXAMPLES ON CACHE INTERNAL "Skip building examples" FORCE)
set(SKIP_SPIRV_TOOLS_INSTALL ON CACHE INTERNAL "Skip installation" FORCE)
set(SPIRV_SKIP_TESTS ON CACHE INTERNAL "Skip tests" FORCE)
set(SPIRV_SKIP_EXECUTABLES ON CACHE INTERNAL "Skip executables" FORCE)
set(ENABLE_GLSLANG_BINARIES OFF CACHE INTERNAL "Builds glslangValidator and spirv-remap" FORCE)
set(ENABLE_CTEST OFF CACHE INTERNAL "Enable ctest" FORCE)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/shaderc")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/shaderc/libshaderc/include")
SET(SHADERC_LIBRARY shaderc)
message(STATUS "System shaderc not found, use the bundled one.")
else()
include_directories("${SHADERC_INCLUDEDIR}")
MESSAGE(STATUS "Use system shaderc: ${SHADERC_LIBRARY}")
endif()
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/graphics_engine")
endif()
# MiniGLM is there
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/graphics_engine/include")
if (NOT SERVER_ONLY)
if(MSVC OR APPLE)
# Build png library
set(SKIP_INSTALL_ALL TRUE)
set(PNG_STATIC TRUE CACHE BOOL "Build static lib")
set(PNG_TESTS FALSE CACHE BOOL "Build libpng tests")
set(PNG_SHARED FALSE CACHE BOOL "Build shared lib")
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/libpng")
include_directories("${PROJECT_SOURCE_DIR}/lib/libpng")
set(PNG_PNG_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lib/libpng/")
set(PNG_LIBRARY png_static)
endif()
# Add jpeg library
if (APPLE)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/jpeglib")
include_directories("${PROJECT_SOURCE_DIR}/lib/jpeglib")
set(JPEG_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lib/jpeglib/")
set(JPEG_LIBRARY jpeglib)
else()
find_package(JPEG REQUIRED)
include_directories(${JPEG_INCLUDE_DIR})
endif()
find_package(JPEG REQUIRED)
include_directories(${JPEG_INCLUDE_DIR})
endif()
if (BUILD_RECORDER)
@@ -242,25 +321,46 @@ endif()
if(NOT SERVER_ONLY)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/graphics_utils")
include_directories("${PROJECT_SOURCE_DIR}/lib/graphics_utils")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/graphics_utils")
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/tinygettext")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/tinygettext/include")
endif()
if(NOT SERVER_ONLY)
find_library(SQUISH_LIBRARY NAMES squish libsquish)
find_path(SQUISH_INCLUDEDIR NAMES squish.h PATHS)
if (NOT SQUISH_LIBRARY OR NOT SQUISH_INCLUDEDIR)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/libsquish")
include_directories("${PROJECT_SOURCE_DIR}/lib/libsquish")
SET(SQUISH_LIBRARY squish)
# Libmcpp
find_library(MCPP_LIBRARY NAMES mcpp libmcpp)
find_path(MCPP_INCLUDEDIR NAMES mcpp_lib.h PATHS)
if (NOT MCPP_LIBRARY OR NOT MCPP_INCLUDEDIR)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/mcpp")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/mcpp")
SET(MCPP_LIBRARY mcpp)
message(STATUS "System libmcpp not found, use the bundled one.")
else()
include_directories("${MCPP_INCLUDEDIR}")
MESSAGE(STATUS "Use system libmcpp: ${MCPP_LIBRARY}")
endif()
if (NOT SERVER_ONLY)
# SDL2
find_library(SDL2_LIBRARY NAMES SDL2 libSDL2)
find_path(SDL2_INCLUDEDIR NAMES SDL.h PATH_SUFFIXES SDL2 include/SDL2 include PATHS)
if (NOT SDL2_LIBRARY OR NOT SDL2_INCLUDEDIR)
message(FATAL_ERROR "SDL2 not found. "
"SDL2 is required to handle gamepad in SuperTuxKart.")
else()
include_directories("${SQUISH_INCLUDEDIR}")
MESSAGE(STATUS "Use system libsquish: ${SQUISH_LIBRARY}")
include_directories("${SDL2_INCLUDEDIR}")
MESSAGE(STATUS "Use system SDL2: ${SDL2_LIBRARY}")
endif()
# DirectFB. Necessary if system SDL2 is built with DirectFB support.
find_path(DIRECTFB_INCLUDEDIR NAMES directfb.h directfb++.h PATH_SUFFIXES directfb include/directfb include PATHS)
if (DIRECTFB_INCLUDEDIR)
include_directories("${DIRECTFB_INCLUDEDIR}")
message(STATUS "Adding DirectFB include directories for DirectFB support in SDL2")
endif()
endif()
# Build the irrlicht library
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/irrlicht")
include_directories("${PROJECT_SOURCE_DIR}/lib/irrlicht/include")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/irrlicht/include")
# Build the Wiiuse library
# Note: wiiuse MUST be declared after irrlicht, since otherwise
@@ -268,7 +368,7 @@ include_directories("${PROJECT_SOURCE_DIR}/lib/irrlicht/include")
# of the added include directory.
if(USE_WIIUSE)
# Find system WiiUse library or build it if missing
if((UNIX AND NOT APPLE) AND USE_SYSTEM_WIIUSE)
if((UNIX AND NOT (APPLE OR HAIKU)) AND USE_SYSTEM_WIIUSE)
find_package(WiiUse)
endif()
@@ -279,7 +379,7 @@ if(USE_WIIUSE)
if(WIIUSE_BUILD)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/wiiuse")
endif()
include_directories("${PROJECT_SOURCE_DIR}/lib/wiiuse/src")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/wiiuse/src/include")
set(WIIUSE_LIBRARIES "wiiuse" "bluetooth")
endif()
endif()
@@ -287,13 +387,18 @@ endif()
# Set include paths
include_directories(${STK_SOURCE_DIR})
if(APPLE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch x86_64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch x86_64 -F/Library/Frameworks")
if(APPLE AND NOT IOS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -arch ${ARCHFLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch ${ARCHFLAGS} -F/Library/Frameworks")
elseif(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") # Enable multi-processor compilation (faster)
endif()
if (${CMAKE_SYSTEM_NAME} MATCHES "SunOs")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
endif()
# Build the angelscript library if not in system
if(USE_SYSTEM_ANGELSCRIPT)
@@ -307,14 +412,36 @@ if(USE_SYSTEM_ANGELSCRIPT)
endif()
else()
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/angelscript/projects/cmake")
include_directories("${PROJECT_SOURCE_DIR}/lib/angelscript/include")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/angelscript/include")
set(Angelscript_LIBRARIES angelscript)
endif()
if(NOT SERVER_ONLY)
# OpenAL
find_package(OpenAL REQUIRED)
include_directories(${OPENAL_INCLUDE_DIR})
if (USE_MOJOAL)
find_library(LIBSAMPLERATE_LIBRARY NAMES samplerate libsamplerate)
find_path(LIBSAMPLERATE_INCLUDEDIR NAMES samplerate.h PATHS)
if (NOT LIBSAMPLERATE_LIBRARY OR NOT LIBSAMPLERATE_INCLUDEDIR)
message(FATAL_ERROR "libsamplerate not found. "
"libsamplerate is required to handle pitch for MojoAL.")
else()
include_directories("${LIBSAMPLERATE_INCLUDEDIR}")
MESSAGE(STATUS "Use system libsamplerate: ${LIBSAMPLERATE_LIBRARY}")
endif()
add_definitions(-DAL_LIBTYPE_STATIC)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/mojoal")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/mojoal")
else()
find_package(OpenAL REQUIRED)
# Unclear why this happens, but on switch OPENAL_LIBRARY never set!
if (NOT OPENAL_LIBRARY)
find_library(OPENAL_LIBRARY NAMES al OpenAL AL openal REQUIRED)
endif()
if (NOT OPENAL_INCLUDE_DIR)
find_path(OPENAL_INCLUDE_DIR NAMES AL/al.h REQUIRED)
endif()
include_directories(${OPENAL_INCLUDE_DIR})
endif()
# OggVorbis
find_package(OggVorbis REQUIRED)
@@ -323,35 +450,34 @@ if(NOT SERVER_ONLY)
add_definitions(-DENABLE_SOUND)
endif()
# Freetype
# Text handling in STK (We use freetype, harfbuzz and SheenBidifor i18n text handling)
if (NOT SERVER_ONLY)
# SheenBidi
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/sheenbidi")
include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/sheenbidi/Headers")
SET(SHEENBIDI_LIBRARY sheenbidi)
# Freetype
find_package(Freetype)
if(FREETYPE_FOUND)
include_directories(${FREETYPE_INCLUDE_DIRS})
else()
message(FATAL_ERROR "Freetype not found. "
"Freetype is required to display characters in SuperTuxKart. ")
"Freetype is required to display characters in SuperTuxKart.")
endif()
endif()
# Fribidi
if(USE_FRIBIDI)
find_package(Fribidi)
if(FRIBIDI_FOUND)
include_directories(${FRIBIDI_INCLUDE_DIRS})
# Harfbuzz
find_library(HARFBUZZ_LIBRARY NAMES harfbuzz libharfbuzz)
find_path(HARFBUZZ_INCLUDEDIR NAMES harfbuzz/hb.h hb.h PATHS)
if (NOT HARFBUZZ_LIBRARY OR NOT HARFBUZZ_INCLUDEDIR)
message(FATAL_ERROR "Harfbuzz not found. "
"Harfbuzz is required to display characters in SuperTuxKart.")
else()
message(FATAL_ERROR "Fribidi not found. "
"Either install fribidi or disable bidi support with -DUSE_FRIBIDI=0 "
"(if you don't use a right-to-left language then you don't need this).")
include_directories("${HARFBUZZ_INCLUDEDIR}")
MESSAGE(STATUS "Use system harfbuzz: ${HARFBUZZ_LIBRARY}")
endif()
endif()
# OpenGL
if(NOT USE_GLES2 AND NOT SERVER_ONLY)
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})
endif()
if(USE_LIBBFD)
find_package(Libbfd)
if(LIBBFD_FOUND)
@@ -363,6 +489,23 @@ if(USE_LIBBFD)
endif()
endif()
# SQLITE
if(USE_SQLITE3)
find_library(SQLITE3_LIBRARY NAMES sqlite3 libsqlite3)
find_path(SQLITE3_INCLUDEDIR NAMES sqlite3.h PATHS)
if (NOT SQLITE3_LIBRARY OR NOT SQLITE3_INCLUDEDIR)
# add_subdirectory("${PROJECT_SOURCE_DIR}/lib/sqlite3")
# include_directories(BEFORE "${PROJECT_SOURCE_DIR}/lib/sqlite3")
# SET(SQLITE3_LIBRARY sqlite3)
set(USE_SQLITE3 OFF CACHE BOOL "Use sqlite to manage server stats and ban list." FORCE)
message(WARNING "Sqlite3 not found, disable advanced server management.")
else()
add_definitions(-DENABLE_SQLITE3)
include_directories("${SQLITE3_INCLUDEDIR}")
MESSAGE(STATUS "Use system libsqlite3: ${SQLITE3_LIBRARY}")
endif()
endif()
# Set some compiler options
if(UNIX OR MINGW)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
@@ -413,7 +556,7 @@ include(cmake/SourceGroupFunctions.cmake)
source_group_hierarchy(STK_SOURCES STK_HEADERS)
if(APPLE)
if(APPLE AND NOT IOS)
# icon files to copy in the bundle
set(OSX_ICON_FILES ${PROJECT_SOURCE_DIR}/data/supertuxkart.icns)
set_source_files_properties(${OSX_ICON_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
@@ -435,19 +578,16 @@ if(APPLE)
if(CMAKE_GENERATOR MATCHES "Xcode")
add_custom_command(TARGET supertuxkart POST_BUILD
COMMAND ln -f -s ${PROJECT_SOURCE_DIR}/data ${CMAKE_BINARY_DIR}/bin/\${CONFIGURATION}/supertuxkart.app/Contents/Resources)
COMMAND ln -f -s ${PROJECT_SOURCE_DIR}/data ${CMAKE_BINARY_DIR}/\${CONFIGURATION}/supertuxkart.app/Contents/Resources)
else()
add_custom_command(TARGET supertuxkart POST_BUILD
COMMAND ln -f -s ${PROJECT_SOURCE_DIR}/data ${CMAKE_BINARY_DIR}/bin/supertuxkart.app/Contents/Resources)
endif()
else()
if(MSVC)
set(PTHREAD_NAMES pthreadVC2)
elseif(MINGW)
set(PTHREAD_NAMES "winpthread-1" "libwinpthread-1" "pthreadGC2")
if (NOT WIN32)
find_library(PTHREAD_LIBRARY NAMES pthread ${PTHREAD_NAMES} PATHS ${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib)
mark_as_advanced(PTHREAD_LIBRARY)
endif()
find_library(PTHREAD_LIBRARY NAMES pthread ${PTHREAD_NAMES} PATHS ${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib)
mark_as_advanced(PTHREAD_LIBRARY)
# Set data dir (absolute or relative to CMAKE_INSTALL_PREFIX)
if(NOT STK_INSTALL_DATA_DIR_ABSOLUTE)
@@ -462,49 +602,78 @@ else()
endif()
# Build the final executable
add_executable(supertuxkart ${STK_SOURCES} ${STK_RESOURCES} ${STK_HEADERS})
target_link_libraries(supertuxkart ${PTHREAD_LIBRARY})
if (IOS)
file(GLOB IOS_ASSETS_FILES ${IOS_ASSETS} ${IOS_LAUNCHSCREEN} ${IOS_IMAGES_XCASSETS})
set_source_files_properties(${IOS_ASSETS_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
add_executable(supertuxkart ${STK_SOURCES} ${STK_RESOURCES} ${STK_HEADERS} ${IOS_ASSETS_FILES})
set_target_properties(supertuxkart PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/data/SuperTuxKart-Info-iOS.plist
XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET 9.0
XCODE_ATTRIBUTE_INSTALL_PATH /Applications
XCODE_ATTRIBUTE_SKIP_INSTALL No
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon")
if(CMAKE_GENERATOR MATCHES "Xcode")
get_all_targets(supertuxkart_targets ${CMAKE_CURRENT_LIST_DIR})
foreach(target IN LISTS supertuxkart_targets)
if (NOT target MATCHES "supertuxkart")
set_target_properties(${target} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib$(EFFECTIVE_PLATFORM_NAME)/${target})
endif()
configure_xcode_defaults(${target})
endforeach()
endif()
else()
add_executable(supertuxkart ${STK_SOURCES} ${STK_RESOURCES} ${STK_HEADERS})
endif()
if (NOT WIN32)
target_link_libraries(supertuxkart ${PTHREAD_LIBRARY})
endif()
endif()
# CURL and OpenSSL or Nettle
# check if linking against libatomic is required
include(CheckCXXSourceCompiles)
check_cxx_source_compiles("
#include <atomic>
#include <cstdint>
int main() {
std::atomic<uint64_t> x{0};
x.load();
return 0;
}
" NO_LIBATOMIC_NEEDED)
if (NOT NO_LIBATOMIC_NEEDED)
target_link_libraries(supertuxkart atomic)
endif()
# CURL and OpenSSL or MbedTLS
# 1.0.1d for compatible AES GCM handling
SET(OPENSSL_MINIMUM_VERSION "1.0.1d")
if(MSVC)
find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIRS})
find_path(MBEDTLS_INCLUDE_DIRS mbedtls/version.h)
find_library(MBEDCRYPTO_LIBRARY NAMES mbedcrypto libmbedcrypto)
if (NOT MBEDCRYPTO_LIBRARY OR NOT MBEDTLS_INCLUDE_DIRS OR USE_CRYPTO_OPENSSL)
set(USE_CRYPTO_OPENSSL ON)
target_link_libraries(supertuxkart ${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib/libcurl.lib)
target_link_libraries(supertuxkart ${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib/libeay32.lib)
elseif(MINGW)
set(USE_CRYPTO_OPENSSL ON)
target_link_libraries(supertuxkart ${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib/libcurldll.a)
target_link_libraries(supertuxkart ${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib/libeay32.dll)
else()
find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIRS})
find_package(OpenSSL REQUIRED)
find_path(NETTLE_INCLUDE_DIRS nettle/version.h)
find_library(NETTLE_LIBRARY NAMES nettle libnettle)
if (NOT NETTLE_INCLUDE_DIRS OR NOT NETTLE_LIBRARY OR USE_CRYPTO_OPENSSL)
set(USE_CRYPTO_OPENSSL ON)
find_package(OpenSSL REQUIRED)
if(${OPENSSL_VERSION} VERSION_LESS ${OPENSSL_MINIMUM_VERSION} OR
(${OPENSSL_VERSION} VERSION_EQUAL ${OPENSSL_MINIMUM_VERSION} AND ${OPENSSL_VERSION} STRLESS ${OPENSSL_MINIMUM_VERSION}))
message(FATAL_ERROR "OpenSSL version found (${OPENSSL_VERSION}) is less then the minimum required (${OPENSSL_MINIMUM_VERSION}), aborting.")
endif()
include_directories(${OpenSSL_INCLUDE_DIRS})
else()
set(USE_CRYPTO_OPENSSL OFF)
include_directories(${NETTLE_INCLUDE_DIRS})
if(${OPENSSL_VERSION} VERSION_LESS ${OPENSSL_MINIMUM_VERSION} OR
(${OPENSSL_VERSION} VERSION_EQUAL ${OPENSSL_MINIMUM_VERSION} AND ${OPENSSL_VERSION} STRLESS ${OPENSSL_MINIMUM_VERSION}))
message(FATAL_ERROR "OpenSSL version found (${OPENSSL_VERSION}) is less then the minimum required (${OPENSSL_MINIMUM_VERSION}), aborting.")
endif()
include_directories(${OpenSSL_INCLUDE_DIRS})
else()
set(USE_CRYPTO_OPENSSL OFF)
include_directories(${MBEDTLS_INCLUDE_DIRS})
endif()
if (USE_CRYPTO_OPENSSL)
message(STATUS "OpenSSL will be used for cryptography in STK.")
add_definitions(-DENABLE_CRYPTO_OPENSSL)
else()
message(STATUS "Nettle will be used for cryptography in STK.")
add_definitions(-DENABLE_CRYPTO_NETTLE)
message(STATUS "MbedTLS will be used for cryptography in STK.")
add_definitions(-DENABLE_CRYPTO_MBEDTLS)
endif()
# Common library dependencies
@@ -516,38 +685,112 @@ target_link_libraries(supertuxkart
stkirrlicht
${Angelscript_LIBRARIES}
${CURL_LIBRARIES}
${MCPP_LIBRARY}
)
if (USE_SWITCH)
include(cmake/FindEGL.cmake)
find_library(NX_LIBRARY NAMES nx libnx REQUIRED)
find_library(DRM_LIBRARY NAMES drm_nouveau libdrm_nouveau REQUIRED)
find_library(GLAPI_LIBRARY NAMES glapi libglapi REQUIRED)
find_library(ZLIB_LIBRARY NAMES z libz REQUIRED)
find_library(PNG_LIBRARY NAMES png libpng REQUIRED)
find_library(BZ2_LIBRARY NAMES bz2 libbz2 REQUIRED)
target_link_libraries(supertuxkart
${NX_LIBRARY}
${ZLIB_LIBRARY}
${FREETYPE_LIBRARIES}
-logg
-lvorbis
${SDL2_LIBRARY}
${PNG_LIBRARY}
${BZ2_LIBRARY}
${HARFBUZZ_LIBRARY}
${OPENAL_LIBRARY}
${EGL_LIBRARY}
${DRM_LIBRARY}
${GLAPI_LIBRARY}
${NX_LIBRARY}
)
endif()
if(NOT SERVER_ONLY)
if (USE_MOJOAL)
target_link_libraries(supertuxkart mojoal ${LIBSAMPLERATE_LIBRARY})
else()
target_link_libraries(supertuxkart ${OPENAL_LIBRARY})
endif()
endif()
if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
target_link_libraries(supertuxkart nsl socket vorbisfile)
endif()
if (${CMAKE_SYSTEM_NAME} MATCHES "Haiku")
target_link_libraries(supertuxkart be network vorbisfile)
endif()
if (USE_DNS_C)
target_link_libraries(supertuxkart dnsc)
else()
target_link_libraries(supertuxkart ${LIBRESOLV_LIBRARY})
endif()
if (USE_SQLITE3)
target_link_libraries(supertuxkart ${SQLITE3_LIBRARY})
endif()
if (USE_CRYPTO_OPENSSL)
target_link_libraries(supertuxkart ${OPENSSL_CRYPTO_LIBRARY})
else()
target_link_libraries(supertuxkart ${NETTLE_LIBRARY})
target_link_libraries(supertuxkart ${MBEDCRYPTO_LIBRARY})
endif()
if(NOT SERVER_ONLY)
if(NOT USE_GLES2)
target_link_libraries(supertuxkart ${OPENGL_gl_LIBRARY} ${GLEW_LIBRARIES})
else()
target_link_libraries(supertuxkart GLESv2)
if (APPLE AND NOT DLOPEN_MOLTENVK)
find_library(MOLTENVK_LIBRARY NAMES MoltenVK libMoltenVK REQUIRED)
target_link_libraries(supertuxkart "-framework Metal -weak_framework IOSurface -framework QuartzCore ${MOLTENVK_LIBRARY}")
endif()
if (IOS)
target_link_libraries(supertuxkart "-weak_framework CoreHaptics -framework QuartzCore -framework CoreGraphics -framework AVFoundation -framework AudioToolbox -framework Metal -framework GameController -framework OpenGLES -framework UIKit -framework CoreAudio -framework Foundation -framework GLKit")
# tvOS doesn't have CoreMotion framwork
include(CheckCSourceCompiles)
set(prev_req_lib ${CMAKE_REQUIRED_LIBRARIES})
set(CMAKE_REQUIRED_LIBRARIES "-framework CoreMotion")
check_c_source_compiles("int main() { return 0; }" COREMOTION_EXISTS)
set(CMAKE_REQUIRED_LIBRARIES ${prev_req_lib})
if (COREMOTION_EXISTS)
target_link_libraries(supertuxkart "-framework CoreMotion")
endif()
endif()
target_link_libraries(supertuxkart
${SQUISH_LIBRARY}
${FREETYPE_LIBRARIES}
${JPEG_LIBRARIES}
${OGGVORBIS_LIBRARIES}
${OPENAL_LIBRARY}
graphics_utils)
${FREETYPE_LIBRARIES}
${HARFBUZZ_LIBRARY}
${SHEENBIDI_LIBRARY}
graphics_utils
graphics_engine
${SDL2_LIBRARY}
tinygettext
${SHADERC_LIBRARY})
endif()
if(UNIX AND NOT APPLE)
if(USE_LIBBFD)
target_link_libraries(supertuxkart ${LIBBFD_LIBRARIES})
if (CMAKE_SYSTEM_NAME MATCHES "BSD")
target_link_libraries(supertuxkart execinfo)
endif()
endif()
if(USE_ASAN)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
target_link_libraries(supertuxkart "-fsanitize=address")
endif()
if(USE_TSAN)
target_link_libraries(supertuxkart "-fsanitize=thread")
endif()
endif()
if(BUILD_RECORDER)
@@ -559,11 +802,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
endif()
if(USE_FRIBIDI)
target_link_libraries(supertuxkart ${FRIBIDI_LIBRARIES})
add_definitions(-DENABLE_BIDI)
endif()
# Wiiuse
# ------
if(USE_WIIUSE)
@@ -588,18 +826,22 @@ if(MSVC OR MINGW)
target_link_libraries(supertuxkart iphlpapi.lib)
add_custom_command(TARGET supertuxkart POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/dll"
"${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/bin"
$<TARGET_FILE_DIR:supertuxkart>)
add_custom_target(stkshaders SOURCES ${STK_SHADERS})
endif()
if(MINGW)
target_link_libraries(supertuxkart -ldxguid -ldnsapi)
if (NOT CMAKE_BUILD_TYPE MATCHES Debug)
target_link_libraries(supertuxkart -mwindows)
endif()
find_library(LIBGCC NAMES "libgcc_s_dw2-1.dll" "libgcc_s_sjlj-1.dll" "libgcc_s_seh-1.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
if(LIBGCC)
if (LIBGCC)
file(COPY ${LIBGCC} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
endif()
find_library(LIBSTDCPP NAMES "libstdc++-6.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
if(LIBSTDCPP)
if (LIBSTDCPP)
file(COPY ${LIBSTDCPP} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
endif()
find_library(LIBPTHREAD NAMES "winpthread-1.dll" "libwinpthread-1.dll" "pthreadGC2.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
@@ -609,6 +851,19 @@ if(MINGW)
endif()
# Find LibGamerzilla library or build it if missing
if (NOT APPLE)
include(FindPkgConfig)
pkg_search_module(GAMERZILLA OPTIONAL gamerzilla)
if (GAMERZILLA_LIBRARIES)
message(STATUS "Gamerzilla found")
include_directories(${GAMERZILLA_INCLUDE_DIRS})
target_link_libraries(supertuxkart ${GAMERZILLA_LIBRARIES})
add_definitions(-DGAMERZILLA)
endif()
endif()
# ==== Checking if data folder exists ====
if(NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data)
message( FATAL_ERROR "${CMAKE_CURRENT_SOURCE_DIR}/data folder doesn't exist" )
@@ -645,9 +900,14 @@ if(STK_ASSETS_DIR AND CHECK_ASSETS)
install(DIRECTORY ${STK_ASSETS_DIR} DESTINATION ${STK_INSTALL_DATA_DIR}/data PATTERN ".svn" EXCLUDE PATTERN ".git" EXCLUDE)
endif()
install(FILES ${STK_DATA_DIR}/supertuxkart.desktop DESTINATION share/applications)
install(FILES data/supertuxkart_16.png DESTINATION share/icons/hicolor/16x16/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_32.png DESTINATION share/icons/hicolor/32x32/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_48.png DESTINATION share/icons/hicolor/48x48/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_64.png DESTINATION share/icons/hicolor/64x64/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_128.png DESTINATION share/icons/hicolor/128x128/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_48.png DESTINATION share/pixmaps RENAME supertuxkart.png)
install(FILES data/supertuxkart_256.png DESTINATION share/icons/hicolor/256x256/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_512.png DESTINATION share/icons/hicolor/512x512/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_1024.png DESTINATION share/icons/hicolor/1024x1024/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart.appdata.xml DESTINATION share/metainfo)
if(MINGW)

View File

@@ -1,4 +1,4 @@
## Building from source
# Building from source
In order to build SuperTuxKart from source, you'll need both the code and the assets (See <https://supertuxkart.net/Source_control> for more information):
@@ -13,49 +13,64 @@ svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets stk-assets
To build SuperTuxKart from source, you'll need to install the following packages:
* OpenGL (mesa)
* OpenAL (recommended: openal-soft-devel)
* Ogg (libogg-dev)
* Vorbis (libvorbis-dev)
* Freetype (libfreetype6-dev)
* libcurl (libcurl-devel)
* libbluetooth (bluez-devel)
* libnettle (nettle-dev)
* libpng (libpng-devel)
* zlib (zlib-devel)
* jpeg (libjpeg-turbo-devel)
* OpenAL (recommended: openal-soft-devel)
* Ogg (libogg-dev)
* Vorbis (libvorbis-dev)
* Freetype (libfreetype6-dev)
* Harfbuzz (libharfbuzz-dev)
* libcurl (libcurl-devel)
* libbluetooth (bluez-devel)
* openssl (openssl-dev)
* libpng (libpng-devel)
* zlib (zlib-devel)
* jpeg (libjpeg-turbo-devel)
* SDL2 (libsdl2-devel)
Fedora command:
```bash
sudo dnf install @development-tools cmake bluez-libs-devel \
openssl-devel libcurl-devel freetype-devel fribidi-devel mesa-libGL-devel \
libjpeg-turbo-devel libogg-devel openal-soft-devel libpng-devel \
libvorbis-devel libXrandr-devel libGLEW nettle-devel pkgconf zlib-devel
sudo dnf install @development-tools angelscript-devel \
bluez-libs-devel cmake desktop-file-utils SDL2-devel \
freealut-devel freetype-devel \
gcc-c++ git-core libcurl-devel libjpeg-turbo-devel \
libpng-devel libsquish-devel libtool libvorbis-devel \
openal-soft-devel openssl-devel libcurl-devel harfbuzz-devel \
libogg-devel openssl-devel pkgconf \
wiiuse-devel zlib-devel
```
Mageia 6 command:
```bash
su -c 'urpmi gcc-c++ cmake openssl-devel libcurl-devel freetype-devel \
fribidi-devel libjpeg-turbo-devel libogg-devel openal-soft-devel \
su -c 'urpmi gcc-c++ cmake openssl-devel libcurl-devel freetype-devel harfbuzz-devel \
libjpeg-turbo-devel libogg-devel openal-soft-devel SDL2-devel \
libpng-devel libvorbis-devel nettle-devel zlib-devel git subversion \
mesa-comon-devel libxrandr-devel libbluez-devel libfreetype6-devel'
libbluez-devel libfreetype6-devel
```
OpenSUSE command:
openSUSE command:
```bash
sudo zypper install gcc-c++ cmake openssl-devel libcurl-devel \
freetype-devel fribidi-devel libogg-devel openal-soft-devel libpng-devel \
libvorbis-devel libXrandr-devel pkgconf zlib-devel enet-devel glew-devel \
libjpeg-devel bluez-devel freetype2-devel glu-devel
sudo zypper install gcc-c++ cmake openssl-devel libcurl-devel libSDL2-devel \
freetype-devel harfbuzz-devel libogg-devel openal-soft-devel libpng-devel \
libvorbis-devel pkgconf zlib-devel enet-devel \
libjpeg-devel bluez-devel freetype2-devel
```
Ubuntu command:
Debian-based Distributions command:
```bash
sudo apt-get install build-essential cmake libbluetooth-dev \
libcurl4-openssl-dev libenet-dev libfreetype6-dev libfribidi-dev \
libgl1-mesa-dev libglew-dev libjpeg-dev libogg-dev libopenal-dev libpng-dev \
libssl-dev libvorbis-dev libxrandr-dev libx11-dev nettle-dev pkg-config zlib1g-dev
sudo apt-get install build-essential cmake libbluetooth-dev libsdl2-dev \
libcurl4-openssl-dev libenet-dev libfreetype6-dev libharfbuzz-dev \
libjpeg-dev libogg-dev libopenal-dev libpng-dev \
libssl-dev libvorbis-dev libmbedtls-dev pkg-config zlib1g-dev
```
Solus command:
```bash
sudo eopkg it cmake openal-soft-devel libogg-devel libvorbis-devel freetype2-devel \
harfbuzz-devel curl-devel bluez-devel openssl-devel libpng-devel zlib-devel \
libjpeg-turbo-devel sdl2-devel enet-devel libjpeg-turbo-devel bluez-devel curl-devel
```
### In-game recorder
@@ -67,18 +82,18 @@ Compilation instruction is explained there. If you don't need this feature, pass
### Compiling
To compile SuperTuxKart, run the following commands inside `stk-code` directory
```bash
# go into the stk-code directory
cd stk-code
# create and enter the cmake_build directory
mkdir cmake_build
cd cmake_build
# run cmake to generate the makefile
cmake ..
# compile
make -j$(nproc)
```
@@ -120,63 +135,94 @@ will be copied to `/usr/local/bin`. To change the default installation
location, specify `CMAKE_INSTALL_PREFIX` when running cmake, e.g.:
`cmake .. -DCMAKE_INSTALL_PREFIX=/opt/stk`
## Building SuperTuxKart on Windows
To Build SuperTuxKart on Windows, follow these instructions:
To Build SuperTuxKart on Windows, first you need to install [Python](https://www.python.org/downloads/windows/) for [shaderc](https://github.com/google/shaderc) used by SuperTuxKart, after installing Python (if needed) follow these instructions:
1. Download and install Visual Studio from here: [Visual Studio - Download](https://www.visualstudio.com/downloads/). The free Visual Studio Community edition works fine. Remember to select "Desktop development with C++" in the installer.
2a. If you want the stable version, download the SuperTuxKart source package from the latest stable version [SuperTuxKart download area - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/) and unpack it.
2b. If you want the development version, you will need a Git client and a SVN client. More information can be found here: [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control).
Open your file browser and find somewhere you want to put the development version of SuperTuxKart. For example in C:\Users\<Your Username> as the Git and SVN clients will have write permissions there, and you should create its own directory, for example SuperTuxKart-dev. Enter that directory, and create a directory inside called stk-assets, and enter it. If you installed TortoiseSVN, right-click, select TortoiseSVN -> Checkout... and paste the correspodning URL found in [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control). While it is downloading the game assets, go back to your file browser and one level up. Right-click again somewhere empty and select "Git clone..." and paste the corresponding link found in [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control).
2. If you want the stable version, download the SuperTuxKart source package from the latest stable version [SuperTuxKart on GitHub](https://github.com/supertuxkart/stk-code/releases) and unpack it.
3. If you want the development version, you will need a Git client and a SVN client. More information can be found here: [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control).
Open your file browser and find somewhere you want to put the development version of SuperTuxKart. For example in C:\Users\<Your Username> as the Git and SVN clients will have write permissions there, and you should create its own directory, for example SuperTuxKart-dev. Enter that directory, and create a directory inside called stk-assets, and enter it. If you installed TortoiseSVN, right-click, select TortoiseSVN -> Checkout... and paste the corresponding URL found in [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control). While it is downloading the game assets, go back to your file browser and one level up. Right-click again somewhere empty and select "Git clone..." and paste the corresponding link found in [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control).
*Note: Both `stk-code` and `stk-assets` **must** be in the same directory, otherwise the build will likely fail!*
3a. If you got the stable version, download the Windows dependencies package from [SuperTuxKart download area: Dependencies - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/Windows/) and unpack it.
3b. If you got the development version go to SuperTuxKart-dev in your file browser, right-click somewhere empty, select "Git clone..." and paste https://github.com/supertuxkart/dependencies.git in the URL field; click OK. When finished, copy the `dependencies` directory from either the `windows` or the `windows_64bit` directories into the `stk-code` directory; rename the latter to `dependencies-64bit` if you want to compile a 64-bit build.
4. If you got the stable version, download the Windows dependencies package from [SuperTuxKart on GitHub - Dependencies Releases](https://github.com/supertuxkart/dependencies/releases), find the stk-code version there and download the `dependencies(arch).zip` as needed and unpack the archive into the `stk-code` directory.
4. Download CMake from here: [CMake - download page](https://cmake.org/download/), install it; once CMake is installed, double click on the CMake icon on your desktop, and point it towards your `stk-code` directory in the 'Where is the source code' field, and point it to a new directory called `build` or `bld` inside the stk-code directory.
5. If you got the development version go to SuperTuxKart-dev in your file browser, then visit [SuperTuxKart on GitHub - Dependencies latest preview release](https://github.com/supertuxkart/dependencies/releases/tag/preview)
and unpack the archive into the `stk-code` directory. Download `i686` if you use Win32 generator of MSVC, `x86_64` for x64, `armv7` for ARM and `aarch64` for ARM64.
5. Press 'Configure'; CMake will ask you if it is OK to create the aforementioned directory, press `Yes`. CMake will then ask you about your version of Visual Studio.
6. Download CMake from here: [CMake - download page](https://cmake.org/download/), install it; once CMake is installed, double click on the CMake icon on your desktop, and point it towards your `stk-code` directory in the 'Where is the source code' field, and point 'Where to build the binaries' to a new directory called `build` or `bld` inside the stk-code directory.
Confirm your selection; *Please look at the table below to avoid confusion between version numbers and releases of Visual Studio*; CMake will begin creating the required files for the build in the directory. If you want to do a 64-bit build, select the version of Visual Studio you installed with "Win64" appended.
7. Press 'Configure'; CMake will ask you if it is OK to create the aforementioned directory, press `Yes`. CMake will then ask you about your version of Visual Studio.
6. Navigate to your build directory and open the `SuperTuxKart.sln` file; Visual Studio will now load the solution.
Confirm your selection; *Please look at the table below to avoid confusion between version numbers and releases of Visual Studio*; CMake will begin creating the required files for the build in the directory. If you want to do a 64-bit build, select the version of Visual Studio you installed with "Win64" appended. Press 'Generate' button.
7. In the 'Solution Explorer', right click on the `supertuxkart` project and select "Set as StartUp project".
8. Navigate to your build directory and open the `SuperTuxKart.sln` file; Visual Studio will now load the solution.
8. Open the 'Build' menu and select 'Build Solution'; or, press the default keyboard shortcut: `CTRL + SHIFT + B` to build the solution.
9. In the 'Solution Explorer', right click on the `supertuxkart` project and select "Set as StartUp project".
10. Open the 'Build' menu and select 'Build Solution'; or, press the default keyboard shortcut: `CTRL + SHIFT + B` to build the solution.
*Note: To avoid confusion between releases and versions, refer to this table:*
Visual Studio Release | Version
----------------------|------------
Visual Studio 2019| 16
Visual Studio 2017| 15
Visual Studio 2015| 14
Visual Studio 2013| 13
## Building SuperTuxKart on Windows (from PowerShell/Command line)
1. Download and install Visual Studio from here: [Visual Studio - Download](https://www.visualstudio.com/downloads/), the free Visual Studio Community edition works fine.
2. Download a source package from either [SuperTuxKart 0.9.2 download area - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/0.9.2) or [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control)
NOTE: the `stk-code` and `stk-assets` directories **must** be in the same directory
3. Download the Windows dependencies package from either [SuperTuxKart download area - SourceForge.net](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/Windows/)
or [SuperTuxKart on GitHub - Dependencies](https://github.com/supertuxkart/dependencies)
and unpack the archive; once unpacked, copy the `dependencies` directory from either the `windows` or the `windows_64bit` directories into the `stk-code` directory
2. Download a source package from either [SuperTuxKart on GitHub](https://github.com/supertuxkart/stk-code/releases) or [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control)
NOTE: the `stk-code` and `stk-assets` directories **must** be in the same directory, `stk-assets` is not needed if you download the full source tarball `(SuperTuxKart-version-src.tar.xz)`.
3. Download the Windows dependencies package from [SuperTuxKart on GitHub - Dependencies latest preview release](https://github.com/supertuxkart/dependencies/releases/tag/preview)
and unpack the archive into the `stk-code` directory. Download `i686` if you use Win32 generator of MSVC, `x86_64` for x64, `armv7` for ARM and `aarch64` for ARM64.
4. Download CMake from here: [CMake - download page](https://cmake.org/download/); and install it. Navigate to the `stk-code` directory; and create an directory called "build":
```cmd
mkdir build
cd build
```
```cmd
mkdir build
cd build
```
5. Once inside the build directory; run CMake to start the compilation process:
```cmd
cmake ..
```
```cmd
cmake ..
```
6. Now that CMake finished configuring and creating the necessary files for the build, run the build command in the same directory:
```cmd
msbuild.exe SuperTuxKart.sln
```
SuperTuxKart can now be run as `bin\Debug\supertuxkart.exe` or `bin\Release\supertuxkart.exe`
```cmd
msbuild.exe SuperTuxKart.sln
```
SuperTuxKart can now be run as `bin\Debug\supertuxkart.exe` or `bin\Release\supertuxkart.exe`
## Building SuperTuxKart on Windows using LLVM MinGW
1. Get the LLVM Mingw archive [here](https://github.com/mstorsjo/llvm-mingw/releases/latest), get the `*-msvcrt-i686.zip or` `*-msvcrt-x86_64.zip` depending on whether you have an Intel / AMD 32 or 64-bit Windows. If you are using ARM64 Windows get the `*-msvcrt-i686.zip` should be fine (untested). After downloading extract it as `C:\llvm-mingw` so `C:\llvm-mingw` contains `bin`, `include`, `lib`, etc.
2. Get Ninja [here](https://github.com/ninja-build/ninja/releases/latest), download the `ninja-win.zip` and extract the `ninja.exe` from the archive to `C:\llvm-mingw`. If you are not using Intel / AMD 64-bit Windows use [this link](https://packages.msys2.org/package/mingw-w64-i686-ninja) and extract `mingw32\bin\ninja.exe` inside the `tar.zst`.
3. Download a source package from either [SuperTuxKart on GitHub](https://github.com/supertuxkart/stk-code/releases) or [SuperTuxKart.net - Source Control](https://supertuxkart.net/Source_control)
NOTE: the `stk-code` and `stk-assets` directories **must** be in the same directory, `stk-assets` is not needed if you download the full source tarball `(SuperTuxKart-version-src.tar.xz)`. Also make sure they lie within the C drive.
4. Download the Windows dependencies package from [SuperTuxKart on GitHub - Dependencies latest preview release](https://github.com/supertuxkart/dependencies/releases/tag/preview)
and unpack the archive into the `stk-code` directory. Download `i686` if you compile for Intel / AMD 32-bit, `x86_64` for Intel / AMD 64-bit, `armv7` for ARM 32-bit and `aarch64` for ARM 64-bit version of Windows.
6. Download CMake from here: [CMake - download page](https://cmake.org/download/), install it; once CMake is installed, double click on the CMake icon on your desktop, and point it towards your `stk-code` directory in the 'Where is the source code' field, and point 'Where to build the binaries' to a new directory called `build` inside the stk-code directory.
7. Press the `Add Entry` button and add the values below:
* Name: `LLVM_ARCH` Type: `STRING` Value: `i686`, `x86_64`, `armv7` or `aarch64`
* Name: `LLVM_PREFIX` Type: `STRING` Value: `C:/llvm-mingw`
* Name: `CMAKE_MAKE_PROGRAM` Type: `STRING` Value: `C:/llvm-mingw/ninja.exe`
* Name: `USE_WIIUSE` Type: `BOOL` Value: `Empty (unchecked)`
8. Press 'Configure'; CMake will ask you if it is OK to create the aforementioned directory, press `Yes`. Choose `Ninja` from `Specify the generator for this project`, choose `Specify toolchain file for cross-compiling` then press `Next`. Specify the toolchain file which is located in `stk-code\cmake\Toolchain-llvm-mingw.cmake` and press `Finish`. If no error appears then press 'Generate'
9. Once inside the build directory using command line `cmd.exe` or PowerShell:
```cmd
C:\llvm-mingw\ninja.exe
```
SuperTuxKart can now be run as `bin\supertuxkart.exe`.
## Building SuperTuxKart on macOS
@@ -184,94 +230,26 @@ SuperTuxKart can now be run as `bin\Debug\supertuxkart.exe` or `bin\Release\supe
Install the developer tools, either from the OS X Install DVD or from Apple's website.
If you have never built anything before, you have create `/usr/local/include/` first:
Download `dependencies-macosx.tar.xz` from `Assets` section [here](https://github.com/supertuxkart/dependencies/releases) and extract it inside stk-code directory, use `preview` version for git stk-code.
```bash
sudo mkdir -p /usr/local/include/
```
Symlink the `include`-folder of OpenGL framework to `/usr/local/include/GL` (Unix programs have an easier time finding it this way):
```bash
sudo ln -s /System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/ /usr/local/include/GL
```
On OS X 10.9.5, you might need the following workaround:
```bash
sudo ln -s `xcrun --show-sdk-path`/usr/include/ /usr/include
sudo ln -s `xcrun --show-sdk-path`/System/Library/Frameworks/OpenGL.framework/Headers/ /usr/local/include/OpenGL
```
The first link is required in order to find libcurl, the second to find opengl.
### STK 0.10 or later (or latest git)
Install homebrew (https://brew.sh/)
Install all of the dependencies using homebrew:
Build STK
```bash
cd /path/to/stk-code
brew bundle
```
Build STK
```bash
mkdir cmake_build
cd cmake_build
CMAKE_PREFIX_PATH=/usr/local/opt/freetype/:/usr/local/opt/curl/:/usr/local/opt/libogg/:/usr/local/opt/libogg/:/usr/local/opt/libvorbis/:/usr/local/opt/glew/:/usr/local/opt/fribidi/ cmake .. -DFREETYPE_INCLUDE_DIRS=/usr/local/opt/freetype/include/freetype2/ -DUSE_SYSTEM_GLEW=1 -DOPENAL_INCLUDE_DIR=/usr/local/opt/openal-soft/include/ -DOPENAL_LIBRARY=/usr/local/opt/openal-soft/lib/libopenal.dylib -DFREETYPE_LIBRARY=/usr/local/opt/freetype/lib/libfreetype.dylib
cmake .. -DCMAKE_FIND_ROOT_PATH=$(pwd)/../dependencies-macosx -DUSE_CRYPTO_OPENSSL=FALSE
make
```
Add ` -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9` for 10.9 compatibility.
#### (Optional) packaging for distribution
By default, the executable that is produced is not ready for distribution. Install https://github.com/auriamg/macdylibbundler and run:
By default, the executable that is produced is not ready for distribution. Install <https://github.com/auriamg/macdylibbundler> and run:
```bash
dylibbundler -od -b -x ./bin/SuperTuxKart.app/Contents/MacOS/supertuxkart -d ./bin/SuperTuxKart.app/Contents/libs/ -p @executable_path/../libs/
```
Afterwards, copy the contents of `stk-assets` into `/SuperTuxKart.app/Contents/Resources/data`.
### STK 0.9.3 or earlier
Download pre-built dependencies from [here](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/OSX/) and put the frameworks in [hard disk root]/Library/Frameworks
Building with clang:
```bash
cd /path/to/stk-code
mkdir cmake_build
cd cmake_build
cmake ..
make
```
Building with GCC:
```bash
cd /path/to/stk-code
mkdir cmake_build
cd cmake_build
cmake .. -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc
make
```
Building on 10.10 with 10.9 compatibility:
```bash
cmake .. -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9
```
#### Xcode
Place an additional copy of the dependencies into `Users/<YOUR_USERNAME>/Library/Frameworks`.
Then cd to your cloned stk-code directory and execute the following commands:
```bash
mkdir xcode_build && cd xcode_build
cmake .. -GXcode
```
Use Finder to navigate to your stk-code/xcode_build folder and open the newly generated Xcode project (`SuperTuxKart.xcodeproj`).
You can then build the project in Xcode using Product -> Build
Note: Xcode is much less well tested than makefiles, so there may be issues when trying to use Xcode.

View File

@@ -4,14 +4,16 @@
First of all, you can compile STK with `-DSERVER_ONLY=ON` which will produce a GUI-less STK binary optimized for size and memory usage, useful for situation like in VPS.
The dependencies for RHEL/CentOS 7 are installed with:
```bash
yum install wget; cd /tmp; wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm; rpm -Uvh epel-release*rpm
yum install gcc-c++ cmake openssl-devel libcurl-devel zlib-devel enet gcc-c++
yum install wget; cd /tmp; wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm; rpm -Uvh epel-release*rpm
yum install gcc-c++ cmake openssl-devel libcurl-devel zlib-devel enet
```
### Hosting WAN (public internet) server
You are required to have an stk online account first, go [here](https://online.supertuxkart.net/register.php) for registration.
It is recommended you have a saved user in your computer to allow hosting multiple servers simultaneously with the same account, if you have a fresh STK installation, first run:
If you intend to keep your server always on (24x7) you are required to implement port forward / direct connection with NAT penetration in your network, we will regularly remove any servers not following this rule.
`supertuxkart --init-user --login=your_registered_name --password=your_password`
After that you should see `Done saving user, leaving` in terminal if it successfully logged in.
@@ -21,6 +23,7 @@ Than you can just run:
`supertuxkart --server-config=your_config.xml --network-console`
It will create that xml configuration file if not found in current directory, you can type `quit` in terminal, than you can edit that file for further configuration as required.
` --network-console` should not be used if you run supertuxkart server later with systemd service, see issue [#4299](https://github.com/supertuxkart/stk-code/issues/4299).
The current server configuration xml looks like this:
```xml
@@ -28,9 +31,9 @@ The current server configuration xml looks like this:
<server-config version="6" >
<!-- Name of server, encode in XML if you want to use unicode characters. -->
<server-name value="stk server" />
<server-name value="STK Server" />
<!-- Port used in server, if you specify 0, it will use the server port specified in stk_config.xml or if random-server-port is enabled in user config, than any port. STK will auto change to random port if the port you specify failed to be bound. -->
<!-- Port used in server, if you specify 0, it will use the server port specified in stk_config.xml. If you wish to use a random port, set random-server-port to '1' in user config. STK will automatically switch to a random port if the port you specify fails to be bound. -->
<server-port value="0" />
<!-- Game mode in server, 0 is normal race (grand prix), 1 is time trial (grand prix), 3 is normal race, 4 time trial, 6 is soccer, 7 is free-for-all and 8 is capture the flag. Notice: grand prix server doesn't allow for players to join and wait for ongoing game. -->
@@ -51,33 +54,39 @@ The current server configuration xml looks like this:
<!-- Enable network console, which can do for example kickban. -->
<enable-console value="false" />
<!-- Maximum number of players on the server, setting it more than 8 will have performance degradation. -->
<!-- Maximum number of players on the server, setting this to a value greater than 8 can cause performance degradation. -->
<server-max-players value="8" />
<!-- Password for private server, empty for a public server. -->
<!-- Password for private server, leave empty for a public server. -->
<private-server-password value="" />
<!-- Message of today shown in lobby, you can enter encoded XML words here or a file.txt and let STK load it. -->
<motd value="" />
<!-- If off this server will ignore chat message from all players. -->
<!-- If this value is set to false, the server will ignore chat messages from all players. -->
<chat value="true" />
<!-- Allow players to vote track to play, if off server will pick next track to play randomly. -->
<!-- If client sends more than chat-consecutive-interval / 2 chats within this value (read in seconds), it will be ignore, negative value to disable. -->
<chat-consecutive-interval value="8" />
<!-- Allow players to vote for which track to play. If this value is set to false, the server will randomly pick the next track to play. -->
<track-voting value="true" />
<!-- Timeout in seconds for selecting karts and (or) voting tracks in server, you may want to use a lower value if you have track-voting off. -->
<voting-timeout value="30" />
<!-- Timeout in seconds for validation of clients in wan, currently stk will use the stk-addons server to share AES key between client and server. -->
<!-- Timeout in seconds for validation of clients in wan, currently STK will use the stk-addons server to share AES key between the client and server. -->
<validation-timeout value="20" />
<!-- By default WAN server will always validate player and LAN will not, disable it to allow non-validated player in WAN. -->
<validating-player value="true" />
<!-- Disable it to turn off all stun related code in server, it allows saving server resource if your server is not behind a firewall. -->
<!-- Disable it to turn off all stun related code in server, it allows for saving of server resources if your server is not behind a firewall. -->
<firewalled-server value="true" />
<!-- Enable to allow IPv6 connection if you have a public IPv6 address. STK currently uses dual-stack mode which requires server to have both IPv4 and IPv6 and listen to same port. If STK detects your server has no public IPv6 address or port differs between IPv4 and IPv6 then it will use IPv4 only socket. For system which doesn't support dual-stack socket (like OpenBSD) you may fail to be connected by IPv4 clients. You can override the detection in config.xml at supertuxkart config-0.10 folder, with default-ip-type option. -->
<ipv6-connection value="true" />
<!-- No server owner in lobby which can control the starting of game or kick any players. -->
<owner-less value="false" />
@@ -96,20 +105,20 @@ The current server configuration xml looks like this:
<!-- Automatically end linear race game after 1st player finished for some time (currently his finished time * 0.25 + 15.0). -->
<auto-end value="false" />
<!-- Enable team choosing in lobby in team game (soccer and CTF). If owner-less is enabled and live-players is not enabled, than this option is always disabled. -->
<!-- Enable team choosing in lobby in team game (soccer and CTF). If owner-less is enabled and live-spectate is not enabled, than this option is always disabled. -->
<team-choosing value="true" />
<!-- If strict-players is on, no duplicated online id or split screen players are allowed, which can prevent someone using more than 1 network AI with this server. -->
<strict-players value="false" />
<!-- Server will submit ranking to stk addons server for linear race games, you require permission for that. validating-player, auto-end, strict-player and owner-less will be turned on. -->
<!-- Server will submit ranking to stk-addons server for linear race games, you require permission for that. validating-player, auto-end, strict-player and owner-less will be turned on. -->
<ranked value="false" />
<!-- If true, the server owner can config the difficulty and game mode in the GUI of lobby. This option cannot be used with owner-less or grand prix server, and will be automatically turned on if the server was created using the in-game GUI. The changed difficulty and game mode will not be saved in this config file. -->
<server-configurable value="false" />
<!-- If true, players can live join or spectate the in-progress game. Currently live joining is only available if the current game mode used in server is FFA, CTF or soccer, also no addon karts will be available for players to choose, and official-karts-threshold will be made 1.0. -->
<live-players value="true" />
<!-- If true, players can live join or spectate the in-progress game. Currently live joining is only available if the current game mode used in server is FFA, CTF or soccer, also official-karts-threshold will be made 1.0. If false addon karts will use their original hitbox other than tux, all players having it restriction applies. -->
<live-spectate value="true" />
<!-- Time in seconds when a flag is dropped a by player in CTF returning to its own base. -->
<flag-return-timeout value="20" />
@@ -132,36 +141,65 @@ The current server configuration xml looks like this:
<!-- Value used by server to automatically estimate each game time. For races, it decides the lap of each race in network game, if more than 0.0f, the number of lap of each track vote in linear race will be determined by max(1.0f, auto-game-time-ratio * default lap of that track). For soccer if more than 0.0f, for time limit game it will be auto-game-time-ratio * soccer-time-limit in UserConfig, for goal limit game it will be auto-game-time-ratio * numgoals in UserConfig, -1 to disable for all. -->
<auto-game-time-ratio value="-1" />
<!-- Maximum ping allowed for a player (in ms), it's recommended to use default value if live-players is on. -->
<!-- Maximum ping allowed for a player (in ms), it's recommended to use default value if live-spectate is on. -->
<max-ping value="300" />
<!-- Tolerance of jitter in network allowed (in ms), it's recommended to use default value if live-players is on. -->
<!-- Tolerance of jitter in network allowed (in ms), it's recommended to use default value if live-spectate is on. -->
<jitter-tolerance value="100" />
<!-- Kick players whose ping is above max-ping. -->
<kick-high-ping-players value="false" />
<!-- Allow players exceeding max-ping to have a playable game, if enabled kick-high-ping-players will be disabled, please also use a default value for max-ping and jitter-tolerance with it. -->
<high-ping-workaround value="true" />
<!-- Kick idle player which has no network activity to server for more than some seconds during game, unless he has finished the race. Negative value to disable, and this option will always be disabled for LAN server. -->
<kick-idle-player-seconds value="60" />
<!-- Set how many states the server will send per second, the higher this value, the more bandwidth requires, also each client will trigger more rewind, which clients with slow device may have problem playing this server, use the default value is recommended. -->
<state-frequency value="10" />
<!-- ip: IP in X.X.X.X/Y (CIDR) format for banning, use Y of 32 for a specific ip, expired-time: unix timestamp to expire, -1 (uint32_t max) for a permanent ban. -->
<server-ip-ban-list>
<ban ip="0.0.0.0/0" expired-time="0"/>
</server-ip-ban-list>
<!-- Use sql database for handling server stats and maintenance, STK needs to be compiled with sqlite3 supported. -->
<sql-management value="false" />
<!-- online-id: online id for banning, expired-time: unix timestamp to expire, -1 (uint32_t max) for a permanent ban. -->
<server-online-id-ban-list>
<ban online-id="0" expired-time="0"/>
</server-online-id-ban-list>
<!-- Database filename for sqlite to use, it can be shared for all servers created in this machine, and STK will create specific table for each server. You need to create the database yourself first, see NETWORKING.md for details -->
<database-file value="stkservers.db" />
<!-- Specified in millisecond for maximum time waiting in sqlite3_busy_handler. You may need a higher value if your database is shared by many servers or having a slow hard disk. -->
<database-timeout value="1000" />
<!-- IPv4 ban list table name, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. STK can auto kick active peer from ban list (update per minute) whichallows live kicking peer by inserting record to database. -->
<ip-ban-table value="ip_ban" />
<!-- IPv6 ban list table name, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. STK can auto kick active peer from ban list (update per minute) which allows live kicking peer by inserting record to database. -->
<ipv6-ban-table value="ipv6_ban" />
<!-- Online ID ban list table name, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. STK can auto kick active peer from ban list (update per minute) which allows live kicking peer by inserting record to database. -->
<online-id-ban-table value="online_id_ban" />
<!-- Player reports table name, which will be written when a player reports player in the network user dialog, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. -->
<player-reports-table value="player_reports" />
<!-- Days to keep player reports, older than that will be auto cleared, 0 to keep them forever. -->
<player-reports-expired-days value="3" />
<!-- IP geolocation table, you only need this table if you want to geolocate IP from non-stk-addons connection, as all validated players connecting from stk-addons will provide the location info, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. -->
<ip-geolocation-table value="ip_mapping" />
<!-- IPv6 geolocation table, you only need this table if you want to geolocate IP from non-stk-addons connection, as all validated players connecting from stk-addons will provide the location info, you need to create the table first, see NETWORKING.md for details, empty to disable. This table can be shared for all servers if you use the same name. -->
<ipv6-geolocation-table value="ipv6_mapping" />
<!-- If true this server will auto add / remove AI connected with network-ai=x, which will kick N - 1 bot(s) where N is the number of human players. Only use this for non-GP racing server. -->
<ai-handling value="false" />
<!-- If true this server will allow AI instance to be connected from anywhere. (other than LAN network only) -->
<ai-anywhere value="false" />
</server-config>
```
At the moment STK has a list of STUN servers for NAT penetration which allows players or servers behind a firewall or router to be able to connect to each other, but in case it doesn't work, you have to manually disable the firewall or port forward the port(s) used by the STK.
At the moment STK has a list of STUN servers for NAT penetration which allows players or servers behind a firewall or router to be able to connect to each other, but in case it doesn't work, you have to manually disable the firewall or port forward the port(s) used by STK.
By default STK servers use port `2759`. For example, in Ubuntu based distributions, run the following command to disable the firewall on that port:
`sudo ufw allow 2759`
@@ -175,7 +213,9 @@ Everything is basically the same as WAN one, except you don't need an stk online
`supertuxkart --server-config=your_config.xml --lan-server=your_server_name --network-console`
In LAN network it is required that the server and server discovery port is connectable by clients directly, no NAT penetration will be done in LAN.
For LAN server it is required that the server and server discovery port is connectable by clients directly, no NAT penetration will be done in LAN.
LAN server can be connected too by typing your server public address (with port) in ```Enter server address``` dialog without relying on stk-addons.
------
After the first time configuration, you can just start the server with the command:
@@ -185,20 +225,142 @@ After the first time configuration, you can just start the server with the comma
You can find out that directory location [here (See Where is the configuration stored?)](https://supertuxkart.net/FAQ)
## Testing server
There is a network AI tester in STK which can use AI on player controller for server hosting linear races game mode, which helps automating the testing for servers, to enable it use:
There is a network AI tester in STK which can use AI on player controller for server hosting linear races game mode, which helps automating the testing for servers, to enable it use it on lan server:
`supertuxkart --connect-now=x.x.x.x:y --server-id=id --network-ai=n --auto-connect --no-graphics`
`supertuxkart --connect-now=x.x.x.x:y --network-ai=n --no-graphics`
x.x.x.x:y is your server ip address with its port, id is the id field of server-info in STK server xml list, omit it if you are testing LAN server, n is the number of AI you want to create.
Remove `--no-graphics` if you want to see the AI racing. You can also run network AI tester in server-only build of STK.
You can see STK server xml list [here](https://online.supertuxkart.net/api/v2/server/get-all).
With the network AI tester, it's easier to for example simulate high-loaded servers or bad networks (ones with high ping and/or packet loss).
You can remove `--auto-connect` if you have another client which can control the starting of games in server, or you can consider enable owner-less mode on server so the games on server can keep going. Remove `--no-graphics` if you want to see the AI racing. You can also run network AI tester in server-only build of STK.
Tested on a Raspberry Pi 3 Model B+, if you have 8 players connected to a server hosted on it, the usage of a single CPU core is ~60% and there are ~60MB of memory usage for game with heavy tracks like Cocoa Temple or Candela City on the server, you can use the above figures to estimate how many STK servers can be hosted on the same computer.
With the network AI tester, it's easier to for example simulate high-loaded servers or bad (high ping with packet loss) network.
For bad network simulation, we recommend `network traffic control` by Linux kernel, see [here](https://wiki.linuxfoundation.org/networking/netem) for details.
Tested on a Raspberry Pi 3 Model B+, if you have 8 players connected to a server hosted on it, the usage of a single CPU core is ~60% and there are ~60MB of memory usage for game with heavy tracks like Cocoa Temple or Candela City on the server, you can use the above figures to consider number of STK servers hosting on a same computer.
You will have the best gaming experience by choosing a server where all players have less than 100ms ping with no packet loss.
For bad network simulation, we recommend `network traffic control` by linux kernel, see [here](https://wiki.linuxfoundation.org/networking/netem) for details.
## Server management (Since 1.1)
You have the best gaming experience when choosing server having all players less than 100ms ping with no packet loss.
Currently STK uses sqlite (if building with sqlite3 on) for server management with the following functions at the moment:
1. Server statistics
2. IP / online ID ban list
3. Player reports
4. IPv4 and IPv6 geolocation
You need to create a database in sqlite first, run `sqlite3 stkservers.db` in the folder where (all) your server_config.xml(s) located.
A table named `v(server database version)_(your_server_config_filename_without_.xml_extension)_stats` will also be created in your database if one does not exist.:
```sql
CREATE TABLE IF NOT EXISTS (table name above)
(
host_id INTEGER UNSIGNED NOT NULL PRIMARY KEY, -- Unique host id in STKHost of each connection session for a STKPeer
ip INTEGER UNSIGNED NOT NULL, -- IP decimal of host
ipv6 TEXT NOT NULL DEFAULT '', -- IPv6 (if exists) in string of host (only created if IPv6 server)
port INTEGER UNSIGNED NOT NULL, -- Port of host
online_id INTEGER UNSIGNED NOT NULL, -- Online if of the host (0 for offline account)
username TEXT NOT NULL, -- First player name in the host (if the host has splitscreen player)
player_num INTEGER UNSIGNED NOT NULL, -- Number of player(s) from the host, more than 1 if it has splitscreen player
country_code TEXT NULL DEFAULT NULL, -- 2-letter country code of the host
version TEXT NOT NULL, -- SuperTuxKart version of the host
os TEXT NOT NULL, -- Operating system of the host
connected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when connected
disconnected_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time when disconnected (saved when disconnected)
ping INTEGER UNSIGNED NOT NULL DEFAULT 0 -- Ping of the host
) WITHOUT ROWID;
```
STK will also create the following default views from the stats table:
`*_full_stats`
Full stats with ip in human readable format and time played of each players in minutes.
`*_current_players`
Current players in server with ip in human readable format and time played of each players in minutes.
`*_player_stats`
All players with online id and username with their time played stats in this server since creation of this database.
If sqlite supports window functions (since 3.25), it will include last session player info (ip, country, ping...).
A empty table named `v(server database version)_countries` will also be created in your database if not exists:
```sql
CREATE TABLE IF NOT EXISTS (table name above)
(
country_code TEXT NOT NULL PRIMARY KEY UNIQUE, -- Unique 2-letter country code
country_flag TEXT NOT NULL, -- Unicode country flag representation of 2-letter country code
country_name TEXT NOT NULL -- Readable name of this country
) WITHOUT ROWID;
```
If you want to see flags and readable names of countries in the above views, you need to initialize `v(server database version)_countries` table, check [this script](tools/generate-countries-table.py).
For IPv4 and online ID ban list, player reports or IP mapping, you need to create one yourself:
```sql
CREATE TABLE ip_ban
(
ip_start INTEGER UNSIGNED NOT NULL UNIQUE, -- Starting of ip decimal for banning (inclusive)
ip_end INTEGER UNSIGNED NOT NULL UNIQUE, -- Ending of ip decimal for banning (inclusive)
starting_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Starting time of this banning entry to be effective
expired_days REAL NULL DEFAULT NULL, -- Days for this banning to be expired, use NULL for a permanent ban
reason TEXT NOT NULL DEFAULT '', -- Banned reason shown in user stk menu, can be empty
description TEXT NOT NULL DEFAULT '', -- Private description for server admin
trigger_count INTEGER UNSIGNED NOT NULL DEFAULT 0, -- Number of banning triggered by this ban entry
last_trigger TIMESTAMP NULL DEFAULT NULL -- Latest time this banning entry was triggered
);
CREATE TABLE ipv6_ban
(
ipv6_cidr TEXT NOT NULL UNIQUE, -- IPv6 CIDR range for banning (for example 2001::/64), use /128 for a specific ip
starting_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Starting time of this banning entry to be effective
expired_days REAL NULL DEFAULT NULL, -- Days for this banning to be expired, use NULL for a permanent ban
reason TEXT NOT NULL DEFAULT '', -- Banned reason shown in user stk menu, can be empty
description TEXT NOT NULL DEFAULT '', -- Private description for server admin
trigger_count INTEGER UNSIGNED NOT NULL DEFAULT 0, -- Number of banning triggered by this ban entry
last_trigger TIMESTAMP NULL DEFAULT NULL -- Latest time this banning entry was triggered
);
CREATE TABLE online_id_ban
(
online_id INTEGER UNSIGNED NOT NULL UNIQUE, -- Online id from STK addons database for banning
starting_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Starting time of this banning entry to be effective
expired_days REAL NULL DEFAULT NULL, -- Days for this banning to be expired, use NULL for a permanent ban
reason TEXT NOT NULL DEFAULT '', -- Banned reason shown in user stk menu, can be empty
description TEXT NOT NULL DEFAULT '', -- Private description for server admin
trigger_count INTEGER UNSIGNED NOT NULL DEFAULT 0, -- Number of banning triggered by this ban entry
last_trigger TIMESTAMP NULL DEFAULT NULL -- Latest time this banning entry was triggered
);
CREATE TABLE player_reports
(
server_uid TEXT NOT NULL, -- Report from which server unique id (config filename)
reporter_ip INTEGER UNSIGNED NOT NULL, -- IP decimal of player who reports
reporter_ipv6 TEXT NOT NULL DEFAULT '', -- IPv6 (if exists) in string of player who reports (only needed for IPv6 server)
reporter_online_id INTEGER UNSIGNED NOT NULL, -- Online id of player who reports, 0 for offline player
reporter_username TEXT NOT NULL, -- Player name who reports
reported_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Time of reporting
info TEXT NOT NULL, -- Report info by reporter
reporting_ip INTEGER UNSIGNED NOT NULL, -- IP decimal of player being reported
reporting_ipv6 TEXT NOT NULL DEFAULT '', -- IPv6 (if exists) in string of player who reports (only needed for IPv6 server)
reporting_online_id INTEGER UNSIGNED NOT NULL, -- Online id of player being reported, 0 for offline player
reporting_username TEXT NOT NULL -- Player name being reported
);
CREATE TABLE ip_mapping
(
ip_start INTEGER UNSIGNED NOT NULL PRIMARY KEY UNIQUE, -- IP decimal start
ip_end INTEGER UNSIGNED NOT NULL UNIQUE, -- IP decimal end
latitude REAL NOT NULL, -- Latitude of this IP range
longitude REAL NOT NULL, -- Longitude of this IP range
country_code TEXT NOT NULL -- 2-letter country code
) WITHOUT ROWID;
CREATE TABLE ipv6_mapping
(
ip_start INTEGER UNSIGNED NOT NULL PRIMARY KEY UNIQUE, -- IP decimal (upper 64bit) start
ip_end INTEGER UNSIGNED NOT NULL UNIQUE, -- IP decimal (upper 64bit) end
latitude REAL NOT NULL, -- Latitude of this IP range
longitude REAL NOT NULL, -- Longitude of this IP range
country_code TEXT NOT NULL -- 2-letter country code
)
```
For initialization of `ip_mapping` table, check [this script](tools/generate-ip-mappings.py).

View File

@@ -1,23 +1,30 @@
# SuperTuxKart
[![Build Status](https://travis-ci.org/supertuxkart/stk-code.svg?branch=master)](https://travis-ci.org/supertuxkart/stk-code)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/supertuxkart/stk-code?svg=true&branch=master)](https://ci.appveyor.com/project/supertuxkart/stk-code)
[![#supertuxkart on the freenode IRC network](https://img.shields.io/badge/freenode-%23supertuxkart-brightgreen.svg)](https://webchat.freenode.net/?channels=supertuxkart)
[![Linux build status](https://github.com/supertuxkart/stk-code/actions/workflows/linux.yml/badge.svg)](https://github.com/supertuxkart/stk-code/actions/workflows/linux.yml)
[![Apple build status](https://github.com/supertuxkart/stk-code/actions/workflows/apple.yml/badge.svg)](https://github.com/supertuxkart/stk-code/actions/workflows/apple.yml)
[![Windows build status](https://github.com/supertuxkart/stk-code/actions/workflows/windows.yml/badge.svg)](https://github.com/supertuxkart/stk-code/actions/workflows/windows.yml)
[![Switch build status](https://github.com/supertuxkart/stk-code/actions/workflows/switch.yml/badge.svg)](https://github.com/supertuxkart/stk-code/actions/workflows/switch.yml)
[![#supertuxkart on the libera IRC network](https://img.shields.io/badge/libera-%23supertuxkart-brightgreen.svg)](https://web.libera.chat/?channels=#supertuxkart)
SuperTuxKart is a free kart racing game. It focuses on fun and not on realistic kart physics. Instructions can be found on the in-game help page.
The SuperTuxKart homepage can be found at <https://supertuxkart.net/>. There is also our [FAQ](https://supertuxkart.net/FAQ) and information on how get in touch with the [community](https://supertuxkart.net/Community)
The SuperTuxKart homepage can be found at <https://supertuxkart.net/>. There is also our [FAQ](https://supertuxkart.net/FAQ) and information on how get in touch with the [community](https://supertuxkart.net/Community).
Latest release binaries can be found [here](https://github.com/supertuxkart/stk-code/releases/latest), and preview release [here](https://github.com/supertuxkart/stk-code/releases/preview).
## Hardware Requirements
To run SuperTuxKart, make sure that your computer's specifications are equal or higher than the following specifications:
* A graphics card capable of 3D rendering - NVIDIA GeForce 8 series and newer (GeForce 8100 or newer), AMD/ATI Radeon HD 4000 series and newer, Intel HD Graphics 3000 and newer. OpenGL >= 3.3
* You should have a CPU that's running at 1 GHz or faster.
* A graphics card capable of 3D rendering - NVIDIA GeForce 470 GTX, AMD Radeon 6870 HD series card or Intel HD Graphics 4000 and newer. OpenGL >= 3.3
* You should have a dual-core CPU that's running at 1 GHz or faster.
* You'll need at least 512 MB of free VRAM (video memory).
* Minimum disk space: 800 MB
* System memory: 1 GB
* Minimum disk space: 700 MB
* Ideally, you'll want a joystick with at least 6 buttons.
## License
The software is released under the GNU General Public License (GPL) which can be found in the file [`COPYING`](/COPYING) in the same directory as this file. Information about the licenses for the artwork is contained in `data/licenses`.
The software is released under the GNU General Public License (GPL) which can be found in the file [`COPYING`](/COPYING) in the same directory as this file.
---
## 3D coordinates
A reminder for those who are looking at the code and 3D models:

View File

@@ -4,77 +4,112 @@ include $(CLEAR_VARS)
# OpenAL
LOCAL_MODULE := openal
LOCAL_SRC_FILES := obj/openal/libopenal.a
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/openal/libopenal.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# OGG
LOCAL_MODULE := ogg
LOCAL_SRC_FILES := obj/libogg/src/.libs/libogg.a
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/libogg/libogg.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# Vorbis
LOCAL_MODULE := vorbis
LOCAL_SRC_FILES := obj/libvorbis/lib/.libs/libvorbis.a
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/libvorbis/lib/libvorbis.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# Vorbisfile
LOCAL_MODULE := vorbisfile
LOCAL_SRC_FILES := obj/libvorbis/lib/.libs/libvorbisfile.a
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/libvorbis/lib/libvorbisfile.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# CURL
LOCAL_MODULE := curl
LOCAL_SRC_FILES := obj/curl/lib/.libs/libcurl.a
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/curl/lib/libcurl.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# libcrypto
LOCAL_MODULE := libcrypto
LOCAL_SRC_FILES := obj/openssl/libcrypto.a
# libmbedtls
LOCAL_MODULE := libmbedtls
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/mbedtls/library/libmbedtls.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# libssl
LOCAL_MODULE := libssl
LOCAL_SRC_FILES := obj/openssl/libssl.a
# libmbedcrypto
LOCAL_MODULE := libmbedcrypto
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/mbedtls/library/libmbedcrypto.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# libmbedx509
LOCAL_MODULE := libmbedx509
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/mbedtls/library/libmbedx509.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# JPEG
LOCAL_MODULE := jpeglib
LOCAL_SRC_FILES := obj/jpeglib/libjpeglib.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# Freetype
LOCAL_MODULE := freetype
LOCAL_SRC_FILES := obj/freetype/objs/.libs/libfreetype.a
LOCAL_MODULE := libjpeg
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/libjpeg/libjpeg.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# zlib
LOCAL_MODULE := zlib
LOCAL_SRC_FILES := obj/zlib/libz.a
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/zlib/libz.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# PNG
LOCAL_MODULE := png
LOCAL_SRC_FILES := obj/libpng/libpng.a
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/libpng/libpng.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# Freetype
LOCAL_MODULE := freetype
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/freetype/build/libfreetype.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# Harfbuzz
LOCAL_MODULE := harfbuzz
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/harfbuzz/build/libharfbuzz.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# shaderc
LOCAL_MODULE := shaderc
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/shaderc/libshaderc/libshaderc_combined.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# libsquish
LOCAL_MODULE := libsquish
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/libsquish/libsquish.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
# astc-encoder
LOCAL_MODULE := libastcenc
LOCAL_SRC_FILES := deps-$(TARGET_ARCH_ABI)/astc-encoder/Source/libastcenc.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
@@ -84,6 +119,11 @@ LOCAL_MODULE := ifaddrs
LOCAL_PATH := .
LOCAL_SRC_FILES := ../lib/ifaddrs/ifaddrs.c
LOCAL_CFLAGS := -I../lib/ifaddrs
# Starting NDK21 it enables NEON by default on 32-bit ARM target
# Disable it to support more phones
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
@@ -95,6 +135,9 @@ LOCAL_CPP_FEATURES += rtti exceptions
LOCAL_SRC_FILES := $(wildcard ../lib/angelscript/source/*.S) \
$(wildcard ../lib/angelscript/source/*.cpp)
LOCAL_CFLAGS := -I../lib/angelscript/source/
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
@@ -104,7 +147,10 @@ LOCAL_MODULE := enet
LOCAL_PATH := .
LOCAL_CPP_FEATURES += rtti
LOCAL_SRC_FILES := $(wildcard ../lib/enet/*.c)
LOCAL_CFLAGS := -I../lib/enet/include/ -DHAS_SOCKLEN_T
LOCAL_CFLAGS := -I../lib/enet/include/ -DHAS_SOCKLEN_T -DENABLE_IPV6
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
@@ -116,6 +162,85 @@ LOCAL_CPP_FEATURES += rtti
LOCAL_SRC_FILES := $(wildcard ../lib/bullet/src/*/*.cpp) \
$(wildcard ../lib/bullet/src/*/*/*.cpp)
LOCAL_CFLAGS := -I../lib/bullet/src/
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
# Graphics utils
LOCAL_MODULE := graphics_utils
LOCAL_PATH := .
LOCAL_CPP_FEATURES += rtti
LOCAL_SRC_FILES := $(wildcard ../lib/graphics_utils/mipmap/*.c)
LOCAL_CFLAGS := -I../lib/graphics_utils/mipmap \
-I../lib/simd_wrapper
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
# Graphics engine
LOCAL_MODULE := graphics_engine
LOCAL_PATH := .
LOCAL_CPP_FEATURES += rtti exceptions
LOCAL_SRC_FILES := $(wildcard ../lib/graphics_engine/src/*.c) \
$(wildcard ../lib/graphics_engine/src/*.cpp)
LOCAL_CFLAGS := -DENABLE_LIBASTCENC \
-I../lib/graphics_engine/include \
-I../lib/graphics_utils \
-I../lib/sdl2/include/ \
-I../lib/bullet/src/ \
-I../lib/irrlicht/include/ \
-I../lib/shaderc/libshaderc/include \
-I../lib/libsquish \
-Ideps-$(TARGET_ARCH_ABI)/astc-encoder/Source
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
LOCAL_STATIC_LIBRARIES := shaderc libsquish libastcenc
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
# MCPP
LOCAL_MODULE := mcpp
LOCAL_PATH := .
LOCAL_CPP_FEATURES += rtti
LOCAL_SRC_FILES := $(wildcard ../lib/mcpp/*.c)
LOCAL_CFLAGS := -DMCPP_LIB -DHAVE_CONFIG_H
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
# SheenBidi
LOCAL_MODULE := sheenbidi
LOCAL_PATH := .
LOCAL_CPP_FEATURES += rtti
LOCAL_SRC_FILES := $(wildcard ../lib/sheenbidi/Source/*.c)
LOCAL_CFLAGS := -I../lib/sheenbidi/Headers
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
# tinygettext
LOCAL_MODULE := tinygettext
LOCAL_PATH := .
LOCAL_CPP_FEATURES += rtti exceptions
LOCAL_SRC_FILES := $(wildcard ../lib/tinygettext/src/*.cpp)
LOCAL_CFLAGS := -I../lib/tinygettext/include -DDISABLE_ICONV
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
@@ -123,21 +248,81 @@ include $(CLEAR_VARS)
# Irrlicht
LOCAL_MODULE := irrlicht
LOCAL_PATH := .
LOCAL_CPP_FEATURES += rtti
LOCAL_SRC_FILES := $(wildcard ../lib/irrlicht/source/Irrlicht/*.cpp) \
$(wildcard ../lib/irrlicht/source/Irrlicht/Android/*.cpp) \
../lib/irrlicht/source/Irrlicht/stk_android_native_app_glue.c
LOCAL_CPP_FEATURES += rtti exceptions
LOCAL_SRC_FILES := $(wildcard ../lib/irrlicht/source/Irrlicht/*.cpp)
LOCAL_CFLAGS := -I../lib/irrlicht/source/Irrlicht/ \
-I../lib/irrlicht/include/ \
-Iobj/jpeglib/ \
-Iobj/libpng/ \
-Iobj/zlib/
-I../src \
-Ideps-$(TARGET_ARCH_ABI)/libjpeg/ \
-Ideps-$(TARGET_ARCH_ABI)/libpng/ \
-Ideps-$(TARGET_ARCH_ABI)/zlib/ \
-I../lib/sdl2/include/ \
-I../lib/graphics_engine/include \
-DMOBILE_STK \
-DANDROID_PACKAGE_CALLBACK_NAME=$(PACKAGE_CALLBACK_NAME)
LOCAL_CPPFLAGS := -std=gnu++0x
LOCAL_STATIC_LIBRARIES := jpeglib png zlib
LOCAL_STATIC_LIBRARIES := libjpeg png zlib
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
# SDL2
LOCAL_MODULE := SDL2
LOCAL_PATH := .
LOCAL_SRC_FILES := $(wildcard ../lib/sdl2/src/*.c) \
$(wildcard ../lib/sdl2/src/audio/*.c) \
$(wildcard ../lib/sdl2/src/audio/android/*.c) \
$(wildcard ../lib/sdl2/src/audio/dummy/*.c) \
$(wildcard ../lib/sdl2/src/audio/aaudio/*.c) \
$(wildcard ../lib/sdl2/src/audio/openslES/*.c) \
../lib/sdl2/src/atomic/SDL_atomic.c.arm \
../lib/sdl2/src/atomic/SDL_spinlock.c.arm \
$(wildcard ../lib/sdl2/src/core/android/*.c) \
$(wildcard ../lib/sdl2/src/cpuinfo/*.c) \
$(wildcard ../lib/sdl2/src/dynapi/*.c) \
$(wildcard ../lib/sdl2/src/events/*.c) \
$(wildcard ../lib/sdl2/src/file/*.c) \
$(wildcard ../lib/sdl2/src/haptic/*.c) \
$(wildcard ../lib/sdl2/src/haptic/android/*.c) \
$(wildcard ../lib/sdl2/src/hidapi/*.c) \
$(wildcard ../lib/sdl2/src/hidapi/android/*.cpp) \
$(wildcard ../lib/sdl2/src/joystick/*.c) \
$(wildcard ../lib/sdl2/src/joystick/android/*.c) \
$(wildcard ../lib/sdl2/src/joystick/hidapi/*.c) \
$(wildcard ../lib/sdl2/src/joystick/virtual/*.c) \
$(wildcard ../lib/sdl2/src/loadso/dlopen/*.c) \
$(wildcard ../lib/sdl2/src/locale/android/*.c) \
$(wildcard ../lib/sdl2/src/locale/*.c) \
$(wildcard ../lib/sdl2/src/misc/*.c) \
$(wildcard ../lib/sdl2/src/misc/android/*.c) \
$(wildcard ../lib/sdl2/src/power/*.c) \
$(wildcard ../lib/sdl2/src/power/android/*.c) \
$(wildcard ../lib/sdl2/src/filesystem/android/*.c) \
$(wildcard ../lib/sdl2/src/sensor/*.c) \
$(wildcard ../lib/sdl2/src/sensor/android/*.c) \
$(wildcard ../lib/sdl2/src/render/*.c) \
$(wildcard ../lib/sdl2/src/render/*/*.c) \
$(wildcard ../lib/sdl2/src/stdlib/*.c) \
$(wildcard ../lib/sdl2/src/thread/*.c) \
$(wildcard ../lib/sdl2/src/thread/pthread/*.c) \
$(wildcard ../lib/sdl2/src/timer/*.c) \
$(wildcard ../lib/sdl2/src/timer/unix/*.c) \
$(wildcard ../lib/sdl2/src/video/*.c) \
$(wildcard ../lib/sdl2/src/video/android/*.c) \
$(wildcard ../lib/sdl2/src/video/yuv2rgb/*.c)
LOCAL_CFLAGS := -I../lib/sdl2/include/ -DGL_GLEXT_PROTOTYPES
LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid
LOCAL_STATIC_LIBRARIES := cpufeatures
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
# STK
LOCAL_MODULE := main
LOCAL_PATH := .
@@ -145,32 +330,49 @@ LOCAL_CPP_FEATURES += rtti exceptions
LOCAL_SRC_FILES := $(wildcard ../src/*.cpp) \
$(wildcard ../src/*/*.cpp) \
$(wildcard ../src/*/*/*.cpp)
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv3 -lOpenSLES
LOCAL_LDLIBS := -llog -lm -lOpenSLES
LOCAL_CFLAGS := -I../lib/angelscript/include \
-I../lib/bullet/src \
-I../lib/sheenbidi/Headers \
-I../lib/enet/include \
-I../lib/ifaddrs \
-I../lib/irrlicht/include \
-I../lib/irrlicht/source/Irrlicht \
-I../lib/graphics_utils \
-I../lib/graphics_engine/include \
-I../lib/mcpp \
-I../lib/sdl2/include \
-I../lib/tinygettext/include \
-I../src \
-Iobj/curl/include \
-Iobj/freetype/include \
-Iobj/libogg/include \
-Iobj/libvorbis/include \
-Iobj/openal/include \
-Iobj/openssl/include \
-Ideps-$(TARGET_ARCH_ABI)/curl/include \
-Ideps-$(TARGET_ARCH_ABI)/freetype/include \
-Ideps-$(TARGET_ARCH_ABI)/harfbuzz/include \
-Ideps-$(TARGET_ARCH_ABI)/libogg/include \
-Ideps-$(TARGET_ARCH_ABI)/libvorbis/include \
-Ideps-$(TARGET_ARCH_ABI)/openal/include \
-Ideps-$(TARGET_ARCH_ABI)/mbedtls/include \
-DUSE_GLES2 \
-DMOBILE_STK \
-DENABLE_SOUND \
-DENABLE_CRYPTO_OPENSSL \
-DENABLE_IPV6 \
-DENABLE_CRYPTO_MBEDTLS \
-DNDEBUG \
-DDISABLE_ICONV \
-DANDROID_PACKAGE_NAME=\"$(PACKAGE_NAME)\" \
-DANDROID_APP_DIR_NAME=\"$(APP_DIR_NAME)\" \
-DSUPERTUXKART_VERSION=\"$(PROJECT_VERSION)\"
-DSUPERTUXKART_VERSION=\"$(PROJECT_VERSION)\" \
-DANDROID_PACKAGE_CLASS_NAME=\"$(PACKAGE_CLASS_NAME)\"
LOCAL_CPPFLAGS := -std=gnu++0x
LOCAL_STATIC_LIBRARIES := irrlicht bullet enet freetype ifaddrs angelscript \
vorbisfile vorbis ogg openal curl libssl libcrypto \
gnustl_static
LOCAL_STATIC_LIBRARIES := irrlicht bullet enet ifaddrs angelscript mcpp SDL2 \
vorbisfile vorbis ogg openal curl libmbedtls \
libmbedcrypto libmbedx509 c++_static sheenbidi \
harfbuzz freetype tinygettext graphics_utils \
graphics_engine
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_ARM_NEON := false
endif
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
$(call import-module, android/cpufeatures)

View File

@@ -5,41 +5,65 @@
android:versionName="git"
android:installLocation="auto">
<!-- This .apk has no Java code itself, so set hasCode to false. -->
<application android:label="@string/app_name"
android:icon="@drawable/icon"
android:banner="@drawable/banner"
android:hasCode="false"
android:hasCode="true"
android:isGame="true"
android:theme="@android:style/Theme.DeviceDefault.NoActionBar.TranslucentDecor"
android:theme="@style/Theme.STKSplashScreen"
android:hardwareAccelerated="true"
android:resizeableActivity="false">
android:resizeableActivity="true">
<activity android:name="android.app.NativeActivity"
<activity android:name=".SuperTuxKartActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:configChanges="fontScale|keyboard|keyboardHidden|layoutDirection|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|uiMode"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|uiMode"
android:screenOrientation="sensorLandscape">
<!-- Tell NativeActivity the name of or .so -->
<meta-data android:name="android.app.lib_name"
android:value="main" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
<!-- Let Android know that we can handle some USB devices and should receive this event -->
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="19"
android:targetSdkVersion="26" />
<uses-feature android:glEsVersion="0x00020000" />
<uses-feature android:name="android.software.leanback" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.gamepad" android:required="false"/>
<uses-feature android:name="android.software.input_methods" android:required="false" />
<!-- Touchscreen support -->
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<!-- Game controller support -->
<uses-feature
android:name="android.hardware.bluetooth"
android:required="false" />
<uses-feature
android:name="android.hardware.gamepad"
android:required="false" />
<uses-feature
android:name="android.hardware.usb.host"
android:required="false" />
<!-- External mouse input events -->
<uses-feature
android:name="android.hardware.type.pc"
android:required="false" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- Allow writing to external storage -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Allow access to Bluetooth devices -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- Allow access to the vibrator -->
<uses-permission android:name="android.permission.VIBRATE" />
</manifest>

View File

@@ -13,9 +13,9 @@
To run SuperTuxKart on Android, you need a device that meets following
requirements:
- Android 4.4 or later
- Android 4.1 or later
- Processor compatible with armv7 or x86
- GPU that supports OpenGL ES 3.0
- GPU that supports OpenGL ES 2.0
- 1 GB RAM (STK uses ~150 MB in minimal configuration)
- 300 MB of free space on internal storage
- Touch screen or external keyboard
@@ -31,21 +31,41 @@ after some tweaks, but atm. only linux is supported.
Dependencies list (may be incomplete):
autoconf, automake, make, python, gradle, ant, imagemagick, cmake,
autoconf, automake, make, python, gradle, imagemagick, cmake,
vorbis-tools, pngquant
Additionally some dependencies for optimize_data script:
advancecomp, libjpeg-progs, optipng
Before compilation you must download the package with dependencies from:
https://github.com/supertuxkart/dependencies
and extract it to stk-code/lib. It contains sources of libraries that are used
in STK, but are not availiable in stk-code repository (curl, freetype, openal).
Before compilation you must download dependencies-android-src.tar.xz from:
https://github.com/supertuxkart/dependencies/releases
Choose the corresponding STK version you are compiling, use "preview" for git.
It contains sources of libraries that are used in STK, but are not available
in stk-code repository (curl, freetype, openal...).
You need also Android SDK for android-19 platform (the API for Android 4.4) and
Android NDK. Note that NDK >= r15 is atm. not supported. Version r12b is
strongly recommended, because it's known that it works without issues.
These libraries are compiled and then statically linked with STK by the Android
build script.
You need to extract that packed file to stk-code/lib directory, so that the
directory will have following structure:
> stk-code
> build
> data
> lib
> angelscript
> bullet
> curl
> enet
> freetype
> ...
> src
> ...
You also need Android SDK for android-26 platform or later (SDL2 requirement) and
Android NDK. Version r23 is recommended, because it's known that it works
without issues. r24 or later is not compatible because it removes Android 4.1
support (https://github.com/android/ndk/wiki/Changelog-r23#announcements)
You need to create proper "android-sdk" and "android-ndk" symlinks in the
directory with Android project, so that the compilation script will have access
@@ -71,35 +91,38 @@ to just run:
export SDK_PATH=/path/to/your/android/sdk
export NDK_PATH=/path/to/your/android/ndk
# Optional for STK_MIN_ANDROID_SDK, STK_TARGET_ANDROID_SDK and STK_NDK_VERSION
# If unset it will use the below values
export STK_MIN_ANDROID_SDK=16
export STK_TARGET_ANDROID_SDK=30
export STK_NDK_VERSION=23.1.7779620
./generate_assets.sh
./make.sh -j5
./make_deps.sh
./make.sh
You may need to add org.gradle.jvmargs=-XX:MaxHeapSize=2048m -Xmx2048m to
.gradle/gradle.properties if you see java.lang.OutOfMemoryError / Java heap
space execption error.
--------------------------------------------------------------------------------
ENVIRONMENT VARIABLES
--------------------------------------------------------------------------------
COMPILE_ARCH - Allows to choose CPU architecture for which the package will
COMPILE_ARCH - Allows one to choose CPU architecture for which the package will
be compiled.
Possible values: armv7, aarch64, x86, x86_64.
Default is: armv7.
Possible values: all, armv7, aarch64, x86, x86_64.
Default is: all.
BUILD_TYPE - Allows to set build type.
BUILD_TYPE - Allows one to set build type.
Possible values: debug, release, beta.
Default is: debug.
BUILD_TOOL - Allows to choose a tool that is used for creating package.
Note that ant has been already removed from Android SDK, so
you have to use SDK <= 25.2.5 for building with ant.
Possible values: ant, gradle.
Default is: gradle.
BUILD_TOOLS_VER - Allows to override the SDK build-tools version.
SDK_PATH - Path to SDK directory
NDK_PATH - Path to NDK directory
NDK_PATH - Path to NDK directory, it should include a list of installed
NDK version folders
PROJECT_VERSION - Set Supertuxkart version number, for example "0.9.3" or
"git20170409" or whatever. The version must match with file
@@ -133,18 +156,11 @@ Before compilation you have to set:
export BUILD_TYPE=release
It's also needed to set STK_STOREPASS, STK_KEYSTORE and STK_ALIAS environment
variables, so that the apk files can be signed.
and then you make standard compilation with:
./generate_assets.sh
./make.sh -j5
The compiled apk is unsigned, so you have to sign it with your key. To sign it,
you have to run:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore \
my-release-key.keystore SuperTuxKart-release-unsigned.apk alias_name
and then:
zipalign -v 4 SuperTuxKart-release-unsigned.apk SuperTuxKart-release.apk
./make_deps.sh
./make.sh

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -2,12 +2,25 @@ buildscript
{
repositories
{
jcenter()
mavenCentral()
google()
}
dependencies
{
classpath 'com.android.tools.build:gradle:2.2.3'
// 4.1.2 is the minimum version to support native debug symbols file
// https://developer.android.com/studio/build/shrink-code#android_gradle_plugin_version_41_or_later
// 7.0.0 to fix https://stackoverflow.com/questions/68387270/android-studio-error-installed-build-tools-revision-31-0-0-is-corrupted
classpath 'com.android.tools.build:gradle:7.0.0'
}
}
allprojects
{
repositories
{
mavenCentral()
google()
}
}
@@ -15,17 +28,126 @@ apply plugin: 'com.android.application'
android
{
// buildToolsVersion is no longer needed https://developer.android.com/studio/releases/gradle-plugin.html#behavior_changes_1
// Quote:
// Build Tools 27.0.3 or higher. Keep in mind, you no longer need to specify a version for the build tools using the android.buildToolsVersion property—the plugin uses the minimum required version by default.
compileSdkVersion compile_sdk_version.toInteger()
buildToolsVersion build_tools_ver
ndkVersion ndk_version
externalNativeBuild
{
ndkBuild
{
path 'Android.mk'
}
}
defaultConfig
{
minSdkVersion min_sdk_version.toInteger()
targetSdkVersion target_sdk_version.toInteger()
externalNativeBuild
{
ndkBuild
{
def app_platform = "APP_PLATFORM=android-${min_sdk_version}"
arguments app_platform, 'APP_STL=c++_static', cpu_core
if (project.getProperty('compile_arch') == 'all')
{
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
else
{
abiFilters project.getProperty('compile_arch')
}
}
}
def runTasks = gradle.startParameter.taskNames
if ('bundleRelease' in runTasks)
{
// use SYMBOL_TABLE if too large later (max limit on google play is 300MB)
ndk.debugSymbolLevel 'FULL'
}
}
signingConfigs
{
release
{
storeFile file(keystore)
storePassword storepass
keyAlias alias
keyPassword storepass
}
}
buildTypes
{
debug
{
debuggable true
jniDebuggable true
minifyEnabled false
shrinkResources false
multiDexEnabled true
externalNativeBuild
{
ndkBuild
{
arguments 'NDK_DEBUG=1'
cFlags '-O0'
cppFlags '-O0'
}
}
ndk
{
if (project.getProperty('compile_arch') == 'all')
{
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
else
{
abiFilters project.getProperty('compile_arch')
}
}
}
release
{
externalNativeBuild
{
ndkBuild
{
cFlags '-O3'
cppFlags '-O3'
}
}
signingConfig signingConfigs.release
ndk
{
if (project.getProperty('compile_arch') == 'all')
{
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
else
{
abiFilters project.getProperty('compile_arch')
}
}
}
}
sourceSets
{
main
{
manifest.srcFile 'AndroidManifest.xml'
jniLibs.srcDirs = ['libs']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
dependencies
{
implementation 'org.minidns:minidns-hla:0.3.3'
}

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="SuperTuxKart" default="help">
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>

View File

@@ -19,35 +19,41 @@
################################################################################
export KARTS="all"
export TRACKS="abyss arena_candela_city battleisland cave cornfield_crossing \
endcutscene featunlocked fortmagma gplose gpwin hacienda \
icy_soccer_field introcutscene introcutscene2 lasdunasarena \
lasdunassoccer lighthouse mines minigolf olivermath overworld \
ravenbridge_mansion sandtrack scotland snowmountain snowtuxpeak \
soccer_field stadium stk_enterprise temple tutorial \
volcano_island xr591 zengarden"
export KARTS_DEFAULT="all"
export TRACKS_DEFAULT="all"
export ASSETS_PATHS="../data \
../../stk-assets \
../../supertuxkart-assets"
export TEXTURE_SIZE_DEFAULT=256
export JPEG_QUALITY_DEFAULT=85
export PNG_QUALITY_DEFAULT=95
export PNGQUANT_QUALITY_DEFAULT=90
export SOUND_QUALITY_DEFAULT=42
export SOUND_MONO_DEFAULT=1
export SOUND_SAMPLE_DEFAULT=32000
export RUN_OPTIMIZE_SCRIPT_DEFAULT=0
export DECREASE_QUALITY_DEFAULT=1
export CONVERT_TO_JPG_DEFAULT=1
export ONLY_ASSETS_DEFAULT=0
export ASSETS_PATHS_DEFAULT="../data \
../../stk-assets \
../../supertuxkart-assets"
export OUTPUT_PATH_DEFAULT="assets"
export ASSETS_DIRS="library models music sfx textures"
export TEXTURE_SIZE=256
export JPEG_QUALITY=85
export PNG_QUALITY=95
export SOUND_QUALITY=42
export SOUND_MONO=1
export SOUND_SAMPLE=32000
export RUN_OPTIMIZE_SCRIPT=0
export DECREASE_QUALITY=1
export CONVERT_TO_JPG=1
export CONVERT_TO_JPG_BLACKLIST="data/models/traffic_light.png"
export BLACKLIST_FILES="data/music/cocoa_river_fast.ogg2"
export BLACKLIST_FILES="data/supertuxkart.icns \
data/supertuxkart_1024.png \
data/supertuxkart_128.png \
data/supertuxkart_16.png \
data/supertuxkart_256.png \
data/supertuxkart_32.png \
data/supertuxkart_48.png \
data/supertuxkart_512.png \
data/supertuxkart_64.png"
################################################################################
@@ -55,6 +61,67 @@ export LANG=C
cd "`dirname "$0"`"
# Set default configuration if not changed outside of the script
if [ -z "$KARTS" ]; then
export KARTS="$KARTS_DEFAULT"
fi
if [ -z "$TRACKS" ]; then
export TRACKS="$TRACKS_DEFAULT"
fi
if [ -z "$TEXTURE_SIZE" ]; then
export TEXTURE_SIZE="$TEXTURE_SIZE_DEFAULT"
fi
if [ -z "$JPEG_QUALITY" ]; then
export JPEG_QUALITY="$JPEG_QUALITY_DEFAULT"
fi
if [ -z "$PNG_QUALITY" ]; then
export PNG_QUALITY="$PNG_QUALITY_DEFAULT"
fi
if [ -z "$PNGQUANT_QUALITY" ]; then
export PNGQUANT_QUALITY="$PNGQUANT_QUALITY_DEFAULT"
fi
if [ -z "$SOUND_QUALITY" ]; then
export SOUND_QUALITY="$SOUND_QUALITY_DEFAULT"
fi
if [ -z "$SOUND_MONO" ]; then
export SOUND_MONO="$SOUND_MONO_DEFAULT"
fi
if [ -z "$SOUND_SAMPLE" ]; then
export SOUND_SAMPLE="$SOUND_SAMPLE_DEFAULT"
fi
if [ -z "$RUN_OPTIMIZE_SCRIPT" ]; then
export RUN_OPTIMIZE_SCRIPT="$RUN_OPTIMIZE_SCRIPT_DEFAULT"
fi
if [ -z "$DECREASE_QUALITY" ]; then
export DECREASE_QUALITY="$DECREASE_QUALITY_DEFAULT"
fi
if [ -z "$CONVERT_TO_JPG" ]; then
export CONVERT_TO_JPG="$CONVERT_TO_JPG_DEFAULT"
fi
if [ -z "$ONLY_ASSETS" ]; then
export ONLY_ASSETS="$ONLY_ASSETS_DEFAULT"
fi
if [ -z "$ASSETS_PATHS" ]; then
export ASSETS_PATHS="$ASSETS_PATHS_DEFAULT"
fi
if [ -z "$OUTPUT_PATH" ]; then
export OUTPUT_PATH="$OUTPUT_PATH_DEFAULT"
fi
# Find assets path
for ASSETS_PATH in $ASSETS_PATHS; do
if [ -d $ASSETS_PATH ] && [ `ls $ASSETS_PATH | grep -c tracks` -gt 0 ]; then
@@ -77,13 +144,13 @@ fi
# Clear previous assets directory
echo "Clear previous assets directory"
rm -rf assets
rm -rf "$OUTPUT_PATH"
# Copy all assets
echo "Copy all assets"
mkdir -p assets/data
mkdir -p "$OUTPUT_PATH/data"
for DIR in `ls $ASSETS_PATH`; do
CAN_BE_COPIED=0
@@ -105,7 +172,7 @@ for DIR in `ls $ASSETS_PATH`; do
done;
if [ $CAN_BE_COPIED -gt 0 ]; then
cp -a "$ASSETS_PATH/$DIR" assets/data/
cp -a "$ASSETS_PATH/$DIR" "$OUTPUT_PATH/data/"
fi
done;
@@ -113,7 +180,7 @@ done;
# Copy selected tracks
echo "Copy selected tracks"
mkdir -p assets/data/tracks
mkdir -p "$OUTPUT_PATH/data/tracks"
for DIR in `ls $ASSETS_PATH/tracks`; do
CAN_BE_COPIED=0
@@ -130,7 +197,7 @@ for DIR in `ls $ASSETS_PATH/tracks`; do
fi
if [ $CAN_BE_COPIED -gt 0 ]; then
cp -a "$ASSETS_PATH/tracks/$DIR" assets/data/tracks/
cp -a "$ASSETS_PATH/tracks/$DIR" "$OUTPUT_PATH/data/tracks/"
fi
done
@@ -138,7 +205,7 @@ done
# Copy selected karts
echo "Copy selected karts"
mkdir -p assets/data/karts
mkdir -p "$OUTPUT_PATH/data/karts"
for DIR in `ls $ASSETS_PATH/karts`; do
CAN_BE_COPIED=0
@@ -155,7 +222,7 @@ for DIR in `ls $ASSETS_PATH/karts`; do
fi
if [ $CAN_BE_COPIED -gt 0 ]; then
cp -a "$ASSETS_PATH/karts/$DIR" assets/data/karts/
cp -a "$ASSETS_PATH/karts/$DIR" "$OUTPUT_PATH/data/karts/"
fi
done
@@ -270,7 +337,7 @@ optimize_png()
return
fi
pngquant --force --skip-if-larger --output "$FILE" -- "$FILE"
pngquant --force --skip-if-larger --quality 0-$PNGQUANT_QUALITY --output "$FILE" -- "$FILE"
}
convert_to_jpg()
@@ -301,7 +368,7 @@ convert_to_jpg()
BLACKLISTED=0
for BLACKLIST_FILE in $CONVERT_TO_JPG_BLACKLIST; do
if [ "$FILE" = "assets/$BLACKLIST_FILE" ]; then
if [ "$FILE" = "$OUTPUT_PATH/$BLACKLIST_FILE" ]; then
BLACKLISTED=1
break
fi
@@ -309,21 +376,21 @@ convert_to_jpg()
if [ $BLACKLISTED -eq 1 ]; then
#echo " File is blacklisted. Ignore..."
continue
return
fi
FILE_EXTENSION=`echo "$FILE" | tail -c 5`
if [ `echo "$FILE_EXTENSION" | head -c 1` != "." ]; then
#echo " Unsupported file extension. Ignore..."
continue
return
fi
FILE_FORMAT=`identify -format %m "$FILE"`
if [ "$FILE_FORMAT" = "JPEG" ]; then
#echo " File is already JPEG. Ignore..."
continue
return
fi
IS_OPAQUE=`identify -format '%[opaque]' "$FILE"`
@@ -331,7 +398,7 @@ convert_to_jpg()
if [ "$IS_OPAQUE" = "False" ] || [ "$IS_OPAQUE" = "false" ]; then
#echo " File has alpha channel. Ignore..."
continue
return
fi
DIRNAME="`dirname "$FILE"`"
@@ -341,14 +408,14 @@ convert_to_jpg()
if [ $IS_GLOSS_MAP -gt 0 ]; then
#echo " File is a gloss-map. Ignore..."
continue
return
fi
NEW_FILE="`echo $FILE | head -c -5`.jpg"
if [ -f "$NEW_FILE" ]; then
#echo " There is already a file with .jpg extension. Ignore..."
continue
return
fi
# We can check if new file is smaller
@@ -559,23 +626,23 @@ convert_to_jpg_update_xml()
if [ $DECREASE_QUALITY -gt 0 ]; then
find assets/data -iname "*.png" | while read f; do convert_image "$f" "png"; done
find assets/data -iname "*.jpg" | while read f; do convert_image "$f" "jpg"; done
find assets/data -iname "*.ogg" | while read f; do convert_sound "$f"; done
find "$OUTPUT_PATH/data" -iname "*.png" | while read f; do convert_image "$f" "png"; done
find "$OUTPUT_PATH/data" -iname "*.jpg" | while read f; do convert_image "$f" "jpg"; done
find "$OUTPUT_PATH/data" -iname "*.ogg" | while read f; do convert_sound "$f"; done
fi
if [ $CONVERT_TO_JPG -gt 0 ]; then
rm -f "./converted_textures"
find assets/data -not -path "assets/data/textures/*" \
-not -path "assets/data/karts/*" \
-iname "*.png" | while read f; do convert_to_jpg "$f"; done
find "$OUTPUT_PATH/data" -not -path "$OUTPUT_PATH/data/textures/*" \
-not -path "$OUTPUT_PATH/data/karts/*" \
-iname "*.png" | while read f; do convert_to_jpg "$f"; done
find assets/data -iname "*.b3dz" | while read f; do convert_to_jpg_extract_b3dz "$f"; done
find assets/data -iname "*.b3d" | while read f; do convert_to_jpg_update_b3d "$f"; done
find assets/data -iname "*.spm" | while read f; do convert_to_jpg_update_spm "$f"; done
find assets/data -iname "*.xml" | while read f; do convert_to_jpg_update_xml "$f"; done
find "$OUTPUT_PATH/data" -iname "*.b3dz" | while read f; do convert_to_jpg_extract_b3dz "$f"; done
find "$OUTPUT_PATH/data" -iname "*.b3d" | while read f; do convert_to_jpg_update_b3d "$f"; done
find "$OUTPUT_PATH/data" -iname "*.spm" | while read f; do convert_to_jpg_update_spm "$f"; done
find "$OUTPUT_PATH/data" -iname "*.xml" | while read f; do convert_to_jpg_update_xml "$f"; done
if [ -s "./converted_textures" ]; then
echo "Converted textures:"
@@ -585,37 +652,46 @@ if [ $CONVERT_TO_JPG -gt 0 ]; then
fi
if [ $DECREASE_QUALITY -gt 0 ]; then
find assets/data -iname "*.png" | while read f; do optimize_png "$f" "png"; done
find "$OUTPUT_PATH/data" -iname "*.png" | while read f; do optimize_png "$f" "png"; done
fi
# Copy data directory
echo "Copy data directory"
cp -a ../data/* assets/data/
if [ $ONLY_ASSETS -eq 0 ]; then
echo "Copy data directory"
cp -a ../data/* "$OUTPUT_PATH/data"
fi
# Remove unused files
for BLACKLIST_FILE in $BLACKLIST_FILES; do
rm -f "assets/$BLACKLIST_FILE"
rm -f "$OUTPUT_PATH/$BLACKLIST_FILE"
done
# Run optimize_data.sh script
if [ $RUN_OPTIMIZE_SCRIPT -gt 0 ]; then
echo "Run optimize_data.sh script"
sh -c 'cd assets/data; ../../../data/optimize_data.sh'
sh -c "cd "$OUTPUT_PATH/data"; ../../../data/optimize_data.sh"
fi
# Generate directories list
echo "Generate directories list"
find assets/* -type d | sort > assets/directories.txt
sed -i s/'.\/assets\/'// assets/directories.txt
sed -i s/'assets\/'// assets/directories.txt
# Generate files list
echo "Generate files list"
find "$OUTPUT_PATH"/* -type d| sort > tmp1.txt
sed -i 's/$/\//' tmp1.txt
find "$OUTPUT_PATH"/* -type f| sort > tmp2.txt
cat tmp1.txt tmp2.txt | sort > "$OUTPUT_PATH/files.txt"
rm tmp1.txt tmp2.txt
sed -i s/".\/$OUTPUT_PATH\/"// "$OUTPUT_PATH/files.txt"
sed -i s/"$OUTPUT_PATH\/"// "$OUTPUT_PATH/files.txt"
# A file that can be used to check if apk has assets
echo "has_assets" > "$OUTPUT_PATH/has_assets.txt"
# It will be probably ignored by ant, but create it anyway...
touch assets/.nomedia
touch "$OUTPUT_PATH/.nomedia"
echo "Done."

Binary file not shown.

View File

@@ -0,0 +1,6 @@
#Mon Oct 23 13:51:26 PDT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip

160
android/gradlew vendored Executable file
View File

@@ -0,0 +1,160 @@
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -10,60 +10,46 @@ export DIRNAME=$(realpath "$(dirname "$0")")
export NDK_PATH_DEFAULT="$DIRNAME/android-ndk"
export SDK_PATH_DEFAULT="$DIRNAME/android-sdk"
export NDK_TOOLCHAIN_PATH="$DIRNAME/obj/bin"
export NDK_BUILD_SCRIPT="$DIRNAME/Android.mk"
export PATH="$DIRNAME/obj/bin:$PATH"
export CROSS_SYSROOT="$DIRNAME/obj/sysroot"
#export NDK_CCACHE=ccache
export NDK_CPPFLAGS="-O3 -g"
export CPU_CORE="-j$(($(nproc) + 1))"
export NDK_ABI_ARMV7=armeabi-v7a
export ARCH_ARMV7=arm
export HOST_ARMV7=arm-linux-androideabi
export NDK_PLATFORM_ARMV7=android-19
export MIN_SDK_VERSION_ARMV7=19
export TARGET_SDK_VERSION_ARMV7=26
export COMPILE_SDK_VERSION_ARMV7=26
if [ -z "$STK_MIN_ANDROID_SDK" ]; then
export STK_MIN_ANDROID_SDK=16
fi
export NDK_ABI_AARCH64=arm64-v8a
export ARCH_AARCH64=arm64
export HOST_AARCH64=aarch64-linux-android
export NDK_PLATFORM_AARCH64=android-21
export MIN_SDK_VERSION_AARCH64=21
export TARGET_SDK_VERSION_AARCH64=26
export COMPILE_SDK_VERSION_AARCH64=26
if [ -z "$STK_TARGET_ANDROID_SDK" ]; then
export STK_TARGET_ANDROID_SDK=30
fi
export NDK_ABI_X86=x86
export ARCH_X86=x86
export HOST_X86=i686-linux-android
export NDK_PLATFORM_X86=android-19
export MIN_SDK_VERSION_X86=19
export TARGET_SDK_VERSION_X86=26
export COMPILE_SDK_VERSION_X86=26
export NDK_ABI_X86_64=x86_64
export ARCH_X86_64=x86_64
export HOST_X86_64=x86_64-linux-android
export NDK_PLATFORM_X86_64=android-21
export MIN_SDK_VERSION_X86_64=21
export TARGET_SDK_VERSION_X86_64=26
export COMPILE_SDK_VERSION_X86_64=26
if [ -z "$STK_NDK_VERSION" ]; then
export STK_NDK_VERSION=23.1.7779620
fi
export APP_NAME_RELEASE="SuperTuxKart"
export PACKAGE_NAME_RELEASE="org.supertuxkart.stk"
export PACKAGE_CLASS_NAME_RELEASE="org/supertuxkart/stk"
export APP_DIR_NAME_RELEASE="supertuxkart"
export APP_ICON_RELEASE="$DIRNAME/icon.png"
export APP_ICON_ADAPTIVE_BG_RELEASE="$DIRNAME/icon_adaptive_bg.png"
export APP_ICON_ADAPTIVE_FG_RELEASE="$DIRNAME/icon_adaptive_fg.png"
export APP_NAME_BETA="SuperTuxKart Beta"
export PACKAGE_NAME_BETA="org.supertuxkart.stk_beta"
export PACKAGE_CLASS_NAME_BETA="org/supertuxkart/stk_beta"
export APP_DIR_NAME_BETA="supertuxkart-beta"
export APP_ICON_BETA="$DIRNAME/icon-dbg.png"
export APP_ICON_ADAPTIVE_BG_BETA="$DIRNAME/icon_adaptive_bg-dbg.png"
export APP_ICON_ADAPTIVE_FG_BETA="$DIRNAME/icon_adaptive_fg-dbg.png"
export APP_NAME_DEBUG="SuperTuxKart Debug"
export PACKAGE_NAME_DEBUG="org.supertuxkart.stk_dbg"
export PACKAGE_CLASS_NAME_DEBUG="org/supertuxkart/stk_dbg"
export APP_DIR_NAME_DEBUG="supertuxkart-dbg"
export APP_ICON_DEBUG="$DIRNAME/icon-dbg.png"
export APP_ICON_ADAPTIVE_BG_DEBUG="$DIRNAME/icon_adaptive_bg-dbg.png"
export APP_ICON_ADAPTIVE_FG_DEBUG="$DIRNAME/icon_adaptive_fg-dbg.png"
# A helper function that checks if error ocurred
@@ -83,63 +69,23 @@ if [ ! -z "$1" ] && [ "$1" = "clean" ]; then
rm -rf "$DIRNAME/obj"
rm -rf "$DIRNAME/res"
rm -rf "$DIRNAME/.gradle"
rm -rf "$DIRNAME/.cxx"
exit
fi
# Check if compilation for different platform has been started before
if [ -f "$DIRNAME/obj/compile_arch" ]; then
PROJECT_ARCH=$(cat "$DIRNAME/obj/compile_arch")
if [ -z "$COMPILE_ARCH" ]; then
COMPILE_ARCH="$PROJECT_ARCH"
elif [ "$PROJECT_ARCH" != "$COMPILE_ARCH" ]; then
echo "Error: Compilation for different platform has been already made."
echo "Run './make.sh clean' first or set COMPILE_ARCH variable" \
"to '$PROJECT_ARCH.'"
exit
fi
fi
# Update variables for selected architecture
if [ -z "$COMPILE_ARCH" ]; then
COMPILE_ARCH="armv7"
COMPILE_ARCH="all"
fi
if [ "$COMPILE_ARCH" = "armv7" ]; then
export NDK_PLATFORM=$NDK_PLATFORM_ARMV7
export NDK_ABI=$NDK_ABI_ARMV7
export ARCH=$ARCH_ARMV7
export HOST=$HOST_ARMV7
export MIN_SDK_VERSION=$MIN_SDK_VERSION_ARMV7
export TARGET_SDK_VERSION=$TARGET_SDK_VERSION_ARMV7
export COMPILE_SDK_VERSION=$COMPILE_SDK_VERSION_ARMV7
COMPILE_ARCH="armeabi-v7a"
elif [ "$COMPILE_ARCH" = "aarch64" ]; then
export NDK_PLATFORM=$NDK_PLATFORM_AARCH64
export NDK_ABI=$NDK_ABI_AARCH64
export ARCH=$ARCH_AARCH64
export HOST=$HOST_AARCH64
export MIN_SDK_VERSION=$MIN_SDK_VERSION_AARCH64
export TARGET_SDK_VERSION=$TARGET_SDK_VERSION_AARCH64
export COMPILE_SDK_VERSION=$COMPILE_SDK_VERSION_AARCH64
elif [ "$COMPILE_ARCH" = "x86" ]; then
export NDK_PLATFORM=$NDK_PLATFORM_X86
export NDK_ABI=$NDK_ABI_X86
export ARCH=$ARCH_X86
export HOST=$HOST_X86
export MIN_SDK_VERSION=$MIN_SDK_VERSION_X86
export TARGET_SDK_VERSION=$TARGET_SDK_VERSION_X86
export COMPILE_SDK_VERSION=$COMPILE_SDK_VERSION_X86
elif [ "$COMPILE_ARCH" = "x86_64" ]; then
export NDK_PLATFORM=$NDK_PLATFORM_X86_64
export NDK_ABI=$NDK_ABI_X86_64
export ARCH=$ARCH_X86_64
export HOST=$HOST_X86_64
export MIN_SDK_VERSION=$MIN_SDK_VERSION_X86_64
export TARGET_SDK_VERSION=$TARGET_SDK_VERSION_X86_64
export COMPILE_SDK_VERSION=$COMPILE_SDK_VERSION_X86_64
else
echo "Unknow COMPILE_ARCH: $COMPILE_ARCH. Possible values are: " \
"armv7, aarch64, x86, x86_64"
COMPILE_ARCH="arm64-v8a"
elif [ "$COMPILE_ARCH" != "x86" ] && [ "$COMPILE_ARCH" != "x86_64" ] && \
[ "$COMPILE_ARCH" != "all" ]; then
echo "Unknown COMPILE_ARCH: $COMPILE_ARCH. Possible values are:" \
"all, armv7, aarch64, x86, x86_64"
exit
fi
@@ -149,46 +95,41 @@ if [ -z "$BUILD_TYPE" ]; then
fi
if [ "$BUILD_TYPE" = "debug" ] || [ "$BUILD_TYPE" = "Debug" ]; then
export ANT_BUILD_TYPE="debug"
export GRADLE_BUILD_TYPE="assembleDebug"
export IS_DEBUG_BUILD=1
export APP_NAME="$APP_NAME_DEBUG"
export PACKAGE_NAME="$PACKAGE_NAME_DEBUG"
export PACKAGE_CLASS_NAME="$PACKAGE_CLASS_NAME_DEBUG"
export APP_DIR_NAME="$APP_DIR_NAME_DEBUG"
export APP_ICON="$APP_ICON_DEBUG"
export APP_ICON_ADAPTIVE_BG="$APP_ICON_ADAPTIVE_BG_DEBUG"
export APP_ICON_ADAPTIVE_FG="$APP_ICON_ADAPTIVE_FG_DEBUG"
elif [ "$BUILD_TYPE" = "release" ] || [ "$BUILD_TYPE" = "Release" ]; then
export ANT_BUILD_TYPE="release"
export GRADLE_BUILD_TYPE="assembleRelease"
export IS_DEBUG_BUILD=0
export APP_NAME="$APP_NAME_RELEASE"
export PACKAGE_NAME="$PACKAGE_NAME_RELEASE"
export PACKAGE_CLASS_NAME="$PACKAGE_CLASS_NAME_RELEASE"
export APP_DIR_NAME="$APP_DIR_NAME_RELEASE"
export APP_ICON="$APP_ICON_RELEASE"
export APP_ICON_ADAPTIVE_BG="$APP_ICON_ADAPTIVE_BG_RELEASE"
export APP_ICON_ADAPTIVE_FG="$APP_ICON_ADAPTIVE_FG_RELEASE"
elif [ "$BUILD_TYPE" = "beta" ] || [ "$BUILD_TYPE" = "Beta" ]; then
export ANT_BUILD_TYPE="release"
export GRADLE_BUILD_TYPE="assembleRelease"
export IS_DEBUG_BUILD=0
export APP_NAME="$APP_NAME_BETA"
export PACKAGE_NAME="$PACKAGE_NAME_BETA"
export PACKAGE_CLASS_NAME="$PACKAGE_CLASS_NAME_BETA"
export APP_DIR_NAME="$APP_DIR_NAME_BETA"
export APP_ICON="$APP_ICON_BETA"
export APP_ICON_ADAPTIVE_BG="$APP_ICON_ADAPTIVE_BG_BETA"
export APP_ICON_ADAPTIVE_FG="$APP_ICON_ADAPTIVE_FG_BETA"
else
echo "Unsupported BUILD_TYPE: $BUILD_TYPE. Possible values are: " \
"debug, release"
exit
fi
# Check selected build tool
if [ -z "$BUILD_TOOL" ]; then
BUILD_TOOL="gradle"
fi
if [ "$BUILD_TOOL" != "gradle" ] && [ "$BUILD_TOOL" != "ant" ]; then
echo "Unsupported BUILD_TOOL: $BUILD_TOOL. Possible values are: " \
"gradle, ant"
exit
fi
# Check if we have access to the Android NDK and SDK
if [ -z "$NDK_PATH" ]; then
export NDK_PATH="$NDK_PATH_DEFAULT"
@@ -198,7 +139,7 @@ if [ -z "$SDK_PATH" ]; then
export SDK_PATH="$SDK_PATH_DEFAULT"
fi
NDK_PATH=$(realpath "$NDK_PATH")
NDK_PATH="$(realpath "$NDK_PATH")/${STK_NDK_VERSION}"
SDK_PATH=$(realpath "$SDK_PATH")
if [ ! -d "$NDK_PATH" ]; then
@@ -215,12 +156,39 @@ if [ ! -d "$SDK_PATH" ]; then
exit
fi
# Check if we have key for signing in release build
if [ "$GRADLE_BUILD_TYPE" = "assembleRelease" ]; then
if [ -z "$STK_KEYSTORE" ]; then
echo "Error: STK_KEYSTORE variable is empty."
exit
fi
if [ ! -f "$STK_KEYSTORE" ]; then
echo "Error: Couldn't find $STK_KEYSTORE file."
exit
fi
if [ -z "$STK_STOREPASS" ]; then
echo "Error: STK_STOREPASS variable is empty"
exit
fi
if [ -z "$STK_ALIAS" ]; then
echo "Error: STK_ALIAS variable is empty."
exit
fi
else
STK_KEYSTORE="empty"
STK_STOREPASS="empty"
STK_ALIAS="empty"
fi
# Find newest build-tools version
if [ -z "$BUILD_TOOLS_VER" ]; then
BUILD_TOOLS_DIRS=`ls -1 "$SDK_PATH/build-tools" | sort -V -r`
for DIR in $BUILD_TOOLS_DIRS; do
if [ "$DIR" = `echo $DIR | sed 's/[^0-9,.]//g'` ]; then
if [ "$DIR" = "`echo $DIR | sed 's/[^0-9,.]//g'`" ]; then
BUILD_TOOLS_VER="$DIR"
break
fi
@@ -232,10 +200,13 @@ if [ -z "$BUILD_TOOLS_VER" ] || [ ! -d "$SDK_PATH/build-tools/$BUILD_TOOLS_VER"
exit
fi
BUILD_TOOLS_FULL=(${BUILD_TOOLS_VER//./ })
export COMPILE_SDK_VERSION="${BUILD_TOOLS_FULL[0]}"
# Set project version and code
if [ -f "$DIRNAME/obj/project_version" ]; then
PROJECT_VERSION_PREV=$(cat "$DIRNAME/obj/project_version")
if [ -z "$PROJECT_VERSION" ]; then
export PROJECT_VERSION="$PROJECT_VERSION_PREV"
elif [ "$PROJECT_VERSION" != "$PROJECT_VERSION_PREV" ]; then
@@ -275,223 +246,227 @@ fi
if [ ! -f "$DIRNAME/obj/make_standalone_toolchain.stamp" ]; then
echo "Creating standalone toolchain"
rm -rf "$DIRNAME/obj"
${NDK_PATH}/build/tools/make-standalone-toolchain.sh \
--platform=$NDK_PLATFORM \
--install-dir="$DIRNAME/obj/" \
--arch=$ARCH
check_error
mkdir "$DIRNAME/obj"
touch "$DIRNAME/obj/make_standalone_toolchain.stamp"
echo $COMPILE_ARCH > "$DIRNAME/obj/compile_arch"
fi
echo "$PROJECT_VERSION" > "$DIRNAME/obj/project_version"
# Freetype
if [ ! -f "$DIRNAME/obj/freetype.stamp" ]; then
echo "Compiling freetype"
mkdir -p "$DIRNAME/obj/freetype"
cp -a -f "$DIRNAME/../lib/freetype/"* "$DIRNAME/obj/freetype"
cd "$DIRNAME/obj/freetype"
./configure --host=$HOST \
--without-zlib \
--without-png \
--without-harfbuzz &&
make $@
check_error
touch "$DIRNAME/obj/freetype.stamp"
fi
# Zlib
if [ ! -f "$DIRNAME/obj/zlib.stamp" ]; then
echo "Compiling zlib"
mkdir -p "$DIRNAME/obj/zlib"
cp -a -f "$DIRNAME/../lib/zlib/"* "$DIRNAME/obj/zlib"
cd "$DIRNAME/obj/zlib"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST &&
make $@
check_error
touch "$DIRNAME/obj/zlib.stamp"
fi
# Libpng
if [ ! -f "$DIRNAME/obj/libpng.stamp" ]; then
echo "Compiling libpng"
mkdir -p "$DIRNAME/obj/libpng"
mkdir -p "$DIRNAME/obj/libpng/lib"
cp -a -f "$DIRNAME/../lib/libpng/"* "$DIRNAME/obj/libpng"
cd "$DIRNAME/obj/libpng"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST \
-DZLIB_LIBRARY="$DIRNAME/obj/zlib/libz.a" \
-DZLIB_INCLUDE_DIR="$DIRNAME/obj/zlib/" \
-DPNG_TESTS=0 &&
make $@
check_error
touch "$DIRNAME/obj/libpng.stamp"
fi
# Openal
if [ ! -f "$DIRNAME/obj/openal.stamp" ]; then
echo "Compiling openal"
mkdir -p "$DIRNAME/obj/openal"
cp -a -f "$DIRNAME/../lib/openal/"* "$DIRNAME/obj/openal"
cd "$DIRNAME/obj/openal"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST \
-DALSOFT_UTILS=0 \
-DALSOFT_EXAMPLES=0 \
-DALSOFT_TESTS=0 \
-DLIBTYPE=STATIC &&
make $@
check_error
touch "$DIRNAME/obj/openal.stamp"
fi
# OpenSSL
if [ ! -f "$DIRNAME/obj/openssl.stamp" ]; then
echo "Compiling openssl"
mkdir -p "$DIRNAME/obj/openssl"
cp -a -f "$DIRNAME/../lib/openssl/"* "$DIRNAME/obj/openssl"
cd "$DIRNAME/obj/openssl"
./Configure android --cross-compile-prefix="$HOST-"
make $@
check_error
touch "$DIRNAME/obj/openssl.stamp"
fi
# Curl
if [ ! -f "$DIRNAME/obj/curl.stamp" ]; then
echo "Compiling curl"
mkdir -p "$DIRNAME/obj/curl"
cp -a -f "$DIRNAME/../lib/curl/"* "$DIRNAME/obj/curl"
cd "$DIRNAME/obj/curl"
CPPFLAGS="-I$DIRNAME/obj/openssl/include -I$DIRNAME/obj/zlib $CPPFLAGS" \
LDFLAGS="-L$DIRNAME/obj/openssl/ -L$DIRNAME/obj/zlib $LDFLAGS" \
./configure --host=$HOST \
--with-ssl \
--disable-shared \
--enable-static \
--enable-threaded-resolver &&
make $@
check_error
touch "$DIRNAME/obj/curl.stamp"
fi
# Jpeglib
if [ ! -f "$DIRNAME/obj/jpeglib.stamp" ]; then
echo "Compiling jpeglib"
mkdir -p "$DIRNAME/obj/jpeglib"
cp -a -f "$DIRNAME/../lib/jpeglib/"* "$DIRNAME/obj/jpeglib"
cd "$DIRNAME/obj/jpeglib"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST &&
make $@
check_error
touch "$DIRNAME/obj/jpeglib.stamp"
fi
# Libogg
if [ ! -f "$DIRNAME/obj/libogg.stamp" ]; then
echo "Compiling libogg"
mkdir -p "$DIRNAME/obj/libogg"
cp -a -f "$DIRNAME/../lib/libogg/"* "$DIRNAME/obj/libogg"
cd "$DIRNAME/obj/libogg"
./configure --host=$HOST &&
make $@
check_error
touch "$DIRNAME/obj/libogg.stamp"
fi
# Libvorbis
if [ ! -f "$DIRNAME/obj/libvorbis.stamp" ]; then
echo "Compiling libvorbis"
mkdir -p "$DIRNAME/obj/libvorbis"
cp -a -f "$DIRNAME/../lib/libvorbis/"* "$DIRNAME/obj/libvorbis"
cd "$DIRNAME/obj/libvorbis"
CPPFLAGS="-I$DIRNAME/obj/libogg/include $CPPFLAGS" \
LDFLAGS="-L$DIRNAME/obj/libogg/src/.libs $LDFLAGS" \
./configure --host=$HOST &&
make $@
check_error
touch "$DIRNAME/obj/libvorbis.stamp"
fi
# STK
echo "Compiling STK"
cd "$DIRNAME"
${NDK_PATH}/ndk-build $@ \
APP_BUILD_SCRIPT="$NDK_BUILD_SCRIPT" \
APP_ABI="$NDK_ABI" \
APP_PLATFORM="$NDK_PLATFORM" \
APP_CPPFLAGS="$NDK_CPPFLAGS" \
APP_STL=gnustl_static \
NDK_DEBUG=$IS_DEBUG_BUILD
check_error
# Build apk
echo "Building APK"
mkdir -p "$DIRNAME/res/drawable/"
mkdir -p "$DIRNAME/res/drawable-hdpi/"
mkdir -p "$DIRNAME/res/drawable-anydpi-v26/"
mkdir -p "$DIRNAME/res/drawable-mdpi/"
mkdir -p "$DIRNAME/res/drawable-hdpi/"
mkdir -p "$DIRNAME/res/drawable-xhdpi/"
mkdir -p "$DIRNAME/res/drawable-xxhdpi/"
mkdir -p "$DIRNAME/res/drawable-xxxhdpi/"
rm -rf "$DIRNAME/res/values*"
mkdir -p "$DIRNAME/res/values/"
STYLES_FILE="$DIRNAME/res/values/styles.xml"
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" > "$STYLES_FILE"
echo "<!--Generated by make.sh-->" >> "$STYLES_FILE"
echo "<resources>" >> "$STYLES_FILE"
echo " <style name=\"Theme.STKSplashScreen\" parent=\"android:style/Theme.Holo\">" >> "$STYLES_FILE"
echo " <item name=\"android:windowBackground\">#A8A8A8</item>" >> "$STYLES_FILE"
echo " <item name=\"android:windowFullscreen\">true</item>" >> "$STYLES_FILE"
echo " <item name=\"android:windowNoTitle\">true</item>" >> "$STYLES_FILE"
echo " <item name=\"android:windowLayoutInDisplayCutoutMode\">shortEdges</item>" >> "$STYLES_FILE"
echo " <item name=\"android:windowContentOverlay\">@null</item>" >> "$STYLES_FILE"
echo " </style>" >> "$STYLES_FILE"
echo "</resources>" >> "$STYLES_FILE"
STRINGS_FILE="$DIRNAME/res/values/strings.xml"
# Strings used in stk android ui (when extracting game data first time)
PO_EXTRACT_GAME_DATA="po_extract_game_data"
PO_EXTRACT_GAME_DATA_STR="Extracting game data..."
PO_EXTRACT_ERROR="po_extract_error"
PO_EXTRACT_ERROR_STR="Game data extraction error"
PO_EXTRACT_ERROR_MSG="po_extract_error_msg"
PO_EXTRACT_ERROR_MSG_STR="Check remaining device space or reinstall SuperTuxKart."
PO_QUIT="po_quit"
PO_QUIT_STR="Quit"
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" > "$STRINGS_FILE"
echo "<!--Generated by make.sh-->" >> "$STRINGS_FILE"
echo "<resources>" >> "$STRINGS_FILE"
echo " <string name=\"app_name\">$APP_NAME</string>" >> "$STRINGS_FILE"
echo " <string name=\"$PO_EXTRACT_GAME_DATA\">$PO_EXTRACT_GAME_DATA_STR</string>" >> "$STRINGS_FILE"
echo " <string name=\"$PO_EXTRACT_ERROR\">$PO_EXTRACT_ERROR_STR</string>" >> "$STRINGS_FILE"
echo " <string name=\"$PO_EXTRACT_ERROR_MSG\">$PO_EXTRACT_ERROR_MSG_STR</string>" >> "$STRINGS_FILE"
echo " <string name=\"$PO_QUIT\">$PO_QUIT_STR</string>" >> "$STRINGS_FILE"
echo "</resources>" >> "$STRINGS_FILE"
sed -i "s/minSdkVersion=\".*\"/minSdkVersion=\"$MIN_SDK_VERSION\"/g" \
"$DIRNAME/AndroidManifest.xml"
sed -i "s/targetSdkVersion=\".*\"/targetSdkVersion=\"$TARGET_SDK_VERSION\"/g" \
"$DIRNAME/AndroidManifest.xml"
translate_str()
{
echo $(grep -A 1 -e "msgid \"$1\"" "$2" \
| sed -n 's/msgstr "\(.*\)"/\1/p' | sed "s/'/\\\'/g")
}
create_translation()
{
PO="$1"
CUR_LANG=$(basename -- "$PO" | cut -f 1 -d '.')
# Skip english po file
if [ "$CUR_LANG" = "en" ]; then
continue
fi
# Fix some difference in language code
if [ "$CUR_LANG" = "he" ]; then
# Hebrew
CUR_LANG="iw"
fi
if [ "$CUR_LANG" = "id" ]; then
# Indonesian
CUR_LANG="in"
fi
if [ "$CUR_LANG" = "yi" ]; then
# Yiddish
CUR_LANG="ji"
fi
CUR_LANG=$(echo "$CUR_LANG" | sed 's/_/-r/g')
EXTRACT_GAME_DATA_STR=$(translate_str "$PO_EXTRACT_GAME_DATA_STR" "$PO")
EXTRACT_ERROR_STR=$(translate_str "$PO_EXTRACT_ERROR_STR" "$PO")
EXTRACT_ERROR_MSG_STR=$(translate_str "$PO_EXTRACT_ERROR_MSG_STR" "$PO")
QUIT_STR=$(translate_str "$PO_QUIT_STR" "$PO")
if [ -n "$EXTRACT_GAME_DATA_STR" ] \
|| [ -n "$EXTRACT_ERROR_STR" ] \
|| [ -n "$EXTRACT_ERROR_MSG_STR" ] \
|| [ -n "$QUIT_STR" ]; then
mkdir -p "$DIRNAME/res/values-$CUR_LANG"
TRANSLATION="$DIRNAME/res/values-$CUR_LANG/strings.xml"
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" > "$TRANSLATION"
echo "<!--Generated by make.sh-->" >> "$TRANSLATION"
echo "<resources>" >> "$TRANSLATION"
if [ -n "$EXTRACT_GAME_DATA_STR" ] ; then
echo " <string name=\"$PO_EXTRACT_GAME_DATA\">$EXTRACT_GAME_DATA_STR</string>" >> "$TRANSLATION"
fi
if [ -n "$EXTRACT_ERROR_STR" ] ; then
echo " <string name=\"$PO_EXTRACT_ERROR\">$EXTRACT_ERROR_STR</string>" >> "$TRANSLATION"
fi
if [ -n "$EXTRACT_ERROR_MSG_STR" ] ; then
echo " <string name=\"$PO_EXTRACT_ERROR_MSG\">$EXTRACT_ERROR_MSG_STR</string>" >> "$TRANSLATION"
fi
if [ -n "$QUIT_STR" ] ; then
echo " <string name=\"$PO_QUIT\">$QUIT_STR</string>" >> "$TRANSLATION"
fi
echo "</resources>" >> "$TRANSLATION"
fi
}
find "$DIRNAME/assets/data/po" -type f -name '*.po' | while read f; do create_translation "$f"; done
ADAPTIVE_ICON_FILE="$DIRNAME/res/drawable-anydpi-v26/icon.xml"
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" > "$ADAPTIVE_ICON_FILE"
echo "<adaptive-icon" >> "$ADAPTIVE_ICON_FILE"
echo " xmlns:android=\"http://schemas.android.com/apk/res/android\">" >> "$ADAPTIVE_ICON_FILE"
echo " <background android:drawable=\"@drawable/icon_bg\" />" >> "$ADAPTIVE_ICON_FILE"
echo " <foreground android:drawable=\"@drawable/icon_fg\" />" >> "$ADAPTIVE_ICON_FILE"
echo "</adaptive-icon>" >> "$ADAPTIVE_ICON_FILE"
sed -i "s/package=\".*\"/package=\"$PACKAGE_NAME\"/g" \
"$DIRNAME/AndroidManifest.xml"
sed -i "s/package org.supertuxkart.*/package $PACKAGE_NAME;/g" \
"$DIRNAME/src/main/java/STKEditText.java"
sed -i "s/import org.supertuxkart.*/import $PACKAGE_NAME.STKInputConnection;/g" \
"$DIRNAME/src/main/java/STKEditText.java"
sed -i "s/package org.supertuxkart.*/package $PACKAGE_NAME;/g" \
"$DIRNAME/src/main/java/STKInputConnection.java"
sed -i "s/import org.supertuxkart.*.STKEditText;/import $PACKAGE_NAME.STKEditText;/g" \
"$DIRNAME/src/main/java/STKInputConnection.java"
sed -i "s/package org.supertuxkart.*/package $PACKAGE_NAME;/g" \
"$DIRNAME/src/main/java/SuperTuxKartActivity.java"
sed -i "s/import org.supertuxkart.*/import $PACKAGE_NAME.STKEditText;/g" \
"$DIRNAME/src/main/java/SuperTuxKartActivity.java"
sed -i "s/versionName=\".*\"/versionName=\"$PROJECT_VERSION\"/g" \
"$DIRNAME/AndroidManifest.xml"
sed -i "s/versionCode=\".*\"/versionCode=\"$PROJECT_CODE\"/g" \
"$DIRNAME/AndroidManifest.xml"
cp -f "$DIRNAME/../lib/sdl2/android-project/app/src/main/java/org/libsdl/app/HIDDevice.java" \
"$DIRNAME/src/main/java/"
cp -f "$DIRNAME/../lib/sdl2/android-project/app/src/main/java/org/libsdl/app/HIDDeviceBLESteamController.java" \
"$DIRNAME/src/main/java/"
cp -f "$DIRNAME/../lib/sdl2/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java" \
"$DIRNAME/src/main/java/"
cp -f "$DIRNAME/../lib/sdl2/android-project/app/src/main/java/org/libsdl/app/HIDDeviceUSB.java" \
"$DIRNAME/src/main/java/"
cp -f "$DIRNAME/../lib/sdl2/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java" \
"$DIRNAME/src/main/java/"
cp -f "$DIRNAME/../lib/sdl2/android-project/app/src/main/java/org/libsdl/app/SDLAudioManager.java" \
"$DIRNAME/src/main/java/"
cp -f "$DIRNAME/../lib/sdl2/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java" \
"$DIRNAME/src/main/java/"
cp -f "$DIRNAME/../lib/sdl2/android-project/app/src/main/java/org/libsdl/app/SDL.java" \
"$DIRNAME/src/main/java/"
cp "banner.png" "$DIRNAME/res/drawable/banner.png"
cp "$APP_ICON" "$DIRNAME/res/drawable/icon.png"
convert -scale 72x72 "$APP_ICON" "$DIRNAME/res/drawable-hdpi/icon.png"
convert -scale 48x48 "$APP_ICON" "$DIRNAME/res/drawable-mdpi/icon.png"
convert -scale 72x72 "$APP_ICON" "$DIRNAME/res/drawable-hdpi/icon.png"
convert -scale 96x96 "$APP_ICON" "$DIRNAME/res/drawable-xhdpi/icon.png"
convert -scale 144x144 "$APP_ICON" "$DIRNAME/res/drawable-xxhdpi/icon.png"
convert -scale 192x192 "$APP_ICON" "$DIRNAME/res/drawable-xxxhdpi/icon.png"
#convert -scale 108x108 "$APP_ICON_ADAPTIVE_BG" "$DIRNAME/res/drawable-mdpi/icon_bg.png"
#convert -scale 162x162 "$APP_ICON_ADAPTIVE_BG" "$DIRNAME/res/drawable-hdpi/icon_bg.png"
#convert -scale 216x216 "$APP_ICON_ADAPTIVE_BG" "$DIRNAME/res/drawable-xhdpi/icon_bg.png"
#convert -scale 324x324 "$APP_ICON_ADAPTIVE_BG" "$DIRNAME/res/drawable-xxhdpi/icon_bg.png"
#convert -scale 432x432 "$APP_ICON_ADAPTIVE_BG" "$DIRNAME/res/drawable-xxxhdpi/icon_bg.png"
convert -scale 108x108 xc:"rgba(255,255,255,255)" "$DIRNAME/res/drawable-mdpi/icon_bg.png"
convert -scale 162x162 xc:"rgba(255,255,255,255)" "$DIRNAME/res/drawable-hdpi/icon_bg.png"
convert -scale 216x216 xc:"rgba(255,255,255,255)" "$DIRNAME/res/drawable-xhdpi/icon_bg.png"
convert -scale 324x324 xc:"rgba(255,255,255,255)" "$DIRNAME/res/drawable-xxhdpi/icon_bg.png"
convert -scale 432x432 xc:"rgba(255,255,255,255)" "$DIRNAME/res/drawable-xxxhdpi/icon_bg.png"
convert -scale 108x108 "$APP_ICON_ADAPTIVE_FG" "$DIRNAME/res/drawable-mdpi/icon_fg.png"
convert -scale 162x162 "$APP_ICON_ADAPTIVE_FG" "$DIRNAME/res/drawable-hdpi/icon_fg.png"
convert -scale 216x216 "$APP_ICON_ADAPTIVE_FG" "$DIRNAME/res/drawable-xhdpi/icon_fg.png"
convert -scale 324x324 "$APP_ICON_ADAPTIVE_FG" "$DIRNAME/res/drawable-xxhdpi/icon_fg.png"
convert -scale 432x432 "$APP_ICON_ADAPTIVE_FG" "$DIRNAME/res/drawable-xxxhdpi/icon_fg.png"
if [ -f "/usr/lib/jvm/java-8-openjdk-amd64/bin/java" ]; then
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
export PATH=$JAVA_HOME/bin:$PATH
fi
if [ "$BUILD_TOOL" = "gradle" ]; then
export ANDROID_HOME="$SDK_PATH"
gradle -Pcompile_sdk_version=$COMPILE_SDK_VERSION \
-Pbuild_tools_ver="$BUILD_TOOLS_VER" \
$GRADLE_BUILD_TYPE
elif [ "$BUILD_TOOL" = "ant" ]; then
ant -Dsdk.dir="$SDK_PATH" \
-Dtarget="android-$TARGET_SDK_VERSION" \
$ANT_BUILD_TYPE
export ANDROID_HOME="$SDK_PATH"
./gradlew -Pcompile_sdk_version="$COMPILE_SDK_VERSION" \
-Pmin_sdk_version="$STK_MIN_ANDROID_SDK" \
-Ptarget_sdk_version="$STK_TARGET_ANDROID_SDK" \
-Pstorepass="$STK_STOREPASS" \
-Pkeystore="$STK_KEYSTORE" \
-Palias="$STK_ALIAS" \
-Pndk_version="$STK_NDK_VERSION" \
-Pcompile_arch="$COMPILE_ARCH" \
-Pcpu_core="$CPU_CORE" \
$GRADLE_BUILD_TYPE
if [ "$GRADLE_BUILD_TYPE" = "assembleRelease" ]; then
./gradlew -Pcompile_sdk_version="$COMPILE_SDK_VERSION" \
-Pmin_sdk_version="$STK_MIN_ANDROID_SDK" \
-Ptarget_sdk_version="$STK_TARGET_ANDROID_SDK" \
-Pstorepass="$STK_STOREPASS" \
-Pkeystore="$STK_KEYSTORE" \
-Palias="$STK_ALIAS" \
-Pndk_version="$STK_NDK_VERSION" \
-Pcompile_arch="$COMPILE_ARCH" \
-Pcpu_core="$CPU_CORE" \
"bundleRelease"
fi
check_error

376
android/make_deps.sh Executable file
View File

@@ -0,0 +1,376 @@
#!/bin/sh
# Tested with NDK 22.1.7171670
export DIRNAME=$(realpath "$(dirname "$0")")
export NDK_PATH_DEFAULT="$DIRNAME/android-ndk"
export ARCH_ARMV7=arm
export HOST_ARMV7=arm-linux-androideabi
export ARCH_AARCH64=arm64
export HOST_AARCH64=aarch64-linux-android
export ARCH_X86=x86
export HOST_X86=i686-linux-android
export ARCH_X86_64=x86_64
export HOST_X86_64=x86_64-linux-android
# A helper function that checks if error ocurred
check_error()
{
if [ $? -gt 0 ]; then
echo "Error ocurred."
exit
fi
}
# Handle clean command
if [ ! -z "$1" ] && [ "$1" = "clean" ]; then
rm -rf "$DIRNAME/deps-armeabi-v7a"
rm -rf "$DIRNAME/deps-arm64-v8a"
rm -rf "$DIRNAME/deps-x86"
rm -rf "$DIRNAME/deps-x86_64"
exit
fi
if [ -z "$NDK_PATH" ]; then
export NDK_PATH="$NDK_PATH_DEFAULT"
fi
if [ -z "$STK_NDK_VERSION" ]; then
export STK_NDK_VERSION=23.1.7779620
fi
NDK_PATH="$(realpath "$NDK_PATH")/${STK_NDK_VERSION}"
if [ ! -d "$NDK_PATH" ]; then
echo "Error: Couldn't find $NDK_PATH directory. Please create a symlink" \
"to your Android NDK installation in the $NDK_PATH_DEFAULT or set" \
"proper path in the NDK_PATH variable"
exit
fi
export NDK_TOOLCHAIN_PATH="$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin"
export NDK_SYSROOT="$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/sysroot"
export PATH="$NDK_TOOLCHAIN_PATH:$PATH"
build_deps()
{
export ARCH_OPTION=$1
if [ "$ARCH_OPTION" = "armv7" ]; then
ARCH_OPTION="armeabi-v7a"
export ARCH=$ARCH_ARMV7
# Special case
export HOST=armv7a-linux-androideabi16
export HOST_DIR=$HOST_ARMV7
elif [ "$ARCH_OPTION" = "aarch64" ]; then
ARCH_OPTION="arm64-v8a"
export ARCH=$ARCH_AARCH64
export HOST_DIR=$HOST_AARCH64
export HOST="${HOST_DIR}21"
elif [ "$ARCH_OPTION" = "x86" ]; then
export ARCH=$ARCH_X86
export HOST_DIR=$HOST_X86
export HOST="${HOST_DIR}16"
elif [ "$ARCH_OPTION" = "x86_64" ]; then
export ARCH=$ARCH_X86_64
export HOST_DIR=$HOST_X86_64
export HOST="${HOST_DIR}21"
else
echo "Unknown architecture: $1. Possible values are:"\
"all, armv7, aarch64, x86, x86_64"
exit
fi
# Zlib
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/zlib.stamp" ]; then
echo "Compiling $ARCH_OPTION zlib"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/zlib"
cp -a -f "$DIRNAME/../lib/zlib/"* "$DIRNAME/deps-$ARCH_OPTION/zlib"
cd "$DIRNAME/deps-$ARCH_OPTION/zlib"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/zlib.stamp"
fi
# Libpng
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/libpng.stamp" ]; then
echo "Compiling $ARCH_OPTION libpng"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/libpng"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/libpng/lib"
cp -a -f "$DIRNAME/../lib/libpng/"* "$DIRNAME/deps-$ARCH_OPTION/libpng"
cd "$DIRNAME/deps-$ARCH_OPTION/libpng"
MLIBRARY="$NDK_SYSROOT/usr/lib/$HOST_DIR/libm.a"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH \
-DZLIB_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/zlib/libz.a" \
-DZLIB_INCLUDE_DIR="$DIRNAME/deps-$ARCH_OPTION/zlib/" \
-DM_LIBRARY="$MLIBRARY" \
-DPNG_TESTS=0 -DCMAKE_C_FLAGS="-fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/libpng.stamp"
fi
# Freetype bootstrap
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/freetype_bootstrap.stamp" ]; then
echo "Compiling $ARCH_OPTION freetype bootstrap"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/freetype/build"
cp -a -f "$DIRNAME/../lib/freetype/"* "$DIRNAME/deps-$ARCH_OPTION/freetype"
cd "$DIRNAME/deps-$ARCH_OPTION/freetype/build"
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH \
-DZLIB_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/zlib/libz.a" \
-DZLIB_INCLUDE_DIR="$DIRNAME/deps-$ARCH_OPTION/zlib/" \
-DPNG_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/libpng/libpng.a" \
-DPNG_PNG_INCLUDE_DIR="$DIRNAME/deps-$ARCH_OPTION/libpng/" \
-DFT_WITH_HARFBUZZ=OFF -DFT_WITH_BZIP2=OFF \
-DFT_WITH_BROTLI=OFF -DFT_WITH_ZLIB=ON -DFT_WITH_PNG=ON \
-DCMAKE_C_FLAGS="-fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
# We need to rebuild freetype after harfbuzz is compiled
touch "$DIRNAME/deps-$ARCH_OPTION/freetype_bootstrap.stamp"
fi
# Harfbuzz
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/harfbuzz.stamp" ]; then
echo "Compiling $ARCH_OPTION harfbuzz"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/harfbuzz/build"
cp -a -f "$DIRNAME/../lib/harfbuzz/"* "$DIRNAME/deps-$ARCH_OPTION/harfbuzz"
cd "$DIRNAME/deps-$ARCH_OPTION/harfbuzz/build"
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DBUILD_SHARED_LIBS=OFF \
-DFREETYPE_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/freetype/build/libfreetype.a $DIRNAME/deps-$ARCH_OPTION/libpng/libpng.a $DIRNAME/deps-$ARCH_OPTION/zlib/libz.a" \
-DFREETYPE_INCLUDE_DIRS="$DIRNAME/deps-$ARCH_OPTION/freetype/include/" \
-DHB_HAVE_GLIB=OFF -DHB_HAVE_GOBJECT=OFF -DHB_HAVE_ICU=OFF \
-DHB_HAVE_FREETYPE=ON -DHB_BUILD_SUBSET=OFF \
-DCMAKE_C_FLAGS="-fpic -O3 -g" -DCMAKE_CXX_FLAGS="-std=gnu++0x -fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/harfbuzz/include/harfbuzz"
cp $DIRNAME/deps-$ARCH_OPTION/harfbuzz/src/*.h "$DIRNAME/deps-$ARCH_OPTION/harfbuzz/include/harfbuzz"
touch "$DIRNAME/deps-$ARCH_OPTION/harfbuzz.stamp"
fi
# Freetype
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/freetype.stamp" ]; then
echo "Compiling $ARCH_OPTION freetype"
cd "$DIRNAME/deps-$ARCH_OPTION/freetype/build"
rm -rf *
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH \
-DZLIB_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/zlib/libz.a" \
-DZLIB_INCLUDE_DIR="$DIRNAME/deps-$ARCH_OPTION/zlib/" \
-DPNG_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/libpng/libpng.a" \
-DPNG_PNG_INCLUDE_DIR="$DIRNAME/deps-$ARCH_OPTION/libpng/" \
-DHarfBuzz_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/harfbuzz/build/libharfbuzz.a" \
-DHarfBuzz_INCLUDE_DIR="$DIRNAME/deps-$ARCH_OPTION/harfbuzz/src/" \
-DFT_WITH_HARFBUZZ=ON -DFT_WITH_BZIP2=OFF \
-DFT_WITH_BROTLI=OFF -DFT_WITH_ZLIB=ON -DFT_WITH_PNG=ON \
-DCMAKE_C_FLAGS="-fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/freetype.stamp"
fi
# Openal
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/openal.stamp" ]; then
echo "Compiling $ARCH_OPTION openal"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/openal"
cp -a -f "$DIRNAME/../lib/openal/"* "$DIRNAME/deps-$ARCH_OPTION/openal"
cd "$DIRNAME/deps-$ARCH_OPTION/openal"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DALSOFT_UTILS=0 -DALSOFT_EXAMPLES=0 \
-DLIBTYPE=STATIC -DOPENSL_LIBRARY="-lOpenSLES" \
-DOPENSL_INCLUDE_DIR="$NDK_SYSROOT/usr/include/SLES/" \
-DOPENSL_ANDROID_INCLUDE_DIR="$NDK_SYSROOT/usr/include/SLES/" \
-DCMAKE_C_FLAGS="-fpic -O3 -g" -DCMAKE_CXX_FLAGS="-fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/openal.stamp"
fi
# MbedTLS
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/mbedtls.stamp" ]; then
echo "Compiling $ARCH_OPTION mbedtls"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/mbedtls"
cp -a -f "$DIRNAME/../lib/mbedtls/"* "$DIRNAME/deps-$ARCH_OPTION/mbedtls"
cd "$DIRNAME/deps-$ARCH_OPTION/mbedtls"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DBUILD_SHARED_LIBS=OFF \
-DENABLE_TESTING=OFF -DENABLE_PROGRAMS=OFF \
-DCMAKE_C_FLAGS="-fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/mbedtls.stamp"
fi
# Curl
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/curl.stamp" ]; then
echo "Compiling $ARCH_OPTION curl"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/curl"
cp -a -f "$DIRNAME/../lib/curl/"* "$DIRNAME/deps-$ARCH_OPTION/curl"
cd "$DIRNAME/deps-$ARCH_OPTION/curl"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DBUILD_SHARED_LIBS=OFF \
-DZLIB_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/zlib/libz.a" \
-DZLIB_INCLUDE_DIR="$DIRNAME/deps-$ARCH_OPTION/zlib/" \
-DMBEDCRYPTO_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/mbedtls/library/libmbedcrypto.a" \
-DMBEDTLS_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/mbedtls/library/libmbedtls.a" \
-DMBEDX509_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/mbedtls/library/libmbedx509.a" \
-DMBEDTLS_INCLUDE_DIRS="$DIRNAME/deps-$ARCH_OPTION/mbedtls/include/" \
-DBUILD_TESTING=OFF -DBUILD_CURL_EXE=OFF \
-DCURL_USE_MBEDTLS=ON -DUSE_ZLIB=ON -DCURL_USE_OPENSSL=OFF \
-DCURL_USE_LIBSSH=OFF -DCURL_USE_LIBSSH2=OFF \
-DCURL_USE_GSSAPI=OFF -DUSE_NGHTTP2=OFF -DUSE_QUICHE=OFF \
-DHTTP_ONLY=ON -DCURL_CA_BUNDLE=none -DCURL_CA_PATH=none \
-DENABLE_THREADED_RESOLVER=ON -DCMAKE_C_FLAGS="-fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/curl.stamp"
fi
# Libjpeg
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/libjpeg.stamp" ]; then
echo "Compiling $ARCH_OPTION libjpeg"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/libjpeg"
cp -a -f "$DIRNAME/../lib/libjpeg/"* "$DIRNAME/deps-$ARCH_OPTION/libjpeg"
cd "$DIRNAME/deps-$ARCH_OPTION/libjpeg"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/libjpeg.stamp"
fi
# Libogg
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/libogg.stamp" ]; then
echo "Compiling $ARCH_OPTION libogg"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/libogg"
cp -a -f "$DIRNAME/../lib/libogg/"* "$DIRNAME/deps-$ARCH_OPTION/libogg"
cd "$DIRNAME/deps-$ARCH_OPTION/libogg"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic -O3 -g" &&
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/libogg.stamp"
fi
# Libvorbis
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/libvorbis.stamp" ]; then
echo "Compiling $ARCH_OPTION libvorbis"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/libvorbis"
cp -a -f "$DIRNAME/../lib/libvorbis/"* "$DIRNAME/deps-$ARCH_OPTION/libvorbis"
cd "$DIRNAME/deps-$ARCH_OPTION/libvorbis"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic -O3 -g" \
-DOGG_LIBRARY="$DIRNAME/deps-$ARCH_OPTION/libogg/libogg.a" \
-DOGG_INCLUDE_DIR="$DIRNAME/deps-$ARCH_OPTION/libogg/include" &&
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/libvorbis.stamp"
fi
# Shaderc
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/shaderc.stamp" ]; then
echo "Compiling $ARCH_OPTION shaderc"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/shaderc"
cp -a -f "$DIRNAME/../lib/shaderc/"* "$DIRNAME/deps-$ARCH_OPTION/shaderc"
cd "$DIRNAME/deps-$ARCH_OPTION/shaderc"
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic -O3" \
-DCMAKE_CXX_FLAGS="-fpic -O3" -DSHADERC_SKIP_INSTALL=1 \
-DCMAKE_BUILD_TYPE=Release \
-DSHADERC_SKIP_TESTS=1 -DSHADERC_SKIP_EXAMPLES=1 \
-DSPIRV_HEADERS_SKIP_INSTALL=1 -DSPIRV_HEADERS_SKIP_EXAMPLES=1 \
-DSKIP_SPIRV_TOOLS_INSTALL=1 -DSPIRV_SKIP_TESTS=1 \
-DSPIRV_SKIP_EXECUTABLES=1 -DENABLE_GLSLANG_BINARIES=0 \
-DENABLE_CTEST=0 &&
make -j $(($(nproc) + 1))
# Strip debug symbol to make app bundle smaller
llvm-strip --strip-debug "$DIRNAME/deps-$ARCH_OPTION/shaderc/libshaderc/libshaderc_combined.a"
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/shaderc.stamp"
fi
# Libsquish
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/libsquish.stamp" ]; then
echo "Compiling $ARCH_OPTION libsquish"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/libsquish"
cp -a -f "$DIRNAME/../lib/libsquish/"* "$DIRNAME/deps-$ARCH_OPTION/libsquish"
cd "$DIRNAME/deps-$ARCH_OPTION/libsquish"
if [[ "$ARCH_OPTION" = "x86" || "$ARCH_OPTION" = "x86_64" ]]; then
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH \
-DCMAKE_C_FLAGS="-fpic -O3 -g -DSQUISH_USE_SSE=2 -msse2" \
-DCMAKE_CXX_FLAGS="-fpic -O3 -g -DSQUISH_USE_SSE=2 -msse2"
else
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic -O3 -g" \
-DCMAKE_CXX_FLAGS="-fpic -O3 -g"
fi
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/libsquish.stamp"
fi
# ASTC-encoder
if [ ! -f "$DIRNAME/deps-$ARCH_OPTION/astc-encoder.stamp" ]; then
echo "Compiling $ARCH_OPTION astc-encoder"
mkdir -p "$DIRNAME/deps-$ARCH_OPTION/astc-encoder"
cp -a -f "$DIRNAME/../lib/astc-encoder/"* "$DIRNAME/deps-$ARCH_OPTION/astc-encoder"
cd "$DIRNAME/deps-$ARCH_OPTION/astc-encoder"
sed -i '/-Werror/d' Source/cmake_core.cmake
sed -i 's|${ASTC_TARGET}-static|astcenc|g' Source/cmake_core.cmake
if [ "$ARCH_OPTION" = "armeabi-v7a" ]; then
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DSTK_ARM_NEON=ON \
-DCMAKE_C_FLAGS="-fpic -O3 -g -mfpu=neon" \
-DCMAKE_CXX_FLAGS="-fpic -O3 -g -mfpu=neon" \
-DNO_INVARIANCE=ON -DCLI=OFF
elif [ "$ARCH_OPTION" = "arm64-v8a" ]; then
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic -O3 -g" \
-DCMAKE_CXX_FLAGS="-fpic -O3 -g" \
-DISA_NEON=ON -DNO_INVARIANCE=ON -DCLI=OFF
elif [ "$ARCH_OPTION" = "x86" ]; then
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic -O3 -g" \
-DCMAKE_CXX_FLAGS="-fpic -O3 -g" \
-DISA_SSE2=ON -DNO_INVARIANCE=ON -DCLI=OFF
else
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic -O3 -g" \
-DCMAKE_CXX_FLAGS="-fpic -O3 -g" \
-DISA_SSE41=ON -DNO_INVARIANCE=ON -DCLI=OFF
fi
make -j $(($(nproc) + 1))
check_error
touch "$DIRNAME/deps-$ARCH_OPTION/astc-encoder.stamp"
fi
}
if [ -z "$COMPILE_ARCH" ] || [ "$COMPILE_ARCH" = "all" ]; then
build_deps armv7
build_deps aarch64
build_deps x86
build_deps x86_64
else
build_deps "$COMPILE_ARCH"
fi

View File

@@ -0,0 +1,298 @@
package org.supertuxkart.stk_dbg;
import org.libsdl.app.SDLActivity;
import org.supertuxkart.stk_dbg.STKInputConnection;
import android.content.Context;
import android.text.InputType;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputMethodManager;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
// We need to extend EditText instead of view to allow copying to our STK
// editbox
public class STKEditText extends EditText
{
private int m_composing_start;
private int m_composing_end;
/* Used to prevent copying text to non focused widget in STK. */
private int m_stk_widget_id;
private STKInputConnection m_stk_input_connection;
/* Used to avoid infinite calling updateSTKEditBox if setText currently
* by jni or clearing text when out focus. */
private boolean m_from_stk_editbox;
// ------------------------------------------------------------------------
private native static void editText2STKEditbox(int widget_id,
String full_text, int start,
int end,
int composing_start,
int composing_end);
// ------------------------------------------------------------------------
private native static void handleActionNext(int widget_id);
// ------------------------------------------------------------------------
private native static void handleLeftRight(boolean left, int widget_id);
// ------------------------------------------------------------------------
public STKEditText(Context context)
{
super(context);
setInputType(InputType.TYPE_CLASS_TEXT);
setFocusableInTouchMode(true);
m_composing_start = 0;
m_composing_end = 0;
m_stk_widget_id = -1;
m_from_stk_editbox = false;
m_stk_input_connection = null;
setOnEditorActionListener(new EditText.OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int action_id,
KeyEvent event)
{
if (action_id == EditorInfo.IME_ACTION_NEXT)
{
handleActionNext(m_stk_widget_id);
// STK will handle the closing of the screen keyboard
return true;
}
return false;
}
});
setOnKeyListener(new EditText.OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
// Up or down pressed, leave focus
if (keyCode == KeyEvent.KEYCODE_DPAD_UP ||
keyCode == KeyEvent.KEYCODE_DPAD_DOWN)
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
beforeHideKeyboard(true/*clear_text*/);
SDLActivity.onNativeKeyDown(keyCode);
SDLActivity.onNativeKeyUp(keyCode);
}
return true;
}
// For left or right let STK decides
else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT &&
getSelectionStart() == 0)
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
beforeHideKeyboard(true/*clear_text*/);
handleLeftRight(true, m_stk_widget_id);
}
else
updateSTKEditBox();
return true;
}
else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT &&
getSelectionEnd() == getText().length())
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
beforeHideKeyboard(true/*clear_text*/);
handleLeftRight(false, m_stk_widget_id);
}
else
updateSTKEditBox();
return true;
}
else if (keyCode == KeyEvent.KEYCODE_ENTER)
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
handleActionNext(m_stk_widget_id);
return true;
}
// Requires for hardware key like "Ctrl-a" so it will select
// all text in stk edit box
updateSTKEditBox();
return false;
}
});
}
// ------------------------------------------------------------------------
@Override
public InputConnection onCreateInputConnection(EditorInfo out_attrs)
{
if (m_stk_input_connection == null)
{
m_stk_input_connection = new STKInputConnection(
super.onCreateInputConnection(out_attrs), this);
}
out_attrs.actionLabel = null;
out_attrs.inputType = getInputType();
out_attrs.imeOptions = EditorInfo.IME_ACTION_NEXT |
EditorInfo.IME_FLAG_NO_FULLSCREEN |
EditorInfo.IME_FLAG_NO_EXTRACT_UI;
return m_stk_input_connection;
}
// ------------------------------------------------------------------------
@Override
public boolean onCheckIsTextEditor() { return true; }
// ------------------------------------------------------------------------
@Override
public boolean onKeyPreIme(int key_code, KeyEvent event)
{
// Always remove the focus on STKEdit when pressing back button in
// phone, which hideSoftInputFromWindow is called by java itself
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK &&
event.getAction() == KeyEvent.ACTION_UP)
beforeHideKeyboard(false/*clear_text*/);
return false;
}
// ------------------------------------------------------------------------
public void setComposingRegion(int start, int end)
{
// From doc of InputConnectionWrapper, it says:
// Editor authors, be ready to accept a start that is greater than end.
if (start != end && start > end)
{
m_composing_end = start;
m_composing_start = end;
}
else
{
m_composing_start = start;
m_composing_end = end;
}
}
// ------------------------------------------------------------------------
public void updateSTKEditBox()
{
if (!isFocused() || m_from_stk_editbox)
return;
editText2STKEditbox(m_stk_widget_id, getText().toString(),
getSelectionStart(), getSelectionEnd(), m_composing_start,
m_composing_end);
}
// ------------------------------------------------------------------------
public void beforeHideKeyboard(final boolean clear_text)
{
try
{
if (clear_text)
{
// No need updating stk editbox on clearing text when out focus
m_from_stk_editbox = true;
{
super.clearComposingText();
super.getText().clear();
}
m_from_stk_editbox = false;
}
clearFocus();
setVisibility(View.GONE);
SDLActivity.reFocusAfterSTKEditText();
}
catch (Exception e)
{
m_from_stk_editbox = false;
}
}
// ------------------------------------------------------------------------
/* Called by STK with JNI to set this view with new text (like user focus
* a new editbox in stk, or change cursor / selection). */
public void setTextFromSTK(int widget_id, final String text,
int selection_start, int selection_end)
{
m_stk_widget_id = widget_id;
// Avoid sending the newly set text back to STK at the same time
m_from_stk_editbox = true;
try
{
String old_text = getText().toString();
boolean text_changed = !text.equals(old_text);
if (text_changed)
{
super.clearComposingText();
super.setText(text);
m_stk_input_connection.setComposingRegion(0, 0);
}
if (selection_start != selection_end &&
selection_start > selection_end)
{
int temp = selection_end;
selection_end = selection_start;
selection_start = temp;
}
if (selection_start < 0)
selection_start = 0;
if (selection_end > length())
selection_end = length();
if (text_changed)
{
InputMethodManager imm = (InputMethodManager)getContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null)
{
// From google, You should call this when the text within
// your view changes outside of the normal input method or
// key input flow, such as when an application calls
// TextView.setText().
imm.restartInput(this);
}
}
setSelection(selection_start, selection_end);
}
catch (Exception e)
{
m_from_stk_editbox = false;
}
m_from_stk_editbox = false;
}
// ------------------------------------------------------------------------
public STKInputConnection getSTKInputConnection()
{ return m_stk_input_connection; }
// ------------------------------------------------------------------------
public void configType(final int type)
{
int it = InputType.TYPE_CLASS_TEXT;
// Check text_box_widget.hpp for definition
switch (type)
{
case 0:
{
it = InputType.TYPE_CLASS_TEXT;
break;
}
case 1:
{
it = InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_FLAG_CAP_SENTENCES;
break;
}
case 2:
{
it = InputType.TYPE_TEXT_VARIATION_PASSWORD;
break;
}
case 3:
{
it = InputType.TYPE_CLASS_NUMBER;
break;
}
case 4:
{
it = InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
break;
}
default:
break;
}
if (it != getInputType())
setInputType(it);
}
}

View File

@@ -0,0 +1,68 @@
package org.supertuxkart.stk_dbg;
import org.supertuxkart.stk_dbg.STKEditText;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputConnectionWrapper;
public class STKInputConnection extends InputConnectionWrapper
{
/* The global edittext which will be "copied" to the current focused STK
* box. */
final private STKEditText m_stk_edittext;
// ------------------------------------------------------------------------
public STKInputConnection(InputConnection target, STKEditText stk_edittext)
{
super(target, true/*mutable*/);
m_stk_edittext = stk_edittext;
}
// ------------------------------------------------------------------------
@Override
public boolean setComposingText(CharSequence text, int new_cursor_position)
{
boolean ret = super.setComposingText(text, new_cursor_position);
String composing_text = text.toString();
String new_text = m_stk_edittext.getText().toString();
int composing_start = 0;
int composing_end = 0;
// Test last char
if (!composing_text.isEmpty() && !new_text.isEmpty() &&
composing_text.charAt(composing_text.length() - 1) ==
new_text.charAt(new_text.length() - 1))
{
composing_start = new_text.length() - composing_text.length();
composing_end = composing_start + composing_text.length();
}
m_stk_edittext.setComposingRegion(composing_start, composing_end);
m_stk_edittext.updateSTKEditBox();
return ret;
}
// ------------------------------------------------------------------------
@Override
public boolean finishComposingText()
{
m_stk_edittext.setComposingRegion(0, 0);
m_stk_edittext.updateSTKEditBox();
return super.finishComposingText();
}
// ------------------------------------------------------------------------
@Override
public boolean setComposingRegion(int start, int end)
{
m_stk_edittext.setComposingRegion(start, end);
m_stk_edittext.updateSTKEditBox();
return super.setComposingRegion(start, end);
}
// ------------------------------------------------------------------------
@Override
public boolean commitText(CharSequence text, int new_cursor_position)
{
// Usually only a single character, so dismiss composing region
boolean ret = super.commitText(text, new_cursor_position);
m_stk_edittext.setComposingRegion(0, 0);
m_stk_edittext.updateSTKEditBox();
return ret;
}
}

View File

@@ -0,0 +1,528 @@
package org.supertuxkart.stk_dbg;
import org.supertuxkart.stk_dbg.STKEditText;
import org.libsdl.app.SDLActivity;
import org.libsdl.app.SDL;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.AssetManager;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Process;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Display;
import android.view.DisplayCutout;
import android.view.Gravity;
import android.view.inputmethod.InputMethodManager;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.view.View;
import android.view.Window;
import android.view.WindowInsets;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.util.DisplayMetrics;
import java.io.InputStream;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.Set;
import org.minidns.hla.DnssecResolverApi;
import org.minidns.hla.ResolverResult;
import org.minidns.record.SRV;
import org.minidns.record.TXT;
public class SuperTuxKartActivity extends SDLActivity
{
private AlertDialog m_progress_dialog;
private ProgressBar m_progress_bar;
private ImageView m_splash_screen;
private STKEditText m_stk_edittext;
private int m_bottom_y;
private int m_intial_orientation;
private float m_top_padding;
private float m_bottom_padding;
private float m_left_padding;
private float m_right_padding;
private AtomicInteger m_keyboard_height;
private AtomicInteger m_moved_height;
// ------------------------------------------------------------------------
public native static void debugMsg(String msg);
// ------------------------------------------------------------------------
private native static void handlePadding(boolean val);
// ------------------------------------------------------------------------
private native static void saveKeyboardHeight(int height);
// ------------------------------------------------------------------------
private native static void saveMovedHeight(int height);
// ------------------------------------------------------------------------
private native static void addDNSSrvRecords(String name, int weight);
// ------------------------------------------------------------------------
private native static void pauseRenderingJNI();
// ------------------------------------------------------------------------
private void showExtractProgressPrivate()
{
WindowManager wm =
(WindowManager)getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics display_metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(display_metrics);
int padding = display_metrics.widthPixels / 64;
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
ll.setPadding(padding, padding, padding, padding);
ll.setGravity(Gravity.CENTER);
LinearLayout.LayoutParams ll_param = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
ll_param.gravity = Gravity.CENTER;
TextView tv = new TextView(this);
// From values strings.xml which is generated by make.sh
tv.setText(getString(R.string.po_extract_game_data));
tv.setLayoutParams(ll_param);
ll_param = new LinearLayout.LayoutParams(
display_metrics.widthPixels,
LinearLayout.LayoutParams.WRAP_CONTENT);
ll_param.gravity = Gravity.CENTER;
ll.setLayoutParams(ll_param);
m_progress_bar = new ProgressBar(this, null,
android.R.attr.progressBarStyleHorizontal);
m_progress_bar.setIndeterminate(false);
m_progress_bar.setPadding(0, padding, 0, padding);
m_progress_bar.setLayoutParams(ll_param);
ll.addView(tv);
ll.addView(m_progress_bar);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(false);
builder.setView(ll);
m_progress_dialog = builder.create();
m_progress_dialog.show();
Window window = m_progress_dialog.getWindow();
if (window != null)
{
WindowManager.LayoutParams layout_params =
new WindowManager.LayoutParams();
layout_params.copyFrom(
m_progress_dialog.getWindow().getAttributes());
layout_params.width = WindowManager.LayoutParams.MATCH_PARENT;
layout_params.height = LinearLayout.LayoutParams.WRAP_CONTENT;
m_progress_dialog.getWindow().setAttributes(layout_params);
}
}
// ------------------------------------------------------------------------
private void hideKeyboardNative(final boolean clear_text)
{
if (m_stk_edittext == null)
return;
m_stk_edittext.beforeHideKeyboard(clear_text);
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm == null)
return;
imm.hideSoftInputFromWindow(m_stk_edittext.getWindowToken(), 0);
}
// ------------------------------------------------------------------------
private void createSTKEditText()
{
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT);
// We move the dummy edittext out of the android screen because we draw
// our own manually
params.setMargins(0, -100000, 1, -100010);
m_stk_edittext = new STKEditText(this);
// For some copy-and-paste text are not done by commitText in
// STKInputConnection, so we need an extra watcher
m_stk_edittext.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {}
@Override
public void afterTextChanged(Editable edit)
{
if (m_stk_edittext != null)
m_stk_edittext.updateSTKEditBox();
}
});
addContentView(m_stk_edittext, params);
// Only focus it and make visible when soft keybord is opened
m_stk_edittext.setVisibility(View.GONE);
}
// ------------------------------------------------------------------------
@Override
public void onCreate(Bundle instance)
{
super.onCreate(instance);
m_keyboard_height = new AtomicInteger();
m_moved_height = new AtomicInteger();
m_progress_dialog = null;
m_progress_bar = null;
m_splash_screen = null;
m_bottom_y = m_intial_orientation = 0;
m_top_padding = m_bottom_padding = m_left_padding = m_right_padding =
0.0f;
final View root = getWindow().getDecorView().findViewById(
android.R.id.content);
root.getViewTreeObserver().addOnGlobalLayoutListener(new
OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout()
{
Rect r = new Rect();
root.getWindowVisibleDisplayFrame(r);
int screen_height = root.getRootView().getHeight();
int keyboard_height = screen_height - (r.bottom);
m_keyboard_height.set(keyboard_height);
int moved_height = 0;
int margin = screen_height - m_bottom_y;
if (keyboard_height > margin)
moved_height = -keyboard_height + margin;
m_moved_height.set(-moved_height);
SDLActivity.moveView(moved_height);
}
});
InputStream istr = null;
try
{
LinearLayout ll = new LinearLayout(this);
LinearLayout.LayoutParams ll_param = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
ll.setLayoutParams(ll_param);
WindowManager wm =
(WindowManager)getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics display_metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(display_metrics);
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
int w = display_metrics.widthPixels;
int h = display_metrics.heightPixels;
Bitmap scaled = Bitmap.createBitmap(w, h, conf);
Canvas canvas = new Canvas(scaled);
istr = getAssets().open("data/gui/icons/logo.png");
Bitmap logo = BitmapFactory.decodeStream(istr);
Rect src = new Rect(0, 0, logo.getWidth(), logo.getHeight());
// STK logo is a square
int target_size = w;
if (target_size > h)
target_size = h;
target_size /= 2;
Rect dest = new Rect(w / 2 - target_size / 2,
h / 2 - target_size / 2,
w / 2 - target_size / 2 + target_size,
h / 2 - target_size / 2 + target_size);
canvas.drawBitmap(logo, src, dest, null);
m_splash_screen = new ImageView(this);
m_splash_screen.setBackgroundColor(Color.argb(255, 168, 168, 168));
m_splash_screen.setImageDrawable(new BitmapDrawable(getResources(),
scaled));
addContentView(m_splash_screen, ll_param);
}
catch (Exception e) {}
finally
{
try
{
if (istr != null)
istr.close();
}
catch(Exception e) {}
}
}
// ------------------------------------------------------------------------
@Override
public void onStart()
{
super.onStart();
m_keyboard_height.set(0);
m_moved_height.set(0);
}
// ------------------------------------------------------------------------
@Override
public void onPause()
{
super.onPause();
hideKeyboardNative(false/*clear_text*/);
if (SDLActivity.mSDLThread != null)
pauseRenderingJNI();
}
// ------------------------------------------------------------------------
/* SDL manually dlopen main to allow unload after main thread exit. */
protected String[] getLibraries()
{
return new String[]{ "SDL2" };
}
// ------------------------------------------------------------------------
protected String getMainSharedObject()
{
return getContext().getApplicationInfo().nativeLibraryDir + "/libmain.so";
}
// ------------------------------------------------------------------------
public void showKeyboard(final int type, final int y)
{
final Context context = this;
// Need to run in ui thread as it access the view m_stk_edittext
runOnUiThread(new Runnable()
{
@Override
public void run()
{
m_bottom_y = y;
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm == null)
return;
if (m_stk_edittext == null)
createSTKEditText();
m_stk_edittext.configType(type);
m_stk_edittext.setVisibility(View.VISIBLE);
m_stk_edittext.requestFocus();
imm.showSoftInput(m_stk_edittext,
InputMethodManager.SHOW_FORCED);
}
});
}
// ------------------------------------------------------------------------
/* Called by STK in JNI. */
public void hideKeyboard(final boolean clear_text)
{
runOnUiThread(new Runnable()
{
@Override
public void run()
{
m_bottom_y = 0;
hideKeyboardNative(clear_text);
}
});
}
// ------------------------------------------------------------------------
/* Called by STK in JNI. */
public void fromSTKEditBox(final int widget_id, final String text,
final int selection_start,
final int selection_end, final int type)
{
runOnUiThread(new Runnable()
{
@Override
public void run()
{
if (m_stk_edittext == null)
createSTKEditText();
m_stk_edittext.configType(type);
m_stk_edittext.setTextFromSTK(widget_id, text, selection_start,
selection_end);
}
});
}
// ------------------------------------------------------------------------
public String[] getDNSTxtRecords(String domain)
{
try
{
ResolverResult<TXT> txts =
DnssecResolverApi.INSTANCE.resolve(domain, TXT.class);
Set<TXT> ans = txts.getAnswers();
String[] result = new String[ans.size()];
int i = 0;
for (TXT t : ans)
result[i++] = t.getText();
return result;
}
catch (Exception e)
{
e.printStackTrace();
return new String[0];
}
}
// ------------------------------------------------------------------------
public void getDNSSrvRecords(String domain)
{
try
{
ResolverResult<SRV> srvs =
DnssecResolverApi.INSTANCE.resolve(domain, SRV.class);
Set<SRV> ans = srvs.getAnswers();
for (SRV s : ans)
addDNSSrvRecords(s.target.toString() + ":" + s.port, s.weight);
}
catch (Exception e)
{
e.printStackTrace();
}
}
// ------------------------------------------------------------------------
public boolean isHardwareKeyboardConnected()
{
return getResources().getConfiguration()
.keyboard == Configuration.KEYBOARD_QWERTY;
}
// ------------------------------------------------------------------------
public int getScreenSize()
{
return getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
}
// ------------------------------------------------------------------------
public float getTopPadding() { return m_top_padding; }
// ------------------------------------------------------------------------
public float getBottomPadding() { return m_bottom_padding; }
// ------------------------------------------------------------------------
public float getLeftPadding() { return m_left_padding; }
// ------------------------------------------------------------------------
public float getRightPadding() { return m_right_padding; }
// ------------------------------------------------------------------------
public int getInitialOrientation() { return m_intial_orientation; }
// ------------------------------------------------------------------------
public void showExtractProgress(final int progress)
{
runOnUiThread(new Runnable()
{
@Override
public void run()
{
if (progress == -1)
{
if (m_progress_dialog != null)
{
m_progress_dialog.dismiss();
m_progress_dialog = null;
m_progress_bar = null;
}
AlertDialog.Builder error =
new AlertDialog.Builder(SDL.getContext());
error.setMessage(getString(R.string.po_extract_error_msg));
error.setTitle(getString(R.string.po_extract_error));
error.setPositiveButton(getString(R.string.po_quit),
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog,
int id)
{
android.os.Process.killProcess(
android.os.Process.myPid());
}
});
error.setCancelable(false);
error.create().show();
return;
}
if (progress == 0 && m_progress_dialog == null)
showExtractProgressPrivate();
else if (progress == 100 && m_progress_dialog != null)
{
m_progress_dialog.dismiss();
m_progress_dialog = null;
m_progress_bar = null;
}
else if (m_progress_bar != null &&
m_progress_bar.getProgress() != progress)
{
m_progress_bar.setProgress(progress);
}
}
});
}
// ------------------------------------------------------------------------
public void hideSplashScreen()
{
if (m_splash_screen != null)
{
m_splash_screen.animate().setDuration(200).alpha(0).setListener(
new AnimatorListenerAdapter()
{
@Override
public void onAnimationEnd(Animator animation)
{
if (m_splash_screen.getParent() instanceof ViewGroup)
{
ViewGroup view = (ViewGroup)m_splash_screen.getParent();
view.removeView(m_splash_screen);
m_splash_screen = null;
}
}
});
}
}
// ------------------------------------------------------------------------
@Override
public void onAttachedToWindow()
{
super.onAttachedToWindow();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
{
DisplayCutout dc = getWindow().getDecorView().getRootWindowInsets()
.getDisplayCutout();
if (dc != null)
{
m_top_padding = (float)dc.getBoundingRectTop().height();
m_bottom_padding = (float)dc.getBoundingRectBottom().height();
m_left_padding = (float)dc.getBoundingRectLeft().width();
m_right_padding = (float)dc.getBoundingRectRight().width();
// Left or right will depend on the device initial orientation
// So save it for dealing with device rotation later
m_intial_orientation = SDLActivity.getCurrentOrientation();
}
}
}
// ------------------------------------------------------------------------
@Override
public void onMultiWindowModeChanged(boolean isInMultiWindowMode,
Configuration newConfig)
{
handlePadding(isInMultiWindowMode);
}
// ------------------------------------------------------------------------
public int getKeyboardHeight() { return m_keyboard_height.get(); }
// ------------------------------------------------------------------------
public int getMovedHeight() { return m_moved_height.get(); }
}

View File

@@ -10,20 +10,16 @@
# Freetype library list
if(WIN32)
find_path(FREETYPE_INCLUDE_DIRS NAMES freetype/freetype.h PATHS "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/include")
find_library(FREETYPE_LIBRARY NAMES freetype PATHS "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib")
find_path(FREETYPE_INCLUDE_DIRS NAMES freetype/freetype.h PATHS "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/include/freetype2")
find_library(FREETYPE_LIBRARY NAMES freetype libfreetype PATHS "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib")
set(FREETYPE_FOUND 1)
set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY})
elseif(APPLE)
find_path(FREETYPE_INCLUDE_DIRS NAMES freetype/freetype.h PATHS "/Library/Frameworks/FreeType.Framework/Versions/2.4/unix/include")
find_library(FREETYPE_LIBRARY NAMES freetype PATHS "/Library/Frameworks/FreeType.Framework/Versions/2.4/")
include_directories(/Library/Frameworks/FreeType.Framework/Versions/2.4/unix/include)
elseif(APPLE OR ${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
find_path(FREETYPE_INCLUDE_DIRS NAMES ft2build.h PATH_SUFFIXES freetype2 include/freetype2 include)
find_library(FREETYPE_LIBRARY NAMES freetype)
set(FREETYPE_FOUND 1)
set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY})
elseif(UNIX)
include(FindPkgConfig)
pkg_check_modules(FREETYPE freetype2)
else()
set(FREETYPE_FOUND 0)
pkg_check_modules(FREETYPE freetype2)
endif()

View File

@@ -1,35 +0,0 @@
# - Find Fribidi
# Find the Fribidi includes and libraries
#
# Following variables are provided:
# FRIBIDI_FOUND
# True if Fribidi has been found
# FRIBIDI_INCLUDE_DIRS
# The include directories of Fribidi
# FRIBIDI_LIBRARIES
# Fribidi library list
if(UNIX AND NOT APPLE)
include(FindPkgConfig)
pkg_check_modules(FRIBIDI fribidi)
else()
set(FRIBIDI_FOUND 0)
endif()
if(NOT FRIBIDI_FOUND)
find_path(FRIBIDI_INCLUDE_DIR NAMES fribidi/fribidi.h PATHS /Library/Frameworks/fribidi.framework/Headers "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/include")
find_library(FRIBIDI_LIBRARY NAMES fribidi PATHS /Library/Frameworks/fribidi.framework "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Fribidi DEFAULT_MSG FRIBIDI_INCLUDE_DIR FRIBIDI_LIBRARY)
if(APPLE)
set(FRIBIDI_INCLUDE_DIR "/Library/Frameworks/fribidi.framework/Headers")
endif()
# Publish variables
set(FRIBIDI_INCLUDE_DIRS ${FRIBIDI_INCLUDE_DIR})
set(FRIBIDI_LIBRARIES ${FRIBIDI_LIBRARY})
endif()
mark_as_advanced(FRIBIDI_INCLUDE_DIR FRIBIDI_LIBRARY)

View File

@@ -10,6 +10,10 @@
# OggVorbis library list
if((UNIX AND NOT APPLE) OR NINTENDO_SWITCH)
pkg_check_modules(OGGVORBIS vorbisfile)
else()
find_path(OGGVORBIS_OGG_INCLUDE_DIR NAMES ogg/ogg.h PATHS "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/include")
find_path(OGGVORBIS_VORBIS_INCLUDE_DIR NAMES vorbis/vorbisfile.h PATHS "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/include")
find_library(OGGVORBIS_OGG_LIBRARY NAMES ogg Ogg libogg PATHS "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib")
@@ -30,3 +34,4 @@ list(REMOVE_DUPLICATES OGGVORBIS_INCLUDE_DIRS)
list(REMOVE_DUPLICATES OGGVORBIS_LIBRARIES)
mark_as_advanced(OGGVORBIS_OGG_INCLUDE_DIR OGGVORBIS_VORBIS_INCLUDE_DIR)
mark_as_advanced(OGGVORBIS_OGG_LIBRARY OGGVORBIS_VORBIS_LIBRARY OGGVORBIS_VORBISFILE_LIBRARY OGGVORBIS_VORBISENC_LIBRARY)
endif()

View File

@@ -9,9 +9,17 @@
SET(CMAKE_SYSTEM_NAME Linux)
# which compilers to use for C and C++
SET(CMAKE_C_COMPILER "${HOST}-gcc")
SET(CMAKE_CXX_COMPILER "${HOST}-g++")
SET(CMAKE_RC_COMPILER "${HOST}-windres")
SET(CMAKE_C_COMPILER "${HOST}-clang")
SET(CMAKE_CXX_COMPILER "${HOST}-clang++")
set(CMAKE_SYSTEM_PROCESSOR ${ARCH})
# Starting NDK21 it enables NEON by default on 32-bit ARM target
# Disable it to support more devices
if("${ARCH}" STREQUAL "arm" AND NOT STK_ARM_NEON)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfpv3-d16")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfpv3-d16")
endif()
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH $ENV{NDK_TOOLCHAIN_PATH})

View File

@@ -0,0 +1,53 @@
# Usage:
# cmake .. -DCCTOOLS_PREFIX=/path/to/cctools -DCCTOOLS_ARCH=arch -DCCTOOLS_PLATFORM=platform \
# -DRT=/path/to/cctools/darwin/libclang_rt.{ios, iossim, osx, tvos, tvossim}.a -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-cctools.cmake
# Download precompiled cctools at https://github.com/supertuxkart/dependencies/releases/download/preview/cctools.tar.xz
# Compiled in Ubuntu 18.04
# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Darwin)
# which compilers to use for C and C++
string(TOLOWER "${CCTOOLS_PLATFORM}" platform_lower)
set(CLANG_ARCH ${CCTOOLS_ARCH})
if(CCTOOLS_ARCH MATCHES ^arm)
set(CLANG_ARCH arm)
else()
set(CLANG_ARCH ${CCTOOLS_ARCH})
endif()
if (NOT CCTOOLS_PLATFORM MATCHES MacOSX)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fembed-bitcode")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fembed-bitcode")
endif()
SET(CMAKE_C_COMPILER ${CCTOOLS_PREFIX}/bin/${CCTOOLS_ARCH}-${platform_lower}-clang)
SET(CMAKE_CXX_COMPILER ${CCTOOLS_PREFIX}/bin/${CCTOOLS_ARCH}-${platform_lower}-clang++)
SET(CMAKE_RANLIB ${CCTOOLS_PREFIX}/bin/${CLANG_ARCH}-apple-darwin11-ranlib)
SET(CMAKE_AR ${CCTOOLS_PREFIX}/bin/${CLANG_ARCH}-apple-darwin11-ar)
SET(CMAKE_INSTALL_NAME_TOOL ${CCTOOLS_PREFIX}/bin/${CLANG_ARCH}-apple-darwin11-install_name_tool)
SET(CMAKE_SYSTEM_PROCESSOR ${CCTOOLS_ARCH})
SET(CMAKE_MACOSX_RPATH TRUE)
SET(CMAKE_EXE_LINKER_FLAGS ${RT})
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH ${PROJECT_SOURCE_DIR}/dependencies-${platform_lower} ${CCTOOLS_PREFIX}/sdk/${CCTOOLS_PLATFORM}.sdk)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ALWAYS)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# fix statically linking because of order
if (NOT CCTOOLS_PLATFORM MATCHES MacOSX)
set(CURL_LIBRARY "${PROJECT_SOURCE_DIR}/dependencies-${platform_lower}/lib/libcurl.a;${PROJECT_SOURCE_DIR}/dependencies-${platform_lower}/lib/libmbedtls.a;${PROJECT_SOURCE_DIR}/dependencies-${platform_lower}/lib/libmbedx509.a")
endif()
set(USE_CRYPTO_OPENSSL FALSE CACHE BOOL "")
if (NOT CCTOOLS_PLATFORM MATCHES MacOSX)
set(USE_WIIUSE FALSE CACHE BOOL "")
set(USE_SQLITE3 FALSE CACHE BOOL "")
set(IOS TRUE CACHE BOOL "")
endif()

View File

@@ -0,0 +1,130 @@
# Usage:
# cmake .. -DDEPS_PATH=/path/to/dependencies -DIOS_ASSETS=/path/to/generated/assets -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-ios-xcode.cmake -G Xcode
# Need to use ../android/generate_assets.sh for assets first
# In Xcode you need to choose Product -> Scheme -> supertuxkart
# And then Signing & Capabilities choose a suitable team
# You may need to use another bundle identifier as the current one is already used by STK team
# You can also use -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=xxxxxxxxxx to specify team
# Increase every upload to App store
SET(IOS_BUILD_VERSION 26)
# Get SDK path
execute_process(COMMAND xcodebuild -version -sdk iphoneos Path
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_IOS
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND xcodebuild -version -sdk iphonesimulator Path
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_SIMULATOR
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version SDKVersion
OUTPUT_VARIABLE SDK_VERSION
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (NOT DEFINED CMAKE_OSX_SYSROOT_IOS OR NOT DEFINED CMAKE_OSX_SYSROOT_SIMULATOR OR NOT DEFINED SDK_VERSION)
message(FATAL_ERROR "Cannot find iphoneos or iphonesimulator sdk location and their version info.")
else()
message(STATUS "Using SDK path: ${CMAKE_OSX_SYSROOT_IOS}.")
endif()
set(CMAKE_OSX_SYSROOT "iphoneos" CACHE INTERNAL "")
# Manaully set the values for both arm64 and simulator
set(JPEG_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libjpeg.a CACHE STRING "")
set(JPEG_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
set(ZLIB_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libz.a CACHE STRING "")
set(ZLIB_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
set(PNG_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libpng16.a CACHE STRING "")
set(PNG_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
set(PNG_PNG_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
set(OGGVORBIS_OGG_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libogg.a CACHE STRING "")
set(OGGVORBIS_OGG_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include/ogg CACHE STRING "")
set(OGGVORBIS_VORBIS_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libvorbis.a CACHE STRING "")
set(OGGVORBIS_VORBIS_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include/vorbis CACHE STRING "")
set(OGGVORBIS_VORBISFILE_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libvorbisfile.a CACHE STRING "")
set(OGGVORBIS_VORBISFILE_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include/vorbis CACHE STRING "")
set(OGGVORBIS_VORBISENC_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libvorbisenc.a CACHE STRING "")
set(OGGVORBIS_VORBISENC_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include/vorbis CACHE STRING "")
set(HARFBUZZ_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libharfbuzz.a CACHE STRING "")
set(HARFBUZZ_INCLUDEDIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
set(FREETYPE_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libfreetype.a CACHE STRING "")
set(FREETYPE_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include/freetype2 CACHE STRING "")
set(CURL_LIBRARY "${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libcurl.a;${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libmbedtls.a;${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libmbedx509.a;${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libmbedcrypto.a" CACHE STRING "")
set(CURL_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
set(MBEDCRYPTO_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libmbedcrypto.a CACHE STRING "")
set(MBEDTLS_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
set(SDL2_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libSDL2.a CACHE STRING "")
set(SDL2_INCLUDEDIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include/SDL2 CACHE STRING "")
set(LIBSAMPLERATE_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libsamplerate.a CACHE STRING "")
set(LIBSAMPLERATE_INCLUDEDIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
set(MOLTENVK_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libMoltenVK.a CACHE STRING "")
set(VULKAN_INCLUDEDIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
set(LIBASTCENC_LIBRARY ${PROJECT_SOURCE_DIR}/dependencies\${EFFECTIVE_PLATFORM_NAME}/lib/libastcenc.a CACHE STRING "")
set(LIBASTCENC_INCLUDEDIR ${PROJECT_SOURCE_DIR}/dependencies-iphoneos/include CACHE STRING "")
# For universal iOS and simulator
set(LIBRESOLV_LIBRARY -lresolv CACHE STRING "")
set(PTHREAD_LIBRARY -lpthread CACHE STRING "")
# Standard config
set(CMAKE_SYSTEM_VERSION ${SDK_VERSION} CACHE INTERNAL "")
set(UNIX TRUE CACHE BOOL "")
set(APPLE TRUE CACHE BOOL "")
set(IOS TRUE CACHE BOOL "")
set(CMAKE_AR ar CACHE FILEPATH "" FORCE)
set(CMAKE_RANLIB ranlib CACHE FILEPATH "" FORCE)
set(CMAKE_STRIP strip CACHE FILEPATH "" FORCE)
# Set the architectures for which to build
set(CMAKE_OSX_ARCHITECTURES "arm64 x86_64" CACHE STRING "Build architecture for iOS")
set(CMAKE_C_SIZEOF_DATA_PTR 8)
set(CMAKE_CXX_SIZEOF_DATA_PTR 8)
set(CMAKE_SYSTEM_PROCESSOR "arm64")
set(CMAKE_SYSTEM_NAME iOS CACHE INTERNAL "" FORCE)
# Change the type of target generated for try_compile() so it'll work when cross-compiling
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
# All iOS/Darwin specific settings - some may be redundant.
set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
set(CMAKE_SHARED_MODULE_PREFIX "lib")
set(CMAKE_SHARED_MODULE_SUFFIX ".so")
set(CMAKE_C_COMPILER_ABI ELF)
set(CMAKE_CXX_COMPILER_ABI ELF)
set(CMAKE_C_HAS_ISYSROOT 1)
set(CMAKE_CXX_HAS_ISYSROOT 1)
set(CMAKE_MODULE_EXISTS 1)
set(CMAKE_DL_LIBS "")
set(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")
set(CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ")
set(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}")
set(CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}")
# For archive
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fembed-bitcode")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fembed-bitcode")
# Fixed variables in iOS STK
set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE YES CACHE INTERNAL "")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC NO CACHE INTERNAL "")
set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES CACHE INTERNAL "")
set(USE_WIIUSE FALSE CACHE BOOL "")
set(USE_SQLITE3 FALSE CACHE BOOL "")
set(USE_CRYPTO_OPENSSL FALSE CACHE BOOL "")
set(IOS_LAUNCHSCREEN ${DEPS_PATH}/ios-icon/launch_screen.storyboard)
set(IOS_IMAGES_XCASSETS ${DEPS_PATH}/ios-icon/Images.xcassets)
set(SDK_NAME_VERSION_FLAGS "-miphoneos-version-min=9.0")
set(CMAKE_OSX_DEPLOYMENT_TARGET 9.0 CACHE STRING "Set CMake deployment target" FORCE)
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64")
set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "arm64")
set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64")
set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64")
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym" CACHE INTERNAL "")
# Replace the above two with these if you use an apple silicon
#set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "arm64")
#set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "arm64")

View File

@@ -0,0 +1,28 @@
# Usage:
# cmake .. -DLLVM_ARCH=aarch64 i686 or x86_64 -DLLVM_PREFIX=/path/to/llvm-mingw-prefix -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-llvm-mingw.cmake
# the name of the target operating system
if(WIN32)
SET(PATH_EXE .exe)
endif()
SET(CMAKE_SYSTEM_NAME Windows)
# which compilers to use for C and C++
SET(CMAKE_C_COMPILER ${LLVM_PREFIX}/bin/${LLVM_ARCH}-w64-mingw32-clang${PATH_EXE})
SET(CMAKE_CXX_COMPILER ${LLVM_PREFIX}/bin/${LLVM_ARCH}-w64-mingw32-clang++${PATH_EXE})
SET(CMAKE_RC_COMPILER ${LLVM_PREFIX}/bin/${LLVM_ARCH}-w64-mingw32-windres${PATH_EXE})
SET(CMAKE_SYSTEM_PROCESSOR ${LLVM_ARCH})
SET(CMAKE_BUILD_TYPE RelWithDebInfo)
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -Wl,-pdb=")
SET(CMAKE_C_FLAGS -gcodeview)
SET(CMAKE_CXX_FLAGS -gcodeview)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH ${LLVM_PREFIX}/generic-w64-mingw32 ${LLVM_PREFIX}/${LLVM_ARCH}-w64-mingw32/bin ${PROJECT_SOURCE_DIR}/dependencies-win-${LLVM_ARCH})
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ALWAYS)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

View File

@@ -13,7 +13,7 @@ SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
execute_process(COMMAND sh -c "ls /usr/lib/gcc/x86_64-w64-mingw32/ | grep posix | tr -d '\n'" OUTPUT_VARIABLE MINGW_DEPS_FOLDER)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 /usr/lib/gcc/x86_64-w64-mingw32/${MINGW_DEPS_FOLDER}/ ${PROJECT_SOURCE_DIR}/dependencies-mingw-64bit ${PROJECT_SOURCE_DIR}/dependencies-64bit)
SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 /usr/lib/gcc/x86_64-w64-mingw32/${MINGW_DEPS_FOLDER}/ ${PROJECT_SOURCE_DIR}/dependencies-win-x86_64)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search

View File

@@ -13,7 +13,7 @@ SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
execute_process(COMMAND sh -c "ls /usr/lib/gcc/i686-w64-mingw32/ | grep posix | tr -d '\n'" OUTPUT_VARIABLE MINGW_DEPS_FOLDER)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32 /usr/lib/gcc/i686-w64-mingw32/${MINGW_DEPS_FOLDER}/ ${PROJECT_SOURCE_DIR}/dependencies-mingw ${PROJECT_SOURCE_DIR}/dependencies)
SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32 /usr/lib/gcc/i686-w64-mingw32/${MINGW_DEPS_FOLDER}/ ${PROJECT_SOURCE_DIR}/dependencies-win-i686)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search

31
cmake/XcodeHelper.cmake Normal file
View File

@@ -0,0 +1,31 @@
# Collect all currently added targets in all subdirectories
#
# Parameters:
# - _result the list containing all found targets
# - _dir root directory to start looking from
function(get_all_targets _result _dir)
get_property(_subdirs DIRECTORY "${_dir}" PROPERTY SUBDIRECTORIES)
foreach(_subdir IN LISTS _subdirs)
get_all_targets(${_result} "${_subdir}")
endforeach()
get_directory_property(_sub_targets DIRECTORY "${_dir}" BUILDSYSTEM_TARGETS)
set(${_result} ${${_result}} ${_sub_targets} PARENT_SCOPE)
endfunction()
# set(CMAKE_XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS doesn't work in ios toolchain, below fixed it
macro(configure_xcode_defaults _EXE_NAME)
if (APPLE)
macro(set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE)
set_property(TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE})
endmacro()
endif()
if (APPLE)
set_xcode_property(${_EXE_NAME} GCC_GENERATE_DEBUGGING_SYMBOLS[variant=Debug] YES)
set_xcode_property(${_EXE_NAME} GCC_GENERATE_DEBUGGING_SYMBOLS[variant=MinSizeRel] YES)
set_xcode_property(${_EXE_NAME} GCC_GENERATE_DEBUGGING_SYMBOLS[variant=RelWithDebInfo] YES)
set_xcode_property(${_EXE_NAME} GCC_GENERATE_DEBUGGING_SYMBOLS[variant=Release] YES)
endif()
endmacro()

View File

@@ -7,19 +7,25 @@ A Kart Racing Game Featuring Tux & Friends
= Joerg Henrichs (hiker) =
Developer and project leader
- Lead programming
- Windows Packaging
Former project leader
- Project leader and lead programmer up to STK 1.0
- Among too many things to list:
- Work on physics, AI, networking
- A lot of bugfixes and enhancements
- Windows packaging
= Marianne Gagnon (Auria) =
Developer
- Lead Programming
- Former lead programmer
- Mac OS X Packager
- Among too many things to list:
- GUI engine and user interface
- A lot of bugfixes and enhancements
= Benau =
Developer, modeller & animator
Lead developer, modeller & animator
- Soccer and battle mode AI, Shader, graphics
- SPM file format definition, importer and exporter
- A lot of networking code
@@ -43,19 +49,11 @@ Lead graphical artist
= Alayan =
Developer
Lead developer
- Story mode and gameplay improvements
- AI improvements
- General improvements and bugfixes
= Magne Djupvik (Arthur) =
Public relations and faithful follower
- SuperTuxKart Blog
- Play testing
- Pun master
= Online =
Add-ons website
- Daniel Butum (leyyin)
@@ -64,35 +62,15 @@ Add-ons website
= Additional Programming =
Main Contributors
- Marc Coll : Grand Prix editor
- Flakebi
- Konstin
- math07
- Elderme : Work on graphical engine
Google Summer of Code Students
- Robin Nicollet
- Glenn de Jonghe
- Lauri Kasanen
- Daniel Butum
- Bart Cools
- Csaba Molnar
- Sachith Seneviratne
- Akshay Singhvi
Bug fixes & misc contributions
- Divya Kukar (divvy81)
- Fabien Sanglard : normal map shader
- Damien
- David (Work on flying items)
- Stephen Dunn (Work on audio)
- Patrick Ammann
- Ward Muylaert
- Fantasmos
Significant bug fixes & misc. contributions for 1.0 and 1.1
- Ben Krajancic
- QwertyChouskie
- Dumaosen
- Luffah
- Mrxx99
- Pelya
- Riso
= Visual art =
@@ -103,31 +81,26 @@ Tracks
- Ponzino : Volcan Island
Tracks
- Canis Lupus : Original 'Northern Resort' & Scotland
- Canis Lupus : Original 'Northern Resort' & 'Scotland'
- Ivar ten Cate (Varivar) : Original 'Old Mine' & 'Snow Peaks' Improvements
- MacIO : Cave X
- Steve and Oliver Baker : Oliver's Math Class
- Steve and Oliver Baker : Original 'Oliver's Math Class'
Tracks
- Typhon306 : 'Ancient Colosseum Labyrinth'
Karts
- JunglePenguin : Xue
- Minibjorn : Puffy
- Cheleb : Nolok, Pidgin
- Néd J. Édoire : Wilber, Hexley
- Benau : Kiki
- Néd J. Édoire : Wilber, Hexley, Beastie
- Typhon306 and ZAQraven99 : Kiki
Karts
- Cédric Archambault : Suzanne
- Julian Schönbächler : Amanda and Gavroche
- Kinsu : Emule
- Micket and Lionel Fuentes (Funto) : Beastie
- Benjamin Arnaudet : GNU
Karts
- abejones : Adiumy
- Christian Framing : work on Konqi (EvilTux)
- Frederico de Oliveira Linhares : Hexley character
- Conso : work on Wilber
- Vincent Lejeune (vlj) : Xue and adiummy animations from 0.8.2
- ZAQraven99 : GNU, Pepper, Sara, Adiumy
Objects
- GeekPenguinBR, TuxKartDriver : Models from Las Dunas Stadium
@@ -158,6 +131,8 @@ GUI Icons and Other Art
- The Tango icon project, the Gnome icon set
- Dakal : textures
- Andy (Needer)
GUI Icons and Other Art
- Paul Elms (scifly)
- Elisee : Checker background
- Mariam Lamrani (may-panda): wallpaper and poster
@@ -191,7 +166,8 @@ Misc songs
- The Dead Rocks
- Magne Djupvik : 'Penguin Party'
- Dundersylt : last lap, race start songs
- GeekPenguinBR : 'Jumping to the stars'
- GeekPenguinBR and Heuchi1 : 'Jumping to the stars'
- Heuchi1 : 'Alien Signal'
Misc songs
- Keith Baylis aka Vim : 'Boom-boom-boom song'
@@ -222,16 +198,19 @@ Website
Packaging
- Auria: MacOS package
- hiker: Windows
- Dawid Gan: Static packages
- Dawid Gan: Linux and Android packages
Testing
- Magne Djupvik
- KroArtem
- Everyone else who helped test STK!
Testing for 1.0 and 1.1
- Alayan
- deveee
- Wuzzy
- The speedrunners who found many exploits
- Everyone else who made good issues report!
Development Babies
- Florian
= Software =
Software used
@@ -241,116 +220,58 @@ Software used
- curl
- freetype2
- OpenAL
Software used
- ogg
- vorbis
- fribidi
- SheenBidi
- blender
- wiiuse
- harfbuzz
Software used
- sqlite
- openssl
- mcpp
= Donations =
Donations
- Georgi Stoychev, Nuno Ferreira, Steven Anderson, Charalabos Frouzakis
- Richard Qian, William Nakamura, Maree Glynn, David Carlier
- Alistair Findlay, James Tobin, Ursula Belting, Stephan van den Akker
- Ken McCall, Arnaud Maurin, James Tobin, Stefan Kiehne, David Efflandt
- Gary Shearer, Stuart Gibb, Fran Casal, Piotr Karczemski, Florian Lehébel
- Dominik Müller, Saverio Brancaccio, Florian Lehébel
Donations
- Alvaro Castañeda Mendoza, Simón Llinares Riestra, Radu Sofian
- Yevgeny Slusorenko, Joshua Dye, Chris Lukas, Gary Shearer, Gary Shearer
- Martin Lankes, Muchlis Polin, Peter Estes, Nuno Ferreira, Duncan Steele
- Michael Kleinhans, Atomic Monks, Aleksandar Sokolovski, Brandon Hoeksema
- Victor Gabillon, Tristan Reitter, Lupe Aguilar, Florian Pelz
- Tanja Wiege, Gabriele Casetti, Andrea De Angelis, Saul Gutierrez
- Csongor Ballay, Csongor Ballay, William Youstra, Peter Estes
- Régis Hamann, Régis Hamann, Yuri Sucupira, Lucien Greefkes, Frank Sapone
Donations
- Peter Cundall, Michael Richards, Franz Ernst, Florian Lehébel
- Jörg Orlowski, Lukasz Szczekocki, Bjarni Kristinsson, David Carlier
- Kamensky Mikhail, Roland Schoof, Trevor Robertson, Patrik Pomichal
- Guillaume Pointet, Dennis Holierhoek, Daniel Nelson, David Hibshman
- Thomas Belvin, Erik Jahn, Susen Skotnik, Dennis McLaughlin, Bert De Mets
- Jean-Gabriel Kammerer, Stefan Lukits, Martin Steigerwald
- Adam Williamson, A Anton, Ville Kauppila, Gary Shearer
- Peter Hausleitner, Philip Pfeifer, Christoph Baldauf, Jane Middlebrooke
Donations
- roundof.org, Roman Marschall, Gary Shearer, Jonathan Banks
- Nicolas Affolter, Mahendra Tallur, David Behnke, Mark Supper
- Eric Cheminot, Jason Speechley, Michael Martin, Andrew Gilbert
- Fabian Schach, michael orosov, Wendell Glick, Eugene Lemaitre
- Gerald Angus, Andrea De Angelis, Antonio Sala, Joshua Dye, roundof.org
- Andreas Müller, Jose Miguel Bolorino Manzano, Troy Smith, Bernhard Motel
- Bernhard Motel, Alexandre Bouhier, Thomas Preissler, Lubomír Saji
- Eric Pedersen, Fabrice SAILLY-SIRGUE, Simon Dalsgaard, Joshua Dye
Donations
- Detlef Olp, João Pedro de Lima, Christopher Sweeney, Ryan Gervais
- Laszlo Ast, Robert Yerke, Nuno Ferreira, Lachand Valentin, Arne Bernin
- Carsten Carulli, Jeremy Kenny, Francisco Monteagudo, Marlow Marlow
- Kong Chun Ho, Jonathan Lee, Dominik Rösner, Andreas Frankl
- Didier Delhaye, Gianluca Bonato, Ferdinand Ihringer, Mark Dougherty
- Топоров Константин, Georges-Mickael Seguin, Jason Grindlay
- Gordon Macleod, Anders Jonsson, Peter Estes, Marius Gripsgård,
- FoosterNET, Daniel Sandman, David Ault, Matt DeVillier, Chris Leutwyler
Donations
- Anthony Waxman, Rémi Verschelde, Alessandro Vitali, Katherine Freeman
- Roy Akselsen, Ingrid Becke, Jonathan Lee, Christoph Baldauf
- Victor Gabillon, Yves Fourneau, Rubén Leal Coba, Andreas Müller
- Santiago Hoyos Zea, Tobias Wenig, Nuno Ferreira, Fran Casal
- Alexey Горохов, Luka Vievsky, Nathan Dykhuis, David , David Leschinsky
- Sam Tygier, Алексей Казаков, Matthew Golliher
- Karl Ove Hufthammer, Richard Stoltenberg, Niklas Anderson, Alfred Turner
- Adrian Spirgi, Frank Abrignani, Lukasz Korpalski, Andea De Angelis
Donations
- Pedro Freitas Fleck, Lachand Valentin, Cyrille Giquello, FoosterNet
- Olivier C. Pageau, Bérenger Ossete Gombe, Michael Schönitzer
- Daniel Martínez García, Joe Westcott, Patrik Nilsson, Will Hennegan
- Philip Whitfield, Markus Hedetoft, Walt Zwierzycki, Jake Jarrett
- Kyle Maggio, Richárd Ráthgéber, Gilles Wittezaele, Daniel Sandman
- Haldor Zaake-Hertling, Elvis Kandler, OPE Beckman Lapre
- Esteban Monge Marin, Marcos Schnalke, Maximilian Rüdiger, Glenn Geenen
- Michael Biller, Vincent Bermel, John Cordray, Jannik Heller
Donations
- Vincent Stavleu, Jairo Estefania Vilumbrales, Michal Klaus, Josh Dye
- Carlos Solís Róger, James Vandermark, Wouter Reckman, Nuno Ferreira
- Crefelean Nicolae, Mark Saliers, Issa Gorissen, Tom Reynolds
- James Dearing, Collin Blatt, Vincent Bermel, Nuno Ferreira
- Jarl Frode Arntzen, Vladimir Tuboltsev, Attila Cseman
- Frank Lauterbach, Mahendra Tallur, Matthijs Harmsen, Dietmar Wolf
- Suwannee Massage, Fabio Molinari, Christian Ritzer
- Gerard Vaas, Edgar Klenske, Georgi Stoychev, Daniel Reimann
Donations
- Tibor Grasser, Robert Forster, Kelonye Mitchel, Dennis Shewmaker,
- ProMission Projects, Inc., Ken McCall, Peter Estes, Markus Valkeapää
- Victor Gabillon, Franz Schmid, Austin Williamson, Artūras Norkus
- Roland Schoof, Borisenkov Alexey, Edvin Djupvik, Mikel Crespo,
- Trevor Robertson, Sergej Engbrecht, Dylan Mahoney,
- Joel Schaerer, Stephanie Theisz, Mokimoke, George Angelopoulos
- Kharlamov Ivan, Cedric Briand, Christoph Baldauf, Marco Caiazza,
- Volkov Alexandr, Evelyne Tenaerts, Thomas Salmhofer, Ralfe Gomes Ecard
Donations
- Carlos Alonso Pena Osorio, Philip Delaney, Giorgio Cantoni,
- Gabriel Stedtler, Alexander Sauter, Robert Premuž, Antonín Pilát
- Sylvain St-Amand, Apostolos Apostolidis, E. Cole, David Ault
- Vinzenz Vietzke,Edgar Bennet, Ryan Lei, Sergey Spiridonov
- Michal Sladek, Peter Lebbing, Roland Schoof, Lars Peter Mathiassen
- Benjamin Gronke, Marc Coll, Peter Estes, John Yewell, Josh Dye
- Sebastian Rode, OpenGameArt.org, Tux_penguin, Magne Djupvik
- Markus Liukka, Phelippeau Rudy, Javier Pedros Cholvi, Michael Roessner
- Ivan Wright, Carl Olsson, Sergey V. Spiridonov
= Previous contributors =
Magne Djupvik (Arthur)
- Public relations and faithful follower
- SuperTuxKart Blog
- Play testing
- Pun master
Google Summer of Code Students
- Robin Nicollet
- Glenn de Jonghe
- Lauri Kasanen
- Daniel Butum
- Bart Cools
Google Summer of Code Students
- Csaba Molnar
- Sachith Seneviratne
- Akshay Singhvi
No longer active
- Marc Coll : Grand Prix editor
- Flakebi
- Konstin
- math07
- Elderme : Work on graphical engine
- Ward Muylaert
No longer active
- Divya Kukar (divvy81)
- Fabien Sanglard : normal map shader
- Damien
- David (Work on flying items)
- Stephen Dunn (Work on audio)
- Patrick Ammann
No longer active
- Vincent Lejeune (vlj) : 3D engine
- Eduardo Hernandez Munoz (Coz) : Former Admin
@@ -358,14 +279,16 @@ No longer active
- Sam Clarke : Windows Installer
- Hans "the farmer" Dzaack : Physics tuning
- Maik Semder (Ikework) : Bug fixes
- Xapantu : add-ons website
No longer active
- Xapantu : add-ons website
- Lionel Fuentes (Funto) : Soccer mode and other contributions
- Mohammad Al-Ghannam (Yasin) : Soccer mode
- Johannesr1 : Bubble gum shield
- Glenn De Jonghe (Unitraxx) : Grand Prix progress saving
- MCMic : reverse mode
No longer active
- Yann Leprince (sciyann)
- Xenux : Add-Ons filtering
- jmimu
@@ -384,6 +307,151 @@ Original Tuxkart
- Steve Baker (http://www.sjbaker.org/)
- Oliver Baker
= Donations =
Donations
- ANTON KARMANOV, Matthew Boyd, Michal Jusyk, Nicholas Masters
- Nicolay Chichota, S Tsekhmistro, Matias Baglivo, Don K Finney
- Y M MOYSIADIS, TOLSTOV OLEG, Cory Rash, ARTEM BELOUSOV
Donations
- Максим Мурин, John Clark, Wing On Cheung, Jan
- ANNOP CHAWALITSITTHIKUN, ARTYOM DEMAKOV, Rio Marco Rathje
- Tibor Dikó, Luca TEDESCHI, Merle Nicolaou, Michael ISSARTEL
- ALEKSANDR ZHEMCHUGOV, Tobias Brohl, Dzianis Kim
- Joshua Miller, Brenda Punzel, Peter M Estes, Benedikt Kleinmeier
Donations
- Trevor Hass, Thomas Belvin, Simona-A.-Petronela Crefelean
- Schmidt Christian, Roberto Giuliani, Robert A Swearingen
- Rene Genz, René Schubert, Pazurik Laszlo Adam, Oskar Vigren
- M J Angove, Florian Lehebel, David E Scourfield, Michael Laube
- Merlin Juusola, Matthias Wiege, Matthew Toppenberg, Martin Rejman
- Mark Gannon, Lukas Palme, Lennart Mellqvist, Joshua Dye, Jan Havran
Donations
- Jacqueline Brown, Igor Murzich, Guido Stehr, Gisela Ehresmann
- Evaldas Granickas, Elisabeth Lambert, Edith Muijsers, DC Jaeger
- Damian Fajfer, Chase Williamson, Carsten Timm, Baptiste Dagneaux
- Alexander Olkhovsky, Aleix Casamitjana, Adrián Chaves Fernández
- Georgi Stoychev, Nuno Ferreira, Steven Anderson, Charalabos Frouzakis
- Richard Qian, William Nakamura, Maree Glynn, David Carlier
Donations
- Alistair Findlay, James Tobin, Ursula Belting, Stephan van den Akker
- Ken McCall, Arnaud Maurin, James Tobin, Stefan Kiehne, David Efflandt
- Gary Shearer, Stuart Gibb, Fran Casal, Piotr Karczemski, Florian Lehébel
- Dominik Müller, Saverio Brancaccio, Florian Lehébel, Pietro Pizzo
- Alvaro Castañeda Mendoza, Simón Llinares Riestra, Radu Sofian
- Yevgeny Slusorenko, Joshua Dye, Chris Lukas, Gary Shearer, Gary Shearer
Donations
- Martin Lankes, Muchlis Polin, Peter Estes, Nuno Ferreira, Duncan Steele
- Michael Kleinhans, Atomic Monks, Aleksandar Sokolovski, Brandon Hoeksema
- Victor Gabillon, Tristan Reitter, Lupe Aguilar, Florian Pelz
- Tanja Wiege, Gabriele Casetti, Andrea De Angelis, Saul Gutierrez
- Csongor Ballay, Csongor Ballay, William Youstra, Peter Estes
- Régis Hamann, Régis Hamann, Yuri Sucupira, Lucien Greefkes, Frank Sapone
Donations
- Peter Cundall, Michael Richards, Franz Ernst, Florian Lehébel
- Jörg Orlowski, Lukasz Szczekocki, Bjarni Kristinsson, David Carlier
- Kamensky Mikhail, Roland Schoof, Trevor Robertson, Patrik Pomichal
- Guillaume Pointet, Dennis Holierhoek, Daniel Nelson, David Hibshman
- Thomas Belvin, Erik Jahn, Susen Skotnik, Dennis McLaughlin, Bert De Mets
- Jean-Gabriel Kammerer, Stefan Lukits, Martin Steigerwald
Donations
- Adam Williamson, A Anton, Ville Kauppila, Gary Shearer
- Peter Hausleitner, Philip Pfeifer, Christoph Baldauf, Jane Middlebrooke
- roundof.org, Roman Marschall, Gary Shearer, Jonathan Banks
- Nicolas Affolter, Mahendra Tallur, David Behnke, Mark Supper
- Eric Cheminot, Jason Speechley, Michael Martin, Andrew Gilbert
- Fabian Schach, michael orosov, Wendell Glick, Eugene Lemaitre
Donations
- Gerald Angus, Andrea De Angelis, Antonio Sala, Joshua Dye, roundof.org
- Andreas Müller, Jose Miguel Bolorino Manzano, Troy Smith, Bernhard Motel
- Bernhard Motel, Alexandre Bouhier, Thomas Preissler, Lubomír Saji
- Eric Pedersen, Fabrice SAILLY-SIRGUE, Simon Dalsgaard, Joshua Dye
- Detlef Olp, João Pedro de Lima, Christopher Sweeney, Ryan Gervais
- Laszlo Ast, Robert Yerke, Nuno Ferreira, Lachand Valentin, Arne Bernin
Donations
- Kong Chun Ho, Jonathan Lee, Dominik Rösner, Andreas Frankl
- Didier Delhaye, Gianluca Bonato, Ferdinand Ihringer, Mark Dougherty
- Топоров Константин, Georges-Mickael Seguin, Jason Grindlay
- Gordon Macleod, Anders Jonsson, Peter Estes, Marius Gripsgård,
- FoosterNET, Daniel Sandman, David Ault, Matt DeVillier, Chris Leutwyler
- Anthony Waxman, Rémi Verschelde, Alessandro Vitali, Katherine Freeman
Donations
- Roy Akselsen, Ingrid Becke, Jonathan Lee, Christoph Baldauf
- Victor Gabillon, Yves Fourneau, Rubén Leal Coba, Andreas Müller
- Santiago Hoyos Zea, Tobias Wenig, Nuno Ferreira, Fran Casal
- Alexey Горохов, Luka Vievsky, Nathan Dykhuis, David , David Leschinsky
- Sam Tygier, Алексей Казаков, Matthew Golliher
- Karl Ove Hufthammer, Richard Stoltenberg, Niklas Anderson, Alfred Turner
Donations
- Adrian Spirgi, Frank Abrignani, Lukasz Korpalski, Andea De Angelis
- Pedro Freitas Fleck, Lachand Valentin, Cyrille Giquello, FoosterNet
- Olivier C. Pageau, Bérenger Ossete Gombe, Michael Schönitzer
- Daniel Martínez García, Joe Westcott, Patrik Nilsson, Will Hennegan
- Philip Whitfield, Markus Hedetoft, Walt Zwierzycki, Jake Jarrett
- Kyle Maggio, Richárd Ráthgéber, Gilles Wittezaele, Daniel Sandman
Donations
- Haldor Zaake-Hertling, Elvis Kandler, OPE Beckman Lapre
- Esteban Monge Marin, Marcos Schnalke, Maximilian Rüdiger, Glenn Geenen
- Michael Biller, Vincent Bermel, John Cordray, Jannik Heller
- Vincent Stavleu, Jairo Estefania Vilumbrales, Michal Klaus, Josh Dye
- Carlos Solís Róger, James Vandermark, Wouter Reckman, Nuno Ferreira
- Crefelean Nicolae, Mark Saliers, Issa Gorissen, Tom Reynolds
Donations
- James Dearing, Collin Blatt, Vincent Bermel, Nuno Ferreira
- Jarl Frode Arntzen, Vladimir Tuboltsev, Attila Cseman
- Frank Lauterbach, Mahendra Tallur, Matthijs Harmsen, Dietmar Wolf
- Suwannee Massage, Fabio Molinari, Christian Ritzer
- Gerard Vaas, Edgar Klenske, Georgi Stoychev, Daniel Reimann
- Tibor Grasser, Robert Forster, Kelonye Mitchel, Dennis Shewmaker,
Donations
- ProMission Projects, Inc., Ken McCall, Peter Estes, Markus Valkeapää
- Victor Gabillon, Franz Schmid, Austin Williamson, Artūras Norkus
- Roland Schoof, Borisenkov Alexey, Edvin Djupvik, Mikel Crespo,
- Trevor Robertson, Sergej Engbrecht, Dylan Mahoney,
- Joel Schaerer, Stephanie Theisz, Mokimoke, George Angelopoulos
- Kharlamov Ivan, Cedric Briand, Christoph Baldauf, Marco Caiazza,
Donations
- Volkov Alexandr, Evelyne Tenaerts, Thomas Salmhofer, Ralfe Gomes Ecard
- Carlos Alonso Pena Osorio, Philip Delaney, Giorgio Cantoni,
- Gabriel Stedtler, Alexander Sauter, Robert Premuž, Antonín Pilát
- Sylvain St-Amand, Apostolos Apostolidis, E. Cole, David Ault
- Vinzenz Vietzke,Edgar Bennet, Ryan Lei, Sergey Spiridonov
- Carsten Carulli, Jeremy Kenny, Francisco Monteagudo, Marlow Marlow
Donations
- Michal Sladek, Peter Lebbing, Roland Schoof, Lars Peter Mathiassen
- Benjamin Gronke, Marc Coll, Peter Estes, John Yewell, Josh Dye
- Sebastian Rode, OpenGameArt.org, Tux_penguin, Magne Djupvik
- Markus Liukka, Phelippeau Rudy, Javier Pedros Cholvi, Michael Roessner
- Ivan Wright, Carl Olsson, Sergey V. Spiridonov
= Thanks for Playing! =
Do not hesitate to contribute!
- Give feedback

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDisplayName</key>
<string>SuperTuxKart</string>
<key>CFBundleExecutable</key>
<string>supertuxkart</string>
<key>CFBundleIdentifier</key>
<string>net.supertuxkart.stkios</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>SuperTuxKart </string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>${PROJECT_VERSION}</string>
<key>CFBundleVersion</key>
<string>${IOS_BUILD_VERSION}</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
<key>UILaunchStoryboardName</key>
<string>launch_screen</string>
<key>UIStatusBarHidden</key>
<true/>
<key>UIRequiresFullScreen</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict>
</plist>

View File

@@ -17,14 +17,16 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>git</string>
<string>${PROJECT_VERSION}</string>
<key>CFBundleSignature</key>
<string>SPTK</string>
<key>CFBundleVersion</key>
<string>git</string>
<string>${PROJECT_VERSION}</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSMinimumSystemVersion</key>
<string>10.9</string>
<string>10.9</string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

View File

@@ -32,7 +32,7 @@
<goal type="name_of_counter" operation="-"/>
</goal>
With the value of operation (+ or -) defining if the subgoal is added
or substracted from the total.
or subtracted from the total.
Sub-goals can also have their own sub-goals,
however a AND, AND-AT-ONCE or OR can't have a SUM goal for parent.
@@ -137,7 +137,7 @@
egg-hunt-started-all
egg-hunt-finished-all
-->
<achievements>
<achievements version="1">
<achievement id="1" name="Christoffel Columbus" description="Play every official track at least once." >
<goal type="race-finished-all" value="1"/>
</achievement>

File diff suppressed because it is too large Load Diff

259
data/country_names.tsv Normal file
View File

@@ -0,0 +1,259 @@
country_code ar be bg br bs ca cs da de el en eo es et eu fa fi fr fr-CA ga gd gl he hr hu ia id is it ja ko kw ky lt lv ml mn-MN nb nl nn os pl pt pt-BR ro ru sk sl sq sr sv sw th tr tt uk uz vi zh-CN zh-TW
AC جزيرة أسينشيون Востраў Узнясення остров Възнесение Enez Ascension Ostrvo Ascension Illa de lAscensió Ascension Ascensionøen Ascension Νήσος Ασενσιόν Ascension Island Ascension Island Isla de la Ascensión Ascensioni saar Ascension uhartea جزایر آسنسیون Ascension-saari Île de lAscension Île de lAscension Oileán na Deascabhála Eilean na Deasgabhalach Illa de Ascensión האי אסנשן Otok Ascension Ascension-sziget Ascension Island Pulau Ascension Ascension-eyja Isola Ascensione アセンション島 어센션 섬 Ascension Island Вознесение аралы Dangun Žengimo sala Debesbraukšanas sala അസൻഷൻ ദ്വീപ് Асенсион арал Ascension Ascension Ascension Ascension Island Wyspa Wniebowstąpienia Ilha de Ascensão Ilha de Ascensão Insula Ascension о-в Вознесения Ascension Otok Ascension Ishulli Asenshion Острво Асенсион Ascension Kisiwa cha Ascension เกาะแอสเซนชัน Ascension Adası Ascension Island Острів Вознесіння Meroj oroli Đảo Ascension 阿森松岛 阿森松島
AD أندورا Андора Андора Andorra Andora Andorra Andorra Andorra Andorra Ανδόρα Andorra Andoro Andorra Andorra Andorra آندورا Andorra Andorre Andorre Andóra Andorra Andorra אנדורה Andora Andorra Andorra Andorra Andorra Andorra アンドラ 안도라 Andorra Андорра Andora Andora അൻഡോറ Андорра Andorra Andorra Andorra Andorra Andora Andorra Andorra Andorra Андорра Andorra Andora Andorrë Андора Andorra Andorra อันดอร์รา Andorra Андорра Андорра Andorra Andorra 安道尔 安道爾
AE الإمارات العربية المتحدة Аб’яднаныя Арабскія Эміраты Обединени арабски емирства Emirelezhioù Arab Unanet Ujedinjeni Arapski Emirati Emirats Àrabs Units Spojené arabské emiráty De Forenede Arabiske Emirater Vereinigte Arabische Emirate Ηνωμένα Αραβικά Εμιράτα United Arab Emirates Unuiĝintaj Arabaj Emirlandoj Emiratos Árabes Unidos Araabia Ühendemiraadid Arabiar Emirerri Batuak امارات متحدهٔ عربی Arabiemiirikunnat Émirats arabes unis Émirats arabes unis Aontas na nÉimíríochtaí Arabacha Na h-Iomaratan Arabach Aonaichte Os Emiratos Árabes Unidos איחוד האמירויות הערביות Ujedinjeni Arapski Emirati Egyesült Arab Emírségek Emiratos Arabe Unite Uni Emirat Arab Sameinuðu arabísku furstadæmin Emirati Arabi Uniti アラブ首長国連邦 아랍에미리트 United Arab Emirates Бириккен Араб Эмираттары Jungtiniai Arabų Emyratai Apvienotie Arābu Emirāti യുണൈറ്റഡ് അറബ് എമിറൈറ്റ്‌സ് Арабын Нэгдсэн Эмирт Улс De forente arabiske emirater Verenigde Arabische Emiraten Dei sameinte arabiske emirata United Arab Emirates Zjednoczone Emiraty Arabskie Emirados Árabes Unidos Emirados Árabes Unidos Emiratele Arabe Unite ОАЭ Spojené arabské emiráty Združeni arabski emirati Emiratet e Bashkuara Arabe Уједињени Арапски Емирати Förenade Arabemiraten Falme za Kiarabu สหรัฐอาหรับเอมิเรตส์ Birleşik Arap Emirlikleri Берләшкән Гарәп Әмирлекләре Обʼєднані Арабські Емірати Birlashgan Arab Amirliklari Các Tiểu Vương quốc Ả Rập Thống nhất 阿拉伯联合酋长国 阿拉伯聯合大公國
AF أفغانستان Афганістан Афганистан Afghanistan Afganistan Afganistan Afghánistán Afghanistan Afghanistan Αφγανιστάν Afghanistan Afganujo Afganistán Afganistan Afganistan افغانستان Afganistan Afghanistan Afghanistan an Afganastáin Afghanastàn Afganistán אפגניסטן Afganistan Afganisztán Afghanistan Afganistan Afganistan Afghanistan アフガニスタン 아프가니스탄 Afghanistan Афганистан Afganistanas Afganistāna അഫ്‌ഗാനിസ്ഥാൻ Афганистан Afghanistan Afghanistan Afghanistan Afghanistan Afganistan Afeganistão Afeganistão Afganistan Афганистан Afganistan Afganistan Afganistan Авганистан Afghanistan Afghanistan อัฟกานิสถาน Afganistan Әфганстан Афганістан Afgʻoniston Afghanistan 阿富汗 阿富汗
AG أنتيغوا وبربودا Антыгуа і Барбуда Антигуа и Барбуда Antigua ha Barbuda Antigva i Barbuda Antigua i Barbuda Antigua a Barbuda Antigua og Barbuda Antigua und Barbuda Αντίγκουα και Μπαρμπούντα Antigua & Barbuda Antigvo-Barbudo Antigua y Barbuda Antigua ja Barbuda Antigua eta Barbuda آنتیگوا و باربودا Antigua ja Barbuda Antigua-et-Barbuda Antigua-et-Barbuda Antigua agus Barbúda Aintìoga is Barbuda Antigua e Barbuda אנטיגואה וברבודה Antigva i Barbuda Antigua és Barbuda Antigua e Barbuda Antigua dan Barbuda Antígva og Barbúda Antigua e Barbuda アンティグア・バーブーダ 앤티가 바부다 Antigua & Barbuda Антигуа жана Барбуда Antigva ir Barbuda Antigva un Barbuda ആൻറിഗ്വയും ബർബുഡയും Антигуа ба Барбуда Antigua og Barbuda Antigua en Barbuda Antigua og Barbuda Antigua & Barbuda Antigua i Barbuda Antígua e Barbuda Antígua e Barbuda Antigua și Barbuda Антигуа и Барбуда Antigua a Barbuda Antigva in Barbuda Antigua e Barbuda Антигва и Барбуда Antigua och Barbuda Antigua na Barbuda แอนติกาและบาร์บูดา Antigua ve Barbuda Антигуа һәм Барбуда Антиґуа і Барбуда Antigua va Barbuda Antigua và Barbuda 安提瓜和巴布达 安地卡及巴布達
AI أنغويلا Ангілья Ангуила Anguilla Angvila Anguilla Anguilla Anguilla Anguilla Ανγκουίλα Anguilla Angvilo Anguila Anguilla Aingira آنگویلا Anguilla Anguilla Anguilla Angaíle Anguillia Anguila אנגווילה Angvila Anguilla Anguilla Anguilla Angvilla Anguilla アンギラ 앵귈라 Anguilla Ангилья Angilija Angilja ആൻഗ്വില്ല Ангилья Anguilla Anguilla Anguilla Anguilla Anguilla Anguila Anguila Anguilla Ангилья Anguilla Angvila Anguilë Ангвила Anguilla Anguilla แองกวิลลา Anguilla Ангилья Анґілья Angilya Anguilla 安圭拉 安奎拉
AL ألبانيا Албанія Албания Albania Albanija Albània Albánie Albanien Albanien Αλβανία Albania Albanujo Albania Albaania Albania آلبانی Albania Albanie Albanie an Albáin Albàinia Albania אלבניה Albanija Albánia Albania Albania Albanía Albania アルバニア 알바니아 Albania Албания Albanija Albānija അൽബേനിയ Албани Albania Albanië Albania Albania Albania Albânia Albânia Albania Албания Albánsko Albanija Shqipëri Албанија Albanien Albania แอลเบเนีย Arnavutluk Албания Албанія Albaniya Albania 阿尔巴尼亚 阿爾巴尼亞
AM أرمينيا Арменія Армения Armenia Armenija Armènia Arménie Armenien Armenien Αρμενία Armenia Armenujo Armenia Armeenia Armenia ارمنستان Armenia Arménie Arménie an Airméin Airmeinea Armenia ארמניה Armenija Örményország Armenia Armenia Armenía Armenia アルメニア 아르메니아 Armenia Армения Armėnija Armēnija അർമേനിയ Армени Armenia Armenië Armenia Armenia Armenia Armênia Armênia Armenia Армения Arménsko Armenija Armeni Јерменија Armenien Armenia อาร์เมเนีย Ermenistan Әрмәнстан Вірменія Armaniston Armenia 亚美尼亚 亞美尼亞
AO أنغولا Ангола Ангола Angola Angola Angola Angola Angola Angola Αγκόλα Angola Angolo Angola Angola Angola آنگولا Angola Angola Angola Angóla Angòla Angola אנגולה Angola Angola Angola Angola Angóla Angola アンゴラ 앙골라 Angola Ангола Angola Angola അംഗോള Ангол Angola Angola Angola Angola Angola Angola Angola Angola Ангола Angola Angola Angolë Ангола Angola Angola แองโกลา Angola Ангола Ангола Angola Angola 安哥拉 安哥拉
AQ أنتاركتيكا Антарктыка Антарктика Antarktika Antarktika Antàrtida Antarktida Antarktis Antarktis Ανταρκτική Antarctica Antarkto Antártida Antarktika Antartika جنوبگان Antarktis Antarctique Antarctique an Antartaice An Antartaig A Antártida אנטארקטיקה Antarktika Antarktisz Antarctica Antarktika Suðurskautslandið Antartide 南極 남극 대륙 Antarctica Антарктида Antarktida Antarktika അന്റാർട്ടിക്ക Антарктид Antarktis Antarctica Antarktis Antarctica Antarktyda Antártida Antártida Antarctica Антарктида Antarktída Antarktika Antarktikë Антарктик Antarktis Antaktiki แอนตาร์กติกา Antarktika Антарктика Антарктика Antarktida Nam Cực 南极洲 南極洲
AR الأرجنتين Аргенціна Аржентина Arcʼhantina Argentina Argentina Argentina Argentina Argentinien Αργεντινή Argentina Argentino Argentina Argentina Argentina آرژانتین Argentiina Argentine Argentine an Airgintín An Argantain A Arxentina ארגנטינה Argentina Argentína Argentina Argentina Argentína Argentina アルゼンチン 아르헨티나 Argentina Аргентина Argentina Argentīna അർജന്റീന Аргентин Argentina Argentinië Argentina Argentina Argentyna Argentina Argentina Argentina Аргентина Argentína Argentina Argjentinë Аргентина Argentina Ajentina อาร์เจนตินา Arjantin Аргентина Аргентина Argentina Argentina 阿根廷 阿根廷
AS ساموا الأمريكية Амерыканскае Самоа Американска Самоа Samoa Amerikan Američka Samoa Samoa Nord-americana Americká Samoa Amerikansk Samoa Amerikanisch-Samoa Αμερικανική Σαμόα American Samoa American Samoa Samoa Americana Ameerika Samoa Samoa Estatubatuarra ساموآی امریکا Amerikan Samoa Samoa américaines Samoa américaines Samó Mheiriceá Samotha na h-Aimeireaga Samoa Americana סמואה האמריקנית Američka Samoa Amerikai Szamoa Samoa american Samoa Amerika Bandaríska Samóa Samoa americane 米領サモア 아메리칸 사모아 American Samoa Америкалык Самоа Amerikos Samoa ASV Samoa അമേരിക്കൻ സമോവ Америкийн Самоа Amerikansk Samoa Amerikaans-Samoa Amerikansk Samoa American Samoa Samoa Amerykańskie Samoa Americana Samoa Americana Samoa Americană Американское Самоа Americká Samoa Ameriška Samoa Samoa Amerikane Америчка Самоа Amerikanska Samoa Samoa ya Marekani อเมริกันซามัว Amerikan Samoası Америка Самоасы Американське Самоа Amerika Samoasi Samoa thuộc Mỹ 美属萨摩亚 美屬薩摩亞
AT النمسا Аўстрыя Австрия Aostria Austrija Àustria Rakousko Østrig Österreich Αυστρία Austria Aŭstrujo Austria Austria Austria اتریش Itävalta Autriche Autriche an Ostair An Ostair Austria אוסטריה Austrija Ausztria Austria Austria Austurríki Austria オーストリア 오스트리아 Austria Австрия Austrija Austrija ഓസ്ട്രിയ Австри Østerrike Oostenrijk Austerrike Austria Austria Áustria Áustria Austria Австрия Rakúsko Avstrija Austri Аустрија Österrike Austria ออสเตรีย Avusturya Австрия Австрія Avstriya Áo 奥地利 奧地利
AU أستراليا Аўстралія Австралия Aostralia Australija Austràlia Austrálie Australien Australien Αυστραλία Australia Aŭstralio Australia Austraalia Australia استرالیا Australia Australie Australie an Astráil Astràilia Australia אוסטרליה Australija Ausztrália Australia Australia Ástralía Australia オーストラリア 오스트레일리아 Australia Австралия Australija Austrālija ഓസ്‌ട്രേലിയ Австрали Australia Australië Australia Australia Australia Austrália Austrália Australia Австралия Austrália Avstralija Australi Аустралија Australien Australia ออสเตรเลีย Avustralya Австралия Австралія Avstraliya Australia 澳大利亚 澳洲
AW أروبا Аруба Аруба Aruba Aruba Aruba Aruba Aruba Aruba Αρούμπα Aruba Arubo Aruba Aruba Aruba آروبا Aruba Aruba Aruba Arúba Arùba Aruba ארובה Aruba Aruba Aruba Aruba Arúba Aruba アルバ 아루바 Aruba Аруба Aruba Aruba അറൂബ Аруба Aruba Aruba Aruba Aruba Aruba Aruba Aruba Aruba Аруба Aruba Aruba Arubë Аруба Aruba Aruba อารูบา Aruba Аруба Аруба Aruba Aruba 阿鲁巴 荷屬阿魯巴
AX جزر آلاند Аландскія астравы Оландски острови Inizi Åland Olandska ostrva Illes Åland Ålandy Åland Ålandinseln Νήσοι Όλαντ Åland Islands Åland Islands Islas Åland Ahvenamaa Åland جزایر آلاند Ahvenanmaa Îles Åland Îles Åland Oileáin Åland Na h-Eileanan Åland Illas Åland איי אולנד Ålandski otoci Åland-szigetek Insulas Åland Kepulauan Aland Álandseyjar Isole Åland オーランド諸島 올란드 제도 Åland Islands Аланд аралдары Alandų Salos Olandes salas അലൻഡ് ദ്വീപുകൾ Аландын арлууд Åland Åland Åland Åland Islands Wyspy Alandzkie Ilhas Aland Ilhas Aland Insulele Åland Аландские о-ва Alandy Ålandski otoki Ishujt Alandë Оландска Острва Åland Visiwa vya Aland หมู่เกาะโอลันด์ Åland Adaları Аланд утраулары Аландські Острови Aland orollari Quần đảo Åland 奥兰群岛 奧蘭群島
AZ أذربيجان Азербайджан Азербайджан Azerbaidjan Azerbejdžan Azerbaidjan Ázerbájdžán Aserbajdsjan Aserbaidschan Αζερμπαϊτζάν Azerbaijan Azerbajĝano Azerbaiyán Aserbaidžaan Azerbaijan جمهوری آذربایجان Azerbaidžan Azerbaïdjan Azerbaïdjan an Asarbaiseáin Asarbaideàn Acerbaixán אזרבייג׳ן Azerbajdžan Azerbajdzsán Azerbaidzhan Azerbaijan Aserbaídsjan Azerbaigian アゼルバイジャン 아제르바이잔 Azerbaijan Азербайжан Azerbaidžanas Azerbaidžāna അസർബൈജാൻ Азербайжан Aserbajdsjan Azerbeidzjan Aserbajdsjan Azerbaijan Azerbejdżan Azerbaijão Azerbaijão Azerbaidjan Азербайджан Azerbajdžan Azerbajdžan Azerbajxhan Азербејџан Azerbajdzjan Azerbaijani อาเซอร์ไบจาน Azerbaycan Әзәрбайҗан Азербайджан Ozarbayjon Azerbaijan 阿塞拜疆 亞塞拜然
BA البوسنة والهرسك Боснія і Герцагавіна Босна и Херцеговина Bosnia ha Herzegovina Bosna i Hercegovina Bòsnia i Hercegovina Bosna a Hercegovina Bosnien-Hercegovina Bosnien und Herzegowina Βοσνία - Ερζεγοβίνη Bosnia & Herzegovina Bosnio-Hercegovino Bosnia y Herzegovina Bosnia ja Hertsegoviina Bosnia-Herzegovina بوسنی و هرزگوین Bosnia ja Hertsegovina Bosnie-Herzégovine Bosnie-Herzégovine an Bhoisnia agus an Heirseagaivéin Bosna is Hearsagobhana Bosnia e Hercegovina בוסניה והרצגובינה Bosna i Hercegovina Bosznia-Hercegovina Bosnia e Herzegovina Bosnia dan Herzegovina Bosnía og Hersegóvína Bosnia ed Erzegovina ボスニア・ヘルツェゴビナ 보스니아 헤르체고비나 Bosnia & Herzegovina Босния жана Герцеговина Bosnija ir Hercegovina Bosnija un Hercegovina ബോസ്നിയയും ഹെർസഗോവിനയും Босни-Герцеговин Bosnia-Hercegovina Bosnië en Herzegovina Bosnia-Hercegovina Bosnia & Herzegovina Bośnia i Hercegowina Bósnia e Herzegovina Bósnia e Herzegovina Bosnia și Herțegovina Босния и Герцеговина Bosna a Hercegovina Bosna in Hercegovina Bosnjë-Hercegovinë Босна и Херцеговина Bosnien och Hercegovina Bosnia na Hezegovina บอสเนียและเฮอร์เซโกวีนา Bosna-Hersek Босния һәм Герцеговина Боснія і Герцеґовина Bosniya va Gertsegovina Bosnia và Herzegovina 波斯尼亚和黑塞哥维那 波士尼亞與赫塞哥維納
BB بربادوس Барбадас Барбадос Barbados Barbados Barbados Barbados Barbados Barbados Μπαρμπέιντος Barbados Barbado Barbados Barbados Barbados باربادوس Barbados Barbade Barbade Barbadós Barbados Barbados ברבדוס Barbados Barbados Barbados Barbados Barbados Barbados バルバドス 바베이도스 Barbados Барбадос Barbadosas Barbadosa ബാർബഡോസ് Барбадос Barbados Barbados Barbados Barbados Barbados Barbados Barbados Barbados Барбадос Barbados Barbados Barbados Барбадос Barbados Babadosi บาร์เบโดส Barbados Барбадос Барбадос Barbados Barbados 巴巴多斯 巴貝多
BD بنغلاديش Бангладэш Бангладеш Bangladesh Bangladeš Bangladesh Bangladéš Bangladesh Bangladesch Μπανγκλαντές Bangladesh Bangladeŝo Bangladés Bangladesh Bangladesh بنگلادش Bangladesh Bangladesh Bangladesh an Bhanglaidéis Bangladais Bangladesh בנגלדש Bangladeš Banglades Bangladesh Bangladesh Bangladess Bangladesh バングラデシュ 방글라데시 Bangladesh Бангладеш Bangladešas Bangladeša ബംഗ്ലാദേശ് Бангладеш Bangladesh Bangladesh Bangladesh Bangladesh Bangladesz Bangladesh Bangladesh Bangladesh Бангладеш Bangladéš Bangladeš Bangladesh Бангладеш Bangladesh Bangladeshi บังกลาเทศ Bangladeş Бангладеш Бангладеш Bangladesh Bangladesh 孟加拉国 孟加拉
BE بلجيكا Бельгія Белгия Belgia Belgija Bèlgica Belgie Belgien Belgien Βέλγιο Belgium Belgujo Bélgica Belgia Belgika بلژیک Belgia Belgique Belgique an Bheilg A Bheilg Bélxica בלגיה Belgija Belgium Belgica Belgia Belgía Belgio ベルギー 벨기에 Belgium Бельгия Belgija Beļģija ബെൽജിയം Бельги Belgia België Belgia Belgium Belgia Bélgica Bélgica Belgia Бельгия Belgicko Belgija Belgjikë Белгија Belgien Ubelgiji เบลเยียม Belçika Бельгия Бельґія Belgiya Bỉ 比利时 比利時
BF بوركينا فاسو Буркіна-Фасо Буркина Фасо Burkina Faso Burkina Faso Burkina Faso Burkina Faso Burkina Faso Burkina Faso Μπουρκίνα Φάσο Burkina Faso Burkino Burkina Faso Burkina Faso Burkina Faso بورکینافاسو Burkina Faso Burkina Faso Burkina Faso Buircíne Fasó Buirciona Faso Burkina Faso בורקינה פאסו Burkina Faso Burkina Faso Burkina Faso Burkina Faso Búrkína Fasó Burkina Faso ブルキナファソ 부르키나파소 Burkina Faso Буркина-Фасо Burkina Fasas Burkinafaso ബർക്കിന ഫാസോ Буркина Фасо Burkina Faso Burkina Faso Burkina Faso Burkina Faso Burkina Faso Burquina Faso Burquina Faso Burkina Faso Буркина-Фасо Burkina Faso Burkina Faso Burkina-Faso Буркина Фасо Burkina Faso Bukinafaso บูร์กินาฟาโซ Burkina Faso Буркина-Фасо Буркіна-Фасо Burkina-Faso Burkina Faso 布基纳法索 布吉納法索
BG بلغاريا Балгарыя България Bulgaria Bugarska Bulgària Bulharsko Bulgarien Bulgarien Βουλγαρία Bulgaria Bulgarujo Bulgaria Bulgaaria Bulgaria بلغارستان Bulgaria Bulgarie Bulgarie an Bhulgáir A Bhulgair Bulgaria בולגריה Bugarska Bulgária Bulgaria Bulgaria Búlgaría Bulgaria ブルガリア 불가리아 Bulgaria Болгария Bulgarija Bulgārija ബൾഗേറിയ Болгар Bulgaria Bulgarije Bulgaria Bulgaria Bułgaria Bulgária Bulgária Bulgaria Болгария Bulharsko Bolgarija Bullgari Бугарска Bulgarien Bulgaria บัลแกเรีย Bulgaristan Болгария Болгарія Bolgariya Bulgaria 保加利亚 保加利亞
BH البحرين Бахрэйн Бахрейн Bahrein Bahrein Bahrain Bahrajn Bahrain Bahrain Μπαχρέιν Bahrain Barejno Baréin Bahrein Bahrain بحرین Bahrain Bahreïn Bahreïn Bairéin Bachrain Bahrain בחריין Bahrein Bahrein Bahrain Bahrain Barein Bahrein バーレーン 바레인 Bahrain Бахрейн Bahreinas Bahreina ബഹ്റിൻ Бахрейн Bahrain Bahrein Bahrain Bahrain Bahrajn Bahrein Bahrein Bahrain Бахрейн Bahrajn Bahrajn Bahrejn Бахреин Bahrain Bahareni บาห์เรน Bahreyn Бәхрәйн Бахрейн Bahrayn Bahrain 巴林 巴林
BI بوروندي Бурундзі Бурунди Burundi Burundi Burundi Burundi Burundi Burundi Μπουρούντι Burundi Burundo Burundi Burundi Burundi بوروندی Burundi Burundi Burundi an Bhurúin Burundaidh Burundi בורונדי Burundi Burundi Burundi Burundi Búrúndí Burundi ブルンジ 부룬디 Burundi Бурунди Burundis Burundija ബറുണ്ടി Бурунди Burundi Burundi Burundi Burundi Burundi Burundi Burundi Burundi Бурунди Burundi Burundi Burundi Бурунди Burundi Burundi บุรุนดี Burundi Бурунди Бурунді Burundi Burundi 布隆迪 蒲隆地
BJ بنين Бенін Бенин Benin Benin Benín Benin Benin Benin Μπενίν Benin Benino Benín Benin Benin بنین Benin Bénin Bénin Beinin Beinin Benín בנין Benin Benin Benin Benin Benín Benin ベナン 베냉 Benin Бенин Beninas Benina ബെനിൻ Бенин Benin Benin Benin Benin Benin Benin Benin Benin Бенин Benin Benin Benin Бенин Benin Benin เบนิน Benin Бенин Бенін Benin Benin 贝宁 貝南
BL سان بارتليمي Сен-Бартэльмі Сен Бартелеми Saint Barthélemy Sveti Bartolomej Saint Barthélemy Svatý Bartoloměj Saint Barthélemy St. Barthélemy Άγιος Βαρθολομαίος St. Barthélemy St. Barthélemy San Bartolomé Saint-Barthélemy Saint Barthélemy سن بارتلمی Saint-Barthélemy Saint-Barthélemy Saint-Barthélemy Saint Barthélemy Saint Barthélemy Saint Barthélemy סנט ברתולומיאו Saint Barthélemy Saint-Barthélemy St. Barthélemy Saint Barthélemy Sankti Bartólómeusareyjar Saint-Barthélemy サン・バルテルミー 생바르텔레미 St. Barthélemy Сент Бартелеми Sen Bartelemi Senbartelmī സെന്റ് ബാർത്തലമി Сент-Бартельми Saint-Barthélemy Saint-Barthélemy Saint Barthélemy St. Barthélemy Saint-Barthélemy São Bartolomeu São Bartolomeu Saint-Barthélemy Сен-Бартелеми Svätý Bartolomej Saint Barthélemy Sen-Bartelemi Свети Бартоломеј S:t Barthélemy St. Barthelemy เซนต์บาร์เธเลมี Saint Barthelemy Сен-Бартельми Сен-Бартельмі Sen-Bartelemi St. Barthélemy 圣巴泰勒米 聖巴瑟米
BM برمودا Бермудскія астравы Бермудски острови Bermuda Bermuda Bermudes Bermudy Bermuda Bermuda Βερμούδες Bermuda Bermudoj Bermudas Bermuda Bermuda برمودا Bermuda Bermudes Bermudes Beirmiúda Bearmùda Illas Bermudas ברמודה Bermudi Bermuda Bermuda Bermuda Bermúdaeyjar Bermuda バミューダ 버뮤다 Bermuda Бермуд аралдары Bermuda Bermudu salas ബർമുഡ Бермуда Bermuda Bermuda Bermuda Bermuda Bermudy Bermudas Bermudas Bermuda Бермудские о-ва Bermudy Bermudi Bermude Бермуда Bermuda Bermuda เบอร์มิวดา Bermuda Бермуд утраулары Бермудські Острови Bermuda orollari Bermuda 百慕大 百慕達
BN بروناي Бруней Бруней Даруссалам Brunei Brunej Brunei Brunej Brunei Brunei Darussalam Μπρουνέι Brunei Brunejo Brunéi Brunei Brunei برونئی Brunei Brunéi Darussalam Brunéi Darussalam Brúiné Brùnaigh Brunei ברוניי Brunej Brunei Brunei Brunei Brúnei Brunei ブルネイ 브루나이 Brunei Бруней Brunėjus Bruneja ബ്രൂണൈ Бруней Brunei Brunei Brunei Brunei Brunei Brunei Brunei Brunei Бруней-Даруссалам Brunej Brunej Brunei Брунеј Brunei Brunei บรูไน Brunei Бруней Бруней Bruney Brunei 文莱 汶萊
BO بوليفيا Балівія Боливия Bolivia Bolivija Bolívia Bolívie Bolivia Bolivien Βολιβία Bolivia Bolivio Bolivia Boliivia Bolivia بولیوی Bolivia Bolivie Bolivie an Bholaiv Boilibhia Bolivia בוליביה Bolivija Bolívia Bolivia Bolivia Bólivía Bolivia ボリビア 볼리비아 Bolivia Боливия Bolivija Bolīvija ബൊളീവിയ Боливи Bolivia Bolivia Bolivia Bolivia Boliwia Bolívia Bolívia Bolivia Боливия Bolívia Bolivija Bolivi Боливија Bolivia Bolivia โบลิเวีย Bolivya Боливия Болівія Boliviya Bolivia 玻利维亚 玻利維亞
BQ هولندا الكاريبية Карыбскія Нідэрланды Карибска Нидерландия Karib Nederlandat Karipska Holandija Carib Neerlandès Karibské Nizozemsko De tidligere Nederlandske Antiller Bonaire, Sint Eustatius und Saba Ολλανδία Καραϊβικής Caribbean Netherlands Caribbean Netherlands Caribe neerlandés Hollandi Kariibi mere saared Karibeko Herbehereak جزایر کارائیب هلند Karibian Alankomaat Pays-Bas caribéens Pays-Bas caribéens an Ísiltír Chairibeach Na Tìrean Ìsle Caraibeach Caribe Neerlandés האיים הקריביים ההולנדיים Karipski otoci Nizozemske Holland Karib-térség Caribbean Netherlands Belanda Karibia Karíbahafshluti Hollands Caraibi olandesi オランダ領カリブ 네덜란드령 카리브 Caribbean Netherlands Кариб Нидерланддары Karibų Nyderlandai Nīderlandes Karību salas കരീബിയൻ നെതർലാൻഡ്സ് Карибын Нидерланд Karibisk Nederland Caribisch Nederland Karibisk Nederland Caribbean Netherlands Niderlandy Karaibskie Países Baixos Caribenhos Países Baixos Caribenhos Insulele Caraibe Olandeze Бонэйр, Синт-Эстатиус и Саба Karibské Holandsko Nizozemski Karibi Karaibet holandeze Карипска Холандија Karibiska Nederländerna Uholanzi ya Karibiani เนเธอร์แลนด์แคริบเบียน Karayip Hollandası Caribbean Netherlands Нідерландські Карибські острови Boneyr, Sint-Estatius va Saba Ca-ri-bê Hà Lan 荷属加勒比区 荷蘭加勒比區
BR البرازيل Бразілія Бразилия Brazil Brazil Brasil Brazílie Brasilien Brasilien Βραζιλία Brazil Brazilo Brasil Brasiilia Brasil برزیل Brasilia Brésil Brésil an Bhrasaíl Braisil O Brasil ברזיל Brazil Brazília Brasil Brasil Brasilía Brasile ブラジル 브라질 Brasil Бразилия Brazilija Brazīlija ബ്രസീൽ Бразил Brasil Brazilië Brasil Бразили Brazylia Brasil Brasil Brazilia Бразилия Brazília Brazilija Brazil Бразил Brasilien Brazil บราซิล Brezilya Бразилия Бразілія Braziliya Brazil 巴西 巴西
BS جزر البهاما Багамскія астравы Бахамски острови Bahamas Bahami Bahames Bahamy Bahamas Bahamas Μπαχάμες Bahamas Bahamoj Bahamas Bahama Bahamak باهاما Bahama Bahamas Bahamas na Bahámaí Na h-Eileanan Bhathama Bahamas איי בהאמה Bahami Bahama-szigetek Bahamas Bahama Bahamaeyjar Bahamas バハマ 바하마 Bahamas Багама аралдары Bahamos Bahamu salas ബഹാമാസ് Багамын арлууд Bahamas Bahamas Bahamas Bahamas Bahamy Bahamas Bahamas Bahamas Багамы Bahamy Bahami Bahama Бахами Bahamas Bahama บาฮามาส Bahamalar Багам утраулары Багамські Острови Bagama orollari Bahamas 巴哈马 巴哈馬
BT بوتان Бутан Бутан Bhoutan Butan Bhutan Bhútán Bhutan Bhutan Μπουτάν Bhutan Butano Bután Bhutan Bhutan بوتان Bhutan Bhoutan Bhoutan an Bhútáin Butàn Bután בהוטן Butan Bhután Bhutan Bhutan Bútan Bhutan ブータン 부탄 Bhutan Бутан Butanas Butāna ഭൂട്ടാൻ Бутан Bhutan Bhutan Bhutan Bhutan Bhutan Butão Butão Bhutan Бутан Bhután Butan Butan Бутан Bhutan Bhutan ภูฏาน Butan Бутан Бутан Butan Bhutan 不丹 不丹
BV جزيرة بوفيه Востраў Бувэ остров Буве Enez Bouvet Ostrvo Buve Bouvet Bouvetův ostrov Bouvetøen Bouvetinsel Νήσος Μπουβέ Bouvet Island Bouvet Island Isla Bouvet Bouvet saar Bouvet uhartea جزیرهٔ بووه Bouvetnsaari Île Bouvet Île Bouvet Oileán Bouvet Eilean Bouvet Illa Bouvet האי בובה Otok Bouvet Bouvet-sziget Insula de Bouvet Pulau Bouvet Bouveteyja Isola Bouvet ブーベ島 부베섬 Bouvet Island Буве аралы Buvė Sala Buvē sala ബൗവെട്ട് ദ്വീപ് Буве арал Bouvetøya Bouveteiland Bouvetøya Bouvet Island Wyspa Bouveta Ilha Bouvet Ilha Bouvet Insula Bouvet о-в Буве Bouvetov ostrov Bouvetov otok Ishulli Bove Острво Буве Bouvetön Kisiwa cha Bouvet เกาะบูเว Bouvet Adası Буве утравы Острів Буве Buve oroli Đảo Bouvet 布韦岛 布威島
BW بوتسوانا Батсвана Ботсвана Botswana Bocvana Botswana Botswana Botswana Botsuana Μποτσουάνα Botswana Bocvano Botsuana Botswana Botswana بوتسوانا Botswana Botswana Botswana an Bhotsuáin Botsuana Botswana בוצוואנה Bocvana Botswana Botswana Botswana Botsvana Botswana ボツワナ 보츠와나 Botswana Ботсвана Botsvana Botsvāna ബോട്സ്വാന Ботсван Botswana Botswana Botswana Botswana Botswana Botsuana Botsuana Botswana Ботсвана Botswana Bocvana Botsvanë Боцвана Botswana Botswana บอตสวานา Botsvana Ботсвана Ботсвана Botsvana Botswana 博茨瓦纳 波札那
BY بيلاروس Беларусь Беларус Belarus Bjelorusija Belarús Bělorusko Hviderusland Belarus Λευκορωσία Belarus Belorusujo Bielorrusia Valgevene Bielorrusia بلاروس Valko-Venäjä Biélorussie Biélorussie an Bhealarúis A Bhealaruis Belarús בלארוס Bjelorusija Belarusz Bielorussia Belarus Hvíta-Rússland Bielorussia ベラルーシ 벨라루스 Belarus Беларусь Baltarusija Baltkrievija ബെലറൂസ് Беларусь Hviterussland Belarus Kviterussland Belarus Białoruś Bielorrússia Bielorrússia Belarus Беларусь Bielorusko Belorusija Bjellorusi Белорусија Vitryssland Belarus เบลารุส Belarus Беларусь Білорусь Belarus Belarus 白俄罗斯 白俄羅斯
BZ بليز Беліз Белиз Belize Belize Belize Belize Belize Belize Μπελίζ Belize Belizo Belice Belize Belize بلیز Belize Belize Belize an Bheilís A Bheilìs Belize בליז Belize Belize Belize Belize Belís Belize ベリーズ 벨리즈 Belize Белиз Belizas Beliza ബെലീസ് Белизе Belize Belize Belize Belize Belize Belize Belize Belize Белиз Belize Belize Belizë Белизе Belize Belize เบลีซ Belize Белиз Беліз Beliz Belize 伯利兹 貝里斯
CA كندا Канада Канада Kanada Kanada Canadà Kanada Canada Kanada Καναδάς Canada Kanado Canadá Kanada Kanada کانادا Kanada Canada Canada Ceanada Canada O Canadá קנדה Kanada Kanada Canada Kanada Kanada Canada カナダ 캐나다 Canada Канада Kanada Kanāda കാനഡ Канад Canada Canada Canada Canada Kanada Canadá Canadá Canada Канада Kanada Kanada Kanada Канада Kanada Kanada แคนาดา Kanada Канада Канада Kanada Canada 加拿大 加拿大
CC جزر كوكوس (كيلينغ) Какосавыя (Кілінг) астравы Кокосови острови (острови Кийлинг) Inizi Kokoz Kokosova (Keelingova) ostrva Illes Cocos Kokosové ostrovy Cocosøerne Kokosinseln Νήσοι Κόκος (Κίλινγκ) Cocos (Keeling) Islands Cocos (Keeling) Islands Islas Cocos Kookossaared Cocos (Keeling) uharteak جزایر کوکوس Kookossaaret (Keelingsaaret) Îles Cocos Îles Cocos Oileáin Cocos (Keeling) Na h-Eileanan Chocos (Keeling) Illas Cocos (Keeling) איי קוקוס (קילינג) Kokosovi (Keelingovi) otoci Kókusz (Keeling)-szigetek Cocos (Keeling) Islands Kepulauan Cocos (Keeling) Kókoseyjar (Keeling) Isole Cocos (Keeling) ココス(キーリング)諸島 코코스 제도 Cocos (Keeling) Islands Кокос (Килинг) аралдары Kokosų (Kilingo) Salos Kokosu (Kīlinga) salas കോക്കസ് (കീലിംഗ്) ദ്വീപുകൾ Кокос (Кийлинг) арлууд Kokosøyene Cocoseilanden Kokosøyane Cocos (Keeling) Islands Wyspy Kokosowe Ilhas Cocos (Keeling) Ilhas Cocos (Keeling) Insulele Cocos (Keeling) Кокосовые о-ва Kokosové ostrovy Kokosovi otoki Ishujt Kokos Кокосова (Килингова) Острва Kokosöarna Visiwa vya Cocos (Keeling) หมู่เกาะโคโคส (คีลิง) Cocos (Keeling) Adaları Кокос (Килинг) утраулары Кокосові (Кілінґ) Острови Kokos (Kiling) orollari Quần đảo Cocos (Keeling) 科科斯(基林)群岛 科克斯(基靈)群島
CD الكونغو - كينشاسا Конга (Кіншаса) Конго (Киншаса) Kongo - Kinshasa Demokratska Republika Kongo Congo - Kinshasa Kongo Kinshasa Congo-Kinshasa Kongo-Kinshasa Κονγκό - Κινσάσα Congo - Kinshasa Congo - Kinshasa República Democrática del Congo Kongo DV Kongoko Errepublika Demokratikoa کنگو - کینشاسا Kongon demokraattinen tasavalta Congo-Kinshasa Congo-Kinshasa Poblacht Dhaonlathach an Chongó Congo - Kinshasa República Democrática do Congo קונגו - קינשאסה Kongo - Kinshasa Kongó - Kinshasa Congo - Kinshasa Kongo - Kinshasa Kongó-Kinshasa Congo - Kinshasa コンゴ民主共和国(キンシャサ) 콩고-킨샤사 Congo - Kinshasa Конго-Киншаса Kongas-Kinšasa Kongo (Kinšasa) കോംഗോ - കിൻഷാസ Конго-Киншаса Kongo-Kinshasa Congo-Kinshasa Kongo-Kinshasa Congo - Kinshasa Demokratyczna Republika Konga Congo - Kinshasa Congo - Kinshasa Congo - Kinshasa Конго - Киншаса Konžská demokratická republika Demokratična republika Kongo Kongo-Kinshasa Конго - Киншаса Kongo-Kinshasa Jamhuri ya Kidemokrasia ya Kongo คองโก - กินชาซา Kongo - Kinşasa Congo - Kinshasa Конго Кіншаса Kongo Kinshasa Congo - Kinshasa 刚果(金) 剛果(金夏沙)
CF جمهورية أفريقيا الوسطى Цэнтральна-Афрыканская Рэспубліка Централноафриканска република Republik Kreizafrikan Centralnoafrička Republika República Centreafricana Středoafrická republika Den Centralafrikanske Republik Zentralafrikanische Republik Κεντροαφρικανική Δημοκρατία Central African Republic Centr-Afrika Respubliko República Centroafricana Kesk-Aafrika Vabariik Afrika Erdiko Errepublika جمهوری افریقای مرکزی Keski-Afrikan tasavalta République centrafricaine République centrafricaine Poblacht na hAfraice Láir Poblachd Meadhan Afraga República Centroafricana הרפובליקה המרכז-אפריקאית Srednjoafrička Republika Közép-afrikai Köztársaság Republica African Central Republik Afrika Tengah Mið-Afríkulýðveldið Repubblica Centrafricana 中央アフリカ共和国 중앙 아프리카 공화국 Central African Republic Борбордук Африка Республикасы Centrinės Afrikos Respublika Centrālāfrikas Republika സെൻട്രൽ ആഫ്രിക്കൻ റിപ്പബ്ലിക്ക് Төв Африкийн Бүгд Найрамдах Улс Den sentralafrikanske republikk Centraal-Afrikaanse Republiek Den sentralafrikanske republikken Central African Republic Republika Środkowoafrykańska República Centro-Africana República Centro-Africana Republica Centrafricană Центрально-Африканская Республика Stredoafrická republika Centralnoafriška republika Republika e Afrikës Qendrore Централноафричка Република Centralafrikanska republiken Jamhuri ya Afrika ya Kati สาธารณรัฐแอฟริกากลาง Orta Afrika Cumhuriyeti Үзәк Африка Республикасы Центральноафриканська Республіка Markaziy Afrika Respublikasi Cộng hòa Trung Phi 中非共和国 中非共和國
CG الكونغو - برازافيل Конга - Бразавіль Конго (Бразавил) Kongo - Brazzaville Kongo Congo - Brazzaville Kongo Brazzaville Congo-Brazzaville Kongo-Brazzaville Κονγκό - Μπραζαβίλ Congo - Brazzaville Kongolo Congo Kongo Vabariik Kongo کنگو - برازویل Kongon tasavalta Congo-Brazzaville Congo-Brazzaville an Congó A Chongo - Brazzaville República do Congo קונגו - ברזאויל Kongo - Brazzaville Kongó - Brazzaville Congo Kongo - Brazzaville Kongó-Brazzaville Congo-Brazzaville コンゴ共和国(ブラザビル) 콩고-브라자빌 Congo - Brazzaville Конго-Браззавил Kongas-Brazavilis Kongo (Brazavila) കോംഗോ - ബ്രാസവില്ലി Конго-Браззавиль Kongo-Brazzaville Congo-Brazzaville Kongo-Brazzaville Congo - Brazzaville Kongo República do Congo República do Congo Congo - Brazzaville Конго - Браззавиль Konžská republika Kongo - Brazzaville Kongo-Brazavilë Конго - Бразавил Kongo-Brazzaville Kongo - Brazzaville คองโก - บราซซาวิล Kongo - Brazavil Congo - Brazzaville Конго Браззавіль Kongo Brazzavil Congo - Brazzaville 刚果(布) 剛果(布拉薩)
CH سويسرا Швейцарыя Швейцария Suis Švicarska Suïssa Švýcarsko Schweiz Schweiz Ελβετία Switzerland Svisujo Suiza Šveits Suitza سوئیس Sveitsi Suisse Suisse an Eilvéis An Eilbheis Suíza שווייץ Švicarska Svájc Suissa Swiss Sviss Svizzera スイス 스위스 Switzerland Швейцария Šveicarija Šveice സ്വിറ്റ്സർലാൻഡ് Швейцарь Sveits Zwitserland Sveits Switzerland Szwajcaria Suíça Suíça Elveția Швейцария Švajčiarsko Švica Zvicër Швајцарска Schweiz Uswisi สวิตเซอร์แลนด์ İsviçre Швейцария Швейцарія Shveytsariya Thụy Sĩ 瑞士 瑞士
CI ساحل العاج Кот-д’Івуар Кот д’Ивоар Aod an Olifant Obala Slonovače Côte dIvoire Pobřeží slonoviny Elfenbenskysten Côte dIvoire Ακτή Ελεφαντοστού Côte dIvoire Ebur-Bordo Côte dIvoire Côte dIvoire Boli Kosta ساحل عاج Norsunluurannikko Côte dIvoire Côte dIvoire an Cósta Eabhair Côte dIvoire Côte dIvoire חוף השנהב Obala Bjelokosti Elefántcsontpart Côte dIvoire Côte dIvoire Fílabeinsströndin Costa dAvorio コートジボワール 코트디부아르 Côte dIvoire Кот-д’Ивуар Dramblio Kaulo Krantas Kotdivuāra കോട്ട് ഡി വാർ Кот-д’Ивуар Elfenbenskysten Ivoorkust Elfenbeinskysten Côte dIvoire Côte dIvoire Costa do Marfim Costa do Marfim Côte dIvoire Кот-д’Ивуар Pobrežie Slonoviny Slonokoščena obala Côte dIvoire Обала Слоноваче (Кот д’Ивоар) Côte dIvoire Cote dIvoire โกตดิวัวร์ Côte dIvoire Кот-д’Ивуар Кот-дʼІвуар Kot-dIvuar Côte dIvoire 科特迪瓦 象牙海岸
CK جزر كوك Астравы Кука острови Кук Inizi Cook Kukova ostrva Illes Cook Cookovy ostrovy Cookøerne Cookinseln Νήσοι Κουκ Cook Islands Kukinsuloj Islas Cook Cooki saared Cook uharteak جزایر کوک Cookinsaaret Îles Cook Îles Cook Oileáin Cook Eileanan Cook Illas Cook איי קוק Cookovi Otoci Cook-szigetek Insulas Cook Kepulauan Cook Cooks-eyjar Isole Cook クック諸島 쿡 제도 Cook Islands Кук аралдары Kuko Salos Kuka salas കുക്ക് ദ്വീപുകൾ Күүкийн арлууд Cookøyene Cookeilanden Cookøyane Cook Islands Wyspy Cooka Ilhas Cook Ilhas Cook Insulele Cook Острова Кука Cookove ostrovy Cookovi otoki Ishujt Kuk Кукова Острва Cooköarna Visiwa vya Cook หมู่เกาะคุก Cook Adaları Кук утраулары Острови Кука Kuk orollari Quần đảo Cook 库克群岛 庫克群島
CL تشيلي Чылі Чили Chile Čile Xile Chile Chile Chile Χιλή Chile Ĉilio Chile Tšiili Txile شیلی Chile Chili Chili an tSile An t-Sile Chile צ׳ילה Čile Chile Chile Cile Síle Cile チリ 칠레 Chile Чили Čilė Čīle ചിലി Чили Chile Chili Chile Chile Chile Chile Chile Chile Чили Čile Čile Kili Чиле Chile Chile ชิลี Şili Чили Чілі Chili Chile 智利 智利
CM الكاميرون Камерун Камерун Kameroun Kamerun Camerun Kamerun Cameroun Kamerun Καμερούν Cameroon Kameruno Camerún Kamerun Kamerun کامرون Kamerun Cameroun Cameroun Camarún Camarun Camerún קמרון Kamerun Kamerun Camerun Kamerun Kamerún Camerun カメルーン 카메룬 Cameroon Камерун Kamerūnas Kamerūna കാമറൂൺ Камерун Kamerun Kameroen Kamerun Cameroon Kamerun Camarões Camarões Camerun Камерун Kamerun Kamerun Kamerun Камерун Kamerun Kameruni แคเมอรูน Kamerun Камерун Камерун Kamerun Cameroon 喀麦隆 喀麥隆
CN الصين Кітай Китай Sina Kina Xina Čína Kina China Κίνα China Ĉinujo China Hiina Txina چین Kiina Chine Chine an tSín An t-Sìn A China סין Kina Kína China Tiongkok Kína Cina 中国 중국 China Кытай Kinija Ķīna ചൈന Хятад Kina China Kina Китай Chiny China China China Китай Čína Kitajska Kinë Кина Kina Uchina จีน Çin Кытай Китай Xitoy Trung Quốc 中国 中國
CO كولومبيا Калумбія Колумбия Kolombia Kolumbija Colòmbia Kolumbie Colombia Kolumbien Κολομβία Colombia Kolombio Colombia Colombia Kolonbia کلمبیا Kolumbia Colombie Colombie an Cholóim Coloimbia Colombia קולומביה Kolumbija Kolumbia Colombia Kolombia Kólumbía Colombia コロンビア 콜롬비아 Colombia Колумбия Kolumbija Kolumbija കൊളംബിയ Колумби Colombia Colombia Colombia Colombia Kolumbia Colômbia Colômbia Columbia Колумбия Kolumbia Kolumbija Kolumbi Колумбија Colombia Kolombia โคลอมเบีย Kolombiya Колумбия Колумбія Kolumbiya Colombia 哥伦比亚 哥倫比亞
CP جزيرة كليبيرتون Востраў Кліпертан остров Клипертон Enez Clipperton Ostrvo Kliperton Illa Clipperton Clippertonův ostrov Clippertonøen Clipperton-Insel Νήσος Κλίπερτον Clipperton Island Clipperton Island Isla Clipperton Clippertoni saar Clipperton uhartea جزایر کلیپرتون Clippertoninsaari Île Clipperton Île Clipperton Oileán Clipperton Eilean Clipperton Illa Clipperton האי קליפרטון Otok Clipperton Clipperton-sziget Clipperton Island Pulau Clipperton Clipperton-eyja Isola di Clipperton クリッパートン島 클립퍼튼 섬 Clipperton Island Клиппертон аралы Klipertono sala Klipertona sala ക്ലിപ്പെർട്ടൻ ദ്വീപ് Клиппертон арал Clippertonøya Clipperton Clippertonøya Clipperton Island Wyspa Clippertona Ilha de Clipperton Ilha de Clipperton Insula Clipperton о-в Клиппертон Clipperton Otok Clipperton Ishulli Klipërton Острво Клипертон Clippertonön Kisiwa cha Clipperton เกาะคลิปเปอร์ตัน Clipperton Adası Clipperton Island Острів Кліппертон Klipperton oroli Đảo Clipperton 克利珀顿岛 克里派頓島
CR كوستاريكا Коста-Рыка Коста Рика Costa Rica Kostarika Costa Rica Kostarika Costa Rica Costa Rica Κόστα Ρίκα Costa Rica Kostariko Costa Rica Costa Rica Costa Rica کاستاریکا Costa Rica Costa Rica Costa Rica Cósta Ríce Costa Rìcea Costa Rica קוסטה ריקה Kostarika Costa Rica Costa Rica Kosta Rika Kostaríka Costa Rica コスタリカ 코스타리카 Costa Rica Коста-Рика Kosta Rika Kostarika കോസ്റ്ററിക്ക Коста-Рика Costa Rica Costa Rica Costa Rica Costa Rica Kostaryka Costa Rica Costa Rica Costa Rica Коста-Рика Kostarika Kostarika Kosta-Rikë Костарика Costa Rica Kostarika คอสตาริกา Kosta Rika Коста-Рика Коста-Ріка Kosta-Rika Costa Rica 哥斯达黎加 哥斯大黎加
CU كوبا Куба Куба Kuba Kuba Cuba Kuba Cuba Kuba Κούβα Cuba Kubo Cuba Kuuba Kuba کوبا Kuuba Cuba Cuba Cúba Cùba Cuba קובה Kuba Kuba Cuba Kuba Kúba Cuba キューバ 쿠바 Cuba Куба Kuba Kuba ക്യൂബ Куба Cuba Cuba Cuba Cuba Kuba Cuba Cuba Cuba Куба Kuba Kuba Kubë Куба Kuba Cuba คิวบา Küba Куба Куба Kuba Cuba 古巴 古巴
CV الرأس الأخضر Каба-Вердэ Кабо Верде Kab-Glas Kape Verde Cap Verd Kapverdy Kap Verde Cabo Verde Πράσινο Ακρωτήριο Cape Verde Kabo-Verdo Cabo Verde Roheneemesaared Cabo Verde کیپ‌ورد Kap Verde Cap-Vert Cap-Vert Rinn Verde An Ceap Uaine Cabo Verde כף ורדה Zelenortska Republika Zöld-foki Köztársaság Cape Verde Tanjung Verde Grænhöfðaeyjar Capo Verde カーボベルデ 카보베르데 Cape Verde Кабо-Верде Žaliasis Kyšulys Kaboverde കേപ്പ് വേർഡ് Кабо-Верде Kapp Verde Kaapverdië Kapp Verde Cape Verde Republika Zielonego Przylądka Cabo Verde Cabo Verde Capul Verde Кабо-Верде Kapverdy Zelenortski otoki Kepi i Gjelbër Зеленортска Острва Kap Verde Cape Verde เคปเวิร์ด Cape Verde Кабо-Верде Кабо-Верде Kabo-Verde Cape Verde 佛得角 維德角
CW كوراساو Кюрасаа Кюрасао Curaçao Kurasao Curaçao Curaçao Curaçao Curaçao Κουρασάο Curaçao Curaçao Curazao Curaçao Curaçao کوراسائو Curaçao Curaçao Curaçao Curaçao Curaçao Curaçao קוראסאו Curaçao Curaçao Curaçao Curaçao Curacao Curaçao キュラソー 퀴라소 Curaçao Кюрасао Kiurasao Kirasao കുറാകാവോ Кюрасао Curaçao Curaçao Curaçao Curaçao Curaçao Curaçao Curaçao Curaçao Кюрасао Curaçao Curaçao Kurasao Курасао Curaçao Curacao คูราเซา Curaçao Кюрасао Кюрасао Kyurasao Curaçao 库拉索 庫拉索
CX جزيرة كريسماس Востраў Каляд остров Рождество Enez Christmas Božićno ostrvo Illa Christmas Vánoční ostrov Juleøen Weihnachtsinsel Νήσος των Χριστουγέννων Christmas Island Christmas Island Isla de Navidad Jõulusaar Christmas uhartea جزیرهٔ کریسمس Joulusaari Île Christmas Île Christmas Oileán na Nollag Eilean na Nollaig Illa Christmas אי חג המולד Božićni otok Karácsony-sziget Insula de Natal Pulau Natal Jólaey Isola Christmas クリスマス島 크리스마스섬 Christmas Island Рождество аралы Kalėdų Sala Ziemsvētku sala ക്രിസ്മസ് ദ്വീപ് Зул сарын арал Christmasøya Christmaseiland Christmasøya Christmas Island Wyspa Bożego Narodzenia Ilha Christmas Ilha Christmas Insula Christmas о-в Рождества Vianočný ostrov Božični otok Ishulli i Krishtlindjes Божићно Острво Julön Kisiwa cha Krismasi เกาะคริสต์มาส Christmas Adası Раштуа утравы Острів Різдва Rojdestvo oroli Đảo Giáng Sinh 圣诞岛 聖誕島
CY قبرص Кіпр Кипър Kiprenez Kipar Xipre Kypr Cypern Zypern Κύπρος Cyprus Kipro Chipre Küpros Zipre قبرس Kypros Chypre Chypre an Chipir Cìopras Chipre קפריסין Cipar Ciprus Cypro Siprus Kýpur Cipro キプロス 키프로스 Cyprus Кипр Kipras Kipra സൈപ്രസ് Кипр Kypros Cyprus Kypros Cyprus Cypr Chipre Chipre Cipru Кипр Cyprus Ciper Qipro Кипар Cypern Cyprus ไซปรัส Kıbrıs Кипр Кіпр Kipr Síp 塞浦路斯 賽普勒斯
CZ التشيك Чэхія Чехия Tchekia Češka Txèquia Česko Tjekkiet Tschechien Τσεχία Czechia Ĉeĥujo Chequia Tšehhi Txekia چک Tšekki Tchéquie Tchéquie an tSeicia An t-Seic Chequia צ׳כיה Češka Csehország Chechia Ceko Tékkland Cechia チェコ 체코 Czechia Чехия Čekija Čehija ചെക്കിയ Чех Tsjekkia Tsjechië Tsjekkia Czechia Czechy Tchéquia Tchéquia Cehia Чехия Česko Češka Çeki Чешка Tjeckien Chechia เช็ก Çekya Чехия Республикасы Чехія Chexiya Séc 捷克 捷克
DE ألمانيا Германія Германия Alamagn Njemačka Alemanya Německo Tyskland Deutschland Γερμανία Germany Germanujo Alemania Saksamaa Alemania آلمان Saksa Allemagne Allemagne an Ghearmáin A Ghearmailt Alemaña גרמניה Njemačka Németország Germania Jerman Þýskaland Germania ドイツ 독일 Almayn Германия Vokietija Vācija ജർമ്മനി Герман Tyskland Duitsland Tyskland Герман Niemcy Alemanha Alemanha Germania Германия Nemecko Nemčija Gjermani Немачка Tyskland Ujerumani เยอรมนี Almanya Германия Німеччина Germaniya Đức 德国 德國
DG دييغو غارسيا Востраў Дыега-Гарсія Диего Гарсия Diego Garcia Dijego Garsija Diego Garcia Diego García Diego Garcia Diego Garcia Ντιέγκο Γκαρσία Diego Garcia Diego Garcia Diego García Diego Garcia Diego García دیه‌گو گارسیا Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego García דייגו גרסיה Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia ディエゴガルシア島 디에고 가르시아 Diego Garcia Диего Гарсия Diego Garsija Djego Garsijas atols ഡീഗോ ഗ്രാഷ്യ Диего Гарсиа Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Диего-Гарсия Diego Garcia Diego Garcia Diego-Garsia Дијего Гарсија Diego Garcia Diego Garcia ดิเอโกการ์เซีย Diego Garcia Diego Garcia Дієго-Гарсія Diyego-Garsiya Diego Garcia 迪戈加西亚岛 迪亞哥加西亞島
DJ جيبوتي Джыбуці Джибути Djibouti Džibuti Djibouti Džibutsko Djibouti Dschibuti Τζιμπουτί Djibouti Ĝibutio Yibuti Djibouti Djibuti جیبوتی Djibouti Djibouti Djibouti Djibouti Diobùtaidh Djibuti ג׳יבוטי Džibuti Dzsibuti Djibouti Jibuti Djíbútí Gibuti ジブチ 지부티 Djibouti Джибути Džibutis Džibutija ജിബൂത്തി Джибути Djibouti Djibouti Djibouti Djibouti Dżibuti Djibuti Djibuti Djibouti Джибути Džibutsko Džibuti Xhibuti Џибути Djibouti Jibuti จิบูตี Cibuti Җибүти Джибуті Jibuti Djibouti 吉布提 吉布地
DK الدانمرك Данія Дания Danmark Danska Dinamarca Dánsko Danmark Dänemark Δανία Denmark Danujo Dinamarca Taani Danimarka دانمارک Tanska Danemark Danemark an Danmhairg An Danmhairg Dinamarca דנמרק Danska Dánia Danmark Denmark Danmörk Danimarca デンマーク 덴마크 Denmark Дания Danija Dānija ഡെൻമാർക്ക് Дани Danmark Denemarken Danmark Denmark Dania Dinamarca Dinamarca Danemarca Дания Dánsko Danska Danimarkë Данска Danmark Denmark เดนมาร์ก Danimarka Дания Данія Daniya Đan Mạch 丹麦 丹麥
DM دومينيكا Дамініка Доминика Dominica Dominika Dominica Dominika Dominica Dominica Ντομίνικα Dominica Dominiko Dominica Dominica Dominika دومینیکا Dominica Dominique Dominique Doiminice Doiminicea Dominica דומיניקה Dominika Dominika Dominica Dominika Dóminíka Dominica ドミニカ国 도미니카 Dominica Доминика Dominika Dominika ഡൊമിനിക്ക Доминика Dominica Dominica Dominica Dominica Dominika Dominica Dominica Dominica Доминика Dominika Dominika Dominikë Доминика Dominica Dominika โดมินิกา Dominika Доминика Домініка Dominika Dominica 多米尼克 多米尼克
DO جمهورية الدومينيكان Дамініканская Рэспубліка Доминиканска република Republik Dominikan Dominikanska Republika República Dominicana Dominikánská republika Den Dominikanske Republik Dominikanische Republik Δομινικανή Δημοκρατία Dominican Republic Domingo República Dominicana Dominikaani Vabariik Dominikar Errepublika جمهوری دومینیکن Dominikaaninen tasavalta République dominicaine République dominicaine an Phoblacht Dhoiminiceach A Phoblachd Dhoiminiceach República Dominicana הרפובליקה הדומיניקנית Dominikanska Republika Dominikai Köztársaság Republica Dominican Republik Dominika Dóminíska lýðveldið Repubblica Dominicana ドミニカ共和国 도미니카 공화국 Dominican Republic Доминика Республикасы Dominikos Respublika Dominikāna ഡൊമിനിക്കൻ റിപ്പബ്ലിക്ക് Бүгд Найрамдах Доминикан Улс Den dominikanske republikk Dominicaanse Republiek Den dominikanske republikken Dominican Republic Dominikana República Dominicana República Dominicana Republica Dominicană Доминиканская Республика Dominikánska republika Dominikanska republika Republika Dominikane Доминиканска Република Dominikanska republiken Jamhuri ya Dominika สาธารณรัฐโดมินิกัน Dominik Cumhuriyeti Доминикана Республикасы Домініканська Республіка Dominikan Respublikasi Cộng hòa Dominica 多米尼加共和国 多明尼加共和國
DZ الجزائر Алжыр Алжир Aljeria Alžir Algèria Alžírsko Algeriet Algerien Αλγερία Algeria Alĝerio Argelia Alžeeria Aljeria الجزایر Algeria Algérie Algérie an Ailgéir Aildiria Alxeria אלג׳יריה Alžir Algéria Algeria Aljazair Alsír Algeria アルジェリア 알제리 Algeria Алжир Alžyras Alžīrija അൾജീരിയ Алжир Algerie Algerije Algerie Algeria Algieria Argélia Argélia Algeria Алжир Alžírsko Alžirija Algjeri Алжир Algeriet Aljeria แอลจีเรีย Cezayir Алжир Алжир Jazoir Algeria 阿尔及利亚 阿爾及利亞
EA سيوتا وميليلا Сеута і Мелілья Сеута и Мелия Ceuta ha Melilla Seuta i Melilja Ceuta i Melilla Ceuta a Melilla Ceuta og Melilla Ceuta und Melilla Θέουτα και Μελίγια Ceuta & Melilla Ceuta & Melilla Ceuta y Melilla Ceuta ja Melilla Ceuta eta Melilla سبته و ملیله Ceuta ja Melilla Ceuta et Melilla Ceuta et Melilla Ceuta agus Melilla Ceuta agus Melilla Ceuta e Melilla סאוטה ומלייה Ceuta i Melilla Ceuta és Melilla Ceuta & Melilla Ceuta dan Melilla Ceuta og Melilla Ceuta e Melilla セウタ・メリリャ 세우타 및 멜리야 Ceuta & Melilla Сеута жана Мелилла Seuta ir Melila Seūta un Melilja സെയൂത്ത ആൻഡ് മെലിയ Сеута ба Мелилья Ceuta og Melilla Ceuta en Melilla Ceuta og Melilla Ceuta & Melilla Ceuta i Melilla Ceuta e Melilla Ceuta e Melilla Ceuta și Melilla Сеута и Мелилья Ceuta a Melilla Ceuta in Melilla Theuta e Melila Сеута и Мелиља Ceuta och Melilla Ceuta na Melilla เซวตาและเมลียา Ceuta ve Melilla Ceuta & Melilla Сеута і Мелілья Seuta va Melilya Ceuta và Melilla 休达及梅利利亚 休達與梅利利亞
EC الإكوادور Эквадор Еквадор Ecuador Ekvador Equador Ekvádor Ecuador Ecuador Ισημερινός Ecuador Ekvadoro Ecuador Ecuador Ekuador اکوادور Ecuador Équateur Équateur Eacuadór Eacuador Ecuador אקוודור Ekvador Ecuador Ecuador Ekuador Ekvador Ecuador エクアドル 에콰도르 Ecuador Эквадор Ekvadoras Ekvadora ഇക്വഡോർ Эквадор Ecuador Ecuador Ecuador Ecuador Ekwador Equador Equador Ecuador Эквадор Ekvádor Ekvador Ekuador Еквадор Ecuador Ecuador เอกวาดอร์ Ekvador Эквадор Еквадор Ekvador Ecuador 厄瓜多尔 厄瓜多
EE إستونيا Эстонія Естония Estonia Estonija Estònia Estonsko Estland Estland Εσθονία Estonia Estonujo Estonia Eesti Estonia استونی Viro Estonie Estonie an Eastóin An Eastoin Estonia אסטוניה Estonija Észtország Estonia Estonia Eistland Estonia エストニア 에스토니아 Estonia Эстония Estija Igaunija എസ്റ്റോണിയ‍ Эстони Estland Estland Estland Estonia Estonia Estônia Estônia Estonia Эстония Estónsko Estonija Estoni Естонија Estland Estonia เอสโตเนีย Estonya Эстония Естонія Estoniya Estonia 爱沙尼亚 愛沙尼亞
EG مصر Егіпет Египет Egipt Egipat Egipte Egypt Egypten Ägypten Αίγυπτος Egypt Egipto Egipto Egiptus Egipto مصر Egypti Égypte Égypte an Éigipt An Èiphit Exipto מצרים Egipat Egyiptom Egypto Mesir Egyptaland Egitto エジプト 이집트 Egypt Египет Egiptas Ēģipte ഈജിപ്ത് Египет Egypt Egypte Egypt Egypt Egipt Egito Egito Egipt Египет Egypt Egipt Egjipt Египат Egypten Misri อียิปต์ Mısır Мисыр Єгипет Misr Ai Cập 埃及 埃及
EH الصحراء الغربية Заходняя Сахара Западна Сахара Sahara ar Cʼhornôg Zapadna Sahara Sàhara Occidental Západní Sahara Vestsahara Westsahara Δυτική Σαχάρα Western Sahara Okcidenta Saharo Sáhara Occidental Lääne-Sahara Mendebaldeko Sahara صحرای غربی Länsi-Sahara Sahara occidental Sahara occidental an Sahára Thiar Sathara an Iar O Sáhara Occidental סהרה המערבית Zapadna Sahara Nyugat-Szahara Sahara occidental Sahara Barat Vestur-Sahara Sahara occidentale 西サハラ 서사하라 Western Sahara Батыш Сахара Vakarų Sachara Rietumsahāra പശ്ചിമ സഹാറ Баруун Сахар Vest-Sahara Westelijke Sahara Vest-Sahara Western Sahara Sahara Zachodnia Saara Ocidental Saara Ocidental Sahara Occidentală Западная Сахара Západná Sahara Zahodna Sahara Saharaja Perëndimore Западна Сахара Västsahara Sahara Magharibi ซาฮาราตะวันตก Batı Sahra Western Sahara Західна Сахара Garbiy Sahroi Kabir Tây Sahara 西撒哈拉 西撒哈拉
ER إريتريا Эрытрэя Еритрея Eritrea Eritreja Eritrea Eritrea Eritrea Eritrea Ερυθραία Eritrea Eritreo Eritrea Eritrea Eritrea اریتره Eritrea Érythrée Érythrée an Eiritré Eartra Eritrea אריתריאה Eritreja Eritrea Eritrea Eritrea Erítrea Eritrea エリトリア 에리트리아 Eritrea Эритрея Eritrėja Eritreja എറിത്രിയ Эритрей Eritrea Eritrea Eritrea Eritrea Erytrea Eritreia Eritreia Eritreea Эритрея Eritrea Eritreja Eritre Еритреја Eritrea Eritrea เอริเทรีย Eritre Эритрея Еритрея Eritreya Eritrea 厄立特里亚 厄利垂亞
ES إسبانيا Іспанія Испания Spagn Španija Espanya Španělsko Spanien Spanien Ισπανία Spain Hispanujo España Hispaania Espainia اسپانیا Espanja Espagne Espagne an Spáinn An Spàinnt España ספרד Španjolska Spanyolország Espania Spanyol Spánn Spagna スペイン 스페인 Spain Испания Ispanija Spānija സ്‌പെയിൻ Испани Spania Spanje Spania Spain Hiszpania Espanha Espanha Spania Испания Španielsko Španija Spanjë Шпанија Spanien Uhispania สเปน İspanya Испания Іспанія Ispaniya Tây Ban Nha 西班牙 西班牙
ET إثيوبيا Эфіопія Етиопия Etiopia Etiopija Etiòpia Etiopie Etiopien Äthiopien Αιθιοπία Ethiopia Etiopujo Etiopía Etioopia Etiopia اتیوپی Etiopia Éthiopie Éthiopie an Aetóip An Itiop Etiopía אתיופיה Etiopija Etiópia Ethiopia Etiopia Eþíópía Etiopia エチオピア 에티오피아 Ethiopia Эфиопия Etiopija Etiopija എത്യോപ്യ Этиоп Etiopia Ethiopië Etiopia Ethiopia Etiopia Etiópia Etiópia Etiopia Эфиопия Etiópia Etiopija Etiopi Етиопија Etiopien Ethiopia เอธิโอเปีย Etiyopya Эфиопия Ефіопія Efiopiya Ethiopia 埃塞俄比亚 衣索比亞
EU الاتحاد الأوروبي Еўрапейскі саюз Европейски съюз Unaniezh Europa Evropska unija Unió Europea Evropská unie Den Europæiske Union Europäische Union Ευρωπαϊκή Ένωση European Union European Union Unión Europea Euroopa Liit Europar Batasuna اتحادیهٔ اروپا Euroopan unioni Union européenne Union européenne an tAontas Eorpach An t-Aonadh Eòrpach Unión Europea האיחוד האירופי Europska unija Európai Unió Union Europee Uni Eropa Evrópusambandið Unione Europea 欧州連合 유럽 연합 Unyans Europek Европа Биримдиги Europos Sąjunga Eiropas Savienība യൂറോപ്യൻ യൂണിയൻ Европын Холбоо Den europeiske union Europese Unie European Union European Union Unia Europejska União Europeia União Europeia Uniunea Europeană Европейский союз Európska únia Evropska unija Bashkimi Evropian Европска унија Europeiska unionen Umoja wa Ulaya สหภาพยุโรป Avrupa Birliği European Union Європейський Союз Yevropa Ittifoqi Liên Minh Châu Âu 欧盟 歐盟
FI فنلندا Фінляндыя Финландия Finland Finska Finlàndia Finsko Finland Finnland Φινλανδία Finland Finnlando Finlandia Soome Finlandia فنلاند Suomi Finlande Finlande an Fhionlainn An Fhionnlann Finlandia פינלנד Finska Finnország Finlandia Finlandia Finnland Finlandia フィンランド 핀란드 Finland Финляндия Suomija Somija ഫിൻലാൻഡ് Финлянд Finland Finland Finland Finland Finlandia Finlândia Finlândia Finlanda Финляндия Fínsko Finska Finlandë Финска Finland Ufini ฟินแลนด์ Finlandiya Финляндия Фінляндія Finlandiya Phần Lan 芬兰 芬蘭
FJ فيجي Фіджы Фиджи Fidji Fidži Fiji Fidži Fiji Fidschi Φίτζι Fiji Fiĝoj Fiyi Fidži Fiji فیجی Fidži Fidji Fidji Fidsí Fìdi Fixi פיג׳י Fidži Fidzsi Fiji Fiji Fídjíeyjar Figi フィジー 피지 Fiji Фиджи Fidžis Fidži ഫിജി Фижи Fiji Fiji Fiji Fiji Fidżi Fiji Fiji Fiji Фиджи Fidži Fidži Fixhi Фиџи Fiji Fiji ฟิจิ Fiji Фиджи Фіджі Fiji Fiji 斐济 斐濟
FK جزر فوكلاند Фалклендскія астравы Фолкландски острови Inizi Falkland Folklandska ostrva Illes Malvines Falklandské ostrovy Falklandsøerne Falklandinseln Νήσοι Φόκλαντ Falkland Islands Falkland Islands Islas Malvinas Falklandi saared Falklandak جزایر فالکلند Falklandinsaaret Îles Malouines Îles Malouines Oileáin Fháclainne Na h-Eileanan Fàclannach Illas Malvinas איי פוקלנד Falklandski otoci Falkland-szigetek Falkland Islands Kepulauan Falkland Falklandseyjar Isole Falkland フォークランド諸島 포클랜드 제도 Falkland Islands Фолкленд аралдары Folklando Salos Folklenda salas ഫാക്ക്‌ലാന്റ് ദ്വീപുകൾ Фолклендийн арлууд Falklandsøyene Falklandeilanden Falklandsøyane Falkland Islands Falklandy Ilhas Malvinas Ilhas Malvinas Insulele Falkland Фолклендские о-ва Falklandy Falklandski otoki Ishujt Falkland Фокландска Острва Falklandsöarna Visiwa vya Falkland หมู่เกาะฟอล์กแลนด์ Falkland Adaları Фолкленд утраулары Фолклендські Острови Folklend orollari Quần đảo Falkland 福克兰群岛 福克蘭群島
FM ميكرونيزيا Мікранезія Микронезия Mikronezia Mikronezija Micronèsia Mikronésie Mikronesien Mikronesien Μικρονησία Micronesia Mikronezio Micronesia Mikroneesia Mikronesia میکرونزی Mikronesian liittovaltio États fédérés de Micronésie États fédérés de Micronésie an Mhicrinéis Na Meanbh-eileanan Micronesia מיקרונזיה Mikronezija Mikronézia Micronesia Mikronesia Míkrónesía Micronesia ミクロネシア連邦 미크로네시아 Micronesia Микронезия Mikronezija Mikronēzija മൈക്രോനേഷ്യ Микронези Mikronesiaføderasjonen Micronesia Mikronesiaføderasjonen Micronesia Mikronezja Micronésia Micronésia Micronezia Федеративные Штаты Микронезии Mikronézia Mikronezija Mikronezi Микронезија Mikronesien Micronesia ไมโครนีเซีย Mikronezya Микронезия Мікронезія Mikroneziya Micronesia 密克罗尼西亚 密克羅尼西亞
FO جزر فارو Фарэрскія астравы Фарьорски острови Inizi Faero Farska ostrva Illes Fèroe Faerské ostrovy Færøerne Färöer Νήσοι Φερόες Faroe Islands Ferooj Islas Feroe Fääri saared Faroe uharteak جزایر فارو Färsaaret Îles Féroé Îles Féroé Oileáin Fharó Na h-Eileanan Fàro Illas Feroe איי פארו Farski otoci Feröer szigetek Insulas Feroe Kepulauan Faroe Færeyjar Isole Fær Øer フェロー諸島 페로 제도 Faroe Islands Фарер аралдары Farerų Salos Fēru salas ഫറോ ദ്വീപുകൾ Фарерын арлууд Færøyene Faeröer Færøyane Faroe Islands Wyspy Owcze Ilhas Faroe Ilhas Faroe Insulele Feroe Фарерские о-ва Faerské ostrovy Ferski otoki Ishujt Faroe Фарска Острва Färöarna Visiwa vya Faroe หมู่เกาะแฟโร Faroe Adaları Фарер утраулары Фарерські Острови Farer orollari Quần đảo Faroe 法罗群岛 法羅群島
FR فرنسا Францыя Франция Frañs Francuska França Francie Frankrig Frankreich Γαλλία France Francujo Francia Prantsusmaa Frantzia فرانسه Ranska France France an Fhrainc An Fhraing Francia צרפת Francuska Franciaország Francia Prancis Frakkland Francia フランス 프랑스 Pow Frenk Франция Prancūzija Francija ഫ്രാൻസ് Франц Frankrike Frankrijk Frankrike Франц Francja França França Franța Франция Francúzsko Francija Francë Француска Frankrike Ufaransa ฝรั่งเศส Fransa Франция Франція Fransiya Pháp 法国 法國
GA الغابون Габон Габон Gabon Gabon Gabon Gabon Gabon Gabun Γκαμπόν Gabon Gabono Gabón Gabon Gabon گابن Gabon Gabon Gabon an Ghabúin Gabon Gabón גבון Gabon Gabon Gabon Gabon Gabon Gabon ガボン 가봉 Gabon Габон Gabonas Gabona ഗാബൺ Габон Gabon Gabon Gabon Gabon Gabon Gabão Gabão Gabon Габон Gabon Gabon Gabon Габон Gabon Gabon กาบอง Gabon Габон Габон Gabon Gabon 加蓬 加彭
GB المملكة المتحدة Вялікабрытанія Обединеното кралство Rouantelezh-Unanet Ujedinjeno Kraljevstvo Regne Unit Spojené království Storbritannien Vereinigtes Königreich Ηνωμένο Βασίλειο United Kingdom Unuiĝinta Reĝlando Reino Unido Suurbritannia Erresuma Batua بریتانیا Iso-Britannia Royaume-Uni Royaume-Uni an Ríocht Aontaithe An Rìoghachd Aonaichte O Reino Unido בריטניה Ujedinjeno Kraljevstvo Egyesült Királyság Regno Unite Inggris Raya Bretland Regno Unito イギリス 영국 Rywvaneth Unys Улуу Британия Jungtinė Karalystė Apvienotā Karaliste യുണൈറ്റഡ് കിംഗ്ഡം Их Британи Storbritannia Verenigd Koninkrijk Storbritannia Стыр Британи Wielka Brytania Reino Unido Reino Unido Regatul Unit Великобритания Spojené kráľovstvo Združeno kraljestvo Mbretëria e Bashkuar Уједињено Краљевство Storbritannien Ufalme wa Muungano สหราชอาณาจักร Birleşik Krallık Берләшкән Корольлек Велика Британія Buyuk Britaniya Vương quốc Anh 英国 英國
GD غرينادا Грэнада Гренада Grenada Grenada Grenada Grenada Grenada Grenada Γρενάδα Grenada Grenado Granada Grenada Grenada گرنادا Grenada Grenade Grenade Greanáda Greanàda Granada גרנדה Grenada Grenada Grenada Grenada Grenada Grenada グレナダ 그레나다 Grenada Гренада Grenada Grenāda ഗ്രനേഡ Гренада Grenada Grenada Grenada Grenada Grenada Granada Granada Grenada Гренада Grenada Grenada Granadë Гренада Grenada Grenada เกรเนดา Grenada Гренада Ґренада Grenada Grenada 格林纳达 格瑞那達
GE جورجيا Грузія Грузия Jorjia Gruzija Geòrgia Gruzie Georgien Georgien Γεωργία Georgia Kartvelujo Georgia Gruusia Georgia گرجستان Georgia Géorgie Géorgie an tSeoirsia A Chairtbheil Xeorxia גאורגיה Gruzija Grúzia Georgia Georgia Georgía Georgia ジョージア 조지아 Georgia Грузия Gruzija Gruzija ജോർജ്ജിയ Гүрж Georgia Georgië Georgia Гуырдзыстон Gruzja Geórgia Geórgia Georgia Грузия Gruzínsko Gruzija Gjeorgji Грузија Georgien Jojia จอร์เจีย Gürcistan Грузия Грузія Gruziya Georgia 格鲁吉亚 喬治亞
GF غويانا الفرنسية Французская Гвіяна Френска Гвиана Gwiana cʼhall Francuska Gvajana Guaiana Francesa Francouzská Guyana Fransk Guyana Französisch-Guayana Γαλλική Γουιάνα French Guiana Franca Gviano Guayana Francesa Prantsuse Guajaana Guyana Frantsesa گویان فرانسه Ranskan Guayana Guyane française Guyane française Guáin na Fraince Guidheàna na Frainge Güiana Francesa גיאנה הצרפתית Francuska Gijana Francia Guyana Guyana francese Guyana Prancis Franska Gvæjana Guyana francese 仏領ギアナ 프랑스령 기아나 French Guiana Француздук Гвиана Prancūzijos Gviana Francijas Gviāna ഫ്രഞ്ച് ഗയാന Францын Гвиана Fransk Guyana Frans-Guyana Fransk Guyana French Guiana Gujana Francuska Guiana Francesa Guiana Francesa Guyana Franceză Французская Гвиана Francúzska Guyana Francoska Gvajana Guajana Franceze Француска Гвајана Franska Guyana Guiana ya Ufaransa เฟรนช์เกียนา Fransız Guyanası Француз Гвианасы Французька Ґвіана Fransuz Gvianasi Guiana thuộc Pháp 法属圭亚那 法屬圭亞那
GG غيرنزي Гернсі Гърнзи Gwernenez Gernzi Guernsey Guernsey Guernsey Guernsey Γκέρνζι Guernsey Guernsey Guernsey Guernsey Guernesey گرنزی Guernsey Guernesey Guernesey Geansaí Geàrnsaidh Guernsey גרנזי Guernsey Guernsey Guernsey Guernsey Guernsey Guernsey ガーンジー 건지 Guernsey Гернси Gernsis Gērnsija ഗേൺസി Гернси Guernsey Guernsey Guernsey Guernsey Guernsey Guernsey Guernsey Guernsey Гернси Guernsey Guernsey Gernsej Гернзи Guernsey Guernsey เกิร์นซีย์ Guernsey Гернси Ґернсі Gernsi Guernsey 根西岛 根息
GH غانا Гана Гана Ghana Gana Ghana Ghana Ghana Ghana Γκάνα Ghana Ganao Ghana Ghana Ghana غنا Ghana Ghana Ghana Gána Gàna Ghana גאנה Gana Ghána Ghana Ghana Gana Ghana ガーナ 가나 Ghana Гана Gana Gana ഘാന Гана Ghana Ghana Ghana Ghana Ghana Gana Gana Ghana Гана Ghana Gana Ganë Гана Ghana Ghana กานา Gana Гана Гана Gana Ghana 加纳 迦納
GI جبل طارق Гібралтар Гибралтар Jibraltar Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Γιβραλτάρ Gibraltar Ĝibraltaro Gibraltar Gibraltar Gibraltar جبل‌الطارق Gibraltar Gibraltar Gibraltar Giobráltar Diobraltar Xibraltar גיברלטר Gibraltar Gibraltár Gibraltar Gibraltar Gíbraltar Gibilterra ジブラルタル 지브롤터 Gibraltar Гибралтар Gibraltaras Gibraltārs ജിബ്രാൾട്ടർ Гибралтар Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Гибралтар Gibraltár Gibraltar Gjibraltar Гибралтар Gibraltar Gibraltar ยิบรอลตาร์ Cebelitarık Гибралтар Ґібралтар Gibraltar Gibraltar 直布罗陀 直布羅陀
GL غرينلاند Грэнландыя Гренландия Greunland Grenland Groenlàndia Grónsko Grønland Grönland Γροιλανδία Greenland Gronlando Groenlandia Gröönimaa Groenlandia گرینلند Grönlanti Groenland Groenland an Ghraonlainn A Ghraonlann Groenlandia גרינלנד Grenland Grönland Groenlandia Grinlandia Grænland Groenlandia グリーンランド 그린란드 Greenland Гренландия Grenlandija Grenlande ഗ്രീൻലാൻറ് Гренланд Grønland Groenland Grønland Greenland Grenlandia Groenlândia Groenlândia Groenlanda Гренландия Grónsko Grenlandija Grënlandë Гренланд Grönland Greenland กรีนแลนด์ Grönland Гренландия Ґренландія Grenlandiya Greenland 格陵兰 格陵蘭
GM غامبيا Гамбія Гамбия Gambia Gambija Gàmbia Gambie Gambia Gambia Γκάμπια Gambia Gambio Gambia Gambia Gambia گامبیا Gambia Gambie Gambie an Ghaimbia A Ghaimbia Gambia גמביה Gambija Gambia Gambia Gambia Gambía Gambia ガンビア 감비아 Gambia Гамбия Gambija Gambija ഗാംബിയ Гамби Gambia Gambia Gambia Gambia Gambia Gâmbia Gâmbia Gambia Гамбия Gambia Gambija Gambi Гамбија Gambia Gambia แกมเบีย Gambiya Гамбия Гамбія Gambiya Gambia 冈比亚 甘比亞
GN غينيا Гвінея Гвинея Ginea Gvineja Guinea Guinea Guinea Guinea Γουινέα Guinea Gvineo Guinea Guinea Ginea گینه Guinea Guinée Guinée an Ghuine Gini Guinea גינאה Gvineja Guinea Guinea Guinea Gínea Guinea ギニア 기니 Guinea Гвинея Gvinėja Gvineja ഗിനിയ Гвиней Guinea Guinee Guinea Guinea Gwinea Guiné Guiné Guineea Гвинея Guinea Gvineja Guine Гвинеја Guinea Gine กินี Gine Гвинея Гвінея Gvineya Guinea 几内亚 幾內亞
GP غوادلوب Гвадэлупа Гваделупа Gwadeloup Gvadalupe Guadeloupe Guadeloupe Guadeloupe Guadeloupe Γουαδελούπη Guadeloupe Gvadelupo Guadalupe Guadeloupe Guadalupe گوادلوپ Guadeloupe Guadeloupe Guadeloupe Guadalúip Guadalup Guadalupe גוואדלופ Guadalupe Guadeloupe Guadeloupe Guadeloupe Gvadelúpeyjar Guadalupa グアドループ 과들루프 Guadeloupe Гваделупа Gvadelupa Gvadelupa ഗ്വാഡലൂപ്പ് Гваделуп Guadeloupe Guadeloupe Guadeloupe Guadeloupe Gwadelupa Guadalupe Guadalupe Guadelupa Гваделупа Guadeloupe Guadeloupe Guadelupë Гваделуп Guadeloupe Guadeloupe กวาเดอลูป Guadeloupe Гваделупа Ґваделупа Gvadelupe Guadeloupe 瓜德罗普 瓜地洛普
GQ غينيا الاستوائية Экватарыяльная Гвінея Екваториална Гвинея Ginea ar Cʼheheder Ekvatorijalna Gvineja Guinea Equatorial Rovníková Guinea Ækvatorialguinea Äquatorialguinea Ισημερινή Γουινέα Equatorial Guinea Ekvatora Gvineo Guinea Ecuatorial Ekvatoriaal-Guinea Ekuatore Ginea گینهٔ استوایی Päiväntasaajan Guinea Guinée équatoriale Guinée équatoriale an Ghuine Mheánchiorclach Gini Mheadhan-Chriosach Guinea Ecuatorial גינאה המשוונית Ekvatorska Gvineja Egyenlítői-Guinea Guinea equatorial Guinea Ekuatorial Miðbaugs-Gínea Guinea Equatoriale 赤道ギニア 적도 기니 Equatorial Guinea Экватордук Гвинея Pusiaujo Gvinėja Ekvatoriālā Gvineja ഇക്വറ്റോറിയൽ ഗിനിയ Экваторын Гвиней Ekvatorial-Guinea Equatoriaal-Guinea Ekvatorial-Guinea Equatorial Guinea Gwinea Równikowa Guiné Equatorial Guiné Equatorial Guineea Ecuatorială Экваториальная Гвинея Rovníková Guinea Ekvatorialna Gvineja Guineja Ekuatoriale Екваторијална Гвинеја Ekvatorialguinea Guinea ya Ikweta อิเควทอเรียลกินี Ekvator Ginesi Экваториаль Гвинея Екваторіальна Гвінея Ekvatorial Gvineya Guinea Xích Đạo 赤道几内亚 赤道幾內亞
GR اليونان Грэцыя Гърция Gres Grčka Grècia Řecko Grækenland Griechenland Ελλάδα Greece Grekujo Grecia Kreeka Grezia یونان Kreikka Grèce Grèce an Ghréig A Ghreug Grecia יוון Grčka Görögország Grecia Yunani Grikkland Grecia ギリシャ 그리스 Greece Греция Graikija Grieķija ഗ്രീസ് Грек Hellas Griekenland Hellas Greece Grecja Grécia Grécia Grecia Греция Grécko Grčija Greqi Грчка Grekland Ugiriki กรีซ Yunanistan Греция Греція Gretsiya Hy Lạp 希腊 希臘
GS جورجيا الجنوبية وجزر ساندويتش الجنوبية Паўднёвая Георгія і Паўднёвыя Сандвічавы астравы Южна Джорджия и Южни Сандвичеви острови Inizi Georgia ar Su hag Inizi Sandwich ar Su Južna Džordžija i Južna Sendvič ostrva Illes Geòrgia del Sud i Sandwich del Sud Jižní Georgie a Jižní Sandwichovy ostrovy South Georgia og De Sydlige Sandwichøer Südgeorgien und die Südlichen Sandwichinseln Νήσοι Νότια Γεωργία και Νότιες Σάντουιτς South Georgia & South Sandwich Islands Sud-Georgio kaj Sud-Sandviĉinsuloj Islas Georgia del Sur y Sandwich del Sur Lõuna-Georgia ja Lõuna-Sandwichi saared Hegoaldeko Georgia eta Hegoaldeko Sandwich uharteak جورجیای جنوبی و جزایر ساندویچ جنوبی Etelä-Georgia ja Eteläiset Sandwichsaaret Géorgie du Sud et îles Sandwich du Sud Géorgie du Sud et îles Sandwich du Sud an tSeoirsia Theas agus Oileáin Sandwich Theas Seòirsea a Deas is na h-Eileanan Sandwich a Deas Illas Xeorxia do Sur e Sandwich do Sur ג׳ורג׳יה הדרומית ואיי סנדוויץ׳ הדרומיים Južna Georgija i Južni Sendvički Otoci Déli-Georgia és Déli-Sandwich-szigetek South Georgia & South Sandwich Islands Georgia Selatan & Kep. Sandwich Selatan Suður-Georgía og Suður-Sandvíkureyjar Georgia del Sud e Sandwich australi サウスジョージア・サウスサンドウィッチ諸島 사우스조지아 사우스샌드위치 제도 South Georgia & South Sandwich Islands Түштүк Жоржия жана Түштүк Сэндвич аралдары Pietų Džordžija ir Pietų Sandvičo salos Dienviddžordžija un Dienvidsendviču salas ദക്ഷിണ ജോർജ്ജിയയും ദക്ഷിണ സാൻഡ്‌വിച്ച് ദ്വീപുകളും Өмнөд Жоржиа ба Өмнөд Сэндвичийн арлууд Sør-Georgia og Sør-Sandwichøyene Zuid-Georgia en Zuidelijke Sandwicheilanden Sør-Georgia og Sør-Sandwichøyene South Georgia & South Sandwich Islands Georgia Południowa i Sandwich Południowy Ilhas Geórgia do Sul e Sandwich do Sul Ilhas Geórgia do Sul e Sandwich do Sul Georgia de Sud și Insulele Sandwich de Sud Южная Георгия и Южные Сандвичевы о-ва Južná Georgia a Južné Sandwichove ostrovy Južna Georgia in Južni Sandwichevi otoki Xhorxha Jugore dhe Ishujt Senduiçë të Jugut Јужна Џорџија и Јужна Сендвичка Острва Sydgeorgien och Sydsandwichöarna Visiwa vya Georgia Kusini na Sandwich Kusini เกาะเซาท์จอร์เจียและหมู่เกาะเซาท์แซนด์วิช Güney Georgia ve Güney Sandwich Adaları Көньяк Георгия һәм Көньяк Сандвич утраулары Південна Джорджія та Південні Сандвічеві Острови Janubiy Georgiya va Janubiy Sendvich orollari Nam Georgia & Quần đảo Nam Sandwich 南乔治亚和南桑威奇群岛 南喬治亞與南三明治群島
GT غواتيمالا Гватэмала Гватемала Guatemala Gvatemala Guatemala Guatemala Guatemala Guatemala Γουατεμάλα Guatemala Gvatemalo Guatemala Guatemala Guatemala گواتمالا Guatemala Guatemala Guatemala Guatamala Guatamala Guatemala גואטמלה Gvatemala Guatemala Guatemala Guatemala Gvatemala Guatemala グアテマラ 과테말라 Guatemala Гватемала Gvatemala Gvatemala ഗ്വാട്ടിമാല Гватемал Guatemala Guatemala Guatemala Guatemala Gwatemala Guatemala Guatemala Guatemala Гватемала Guatemala Gvatemala Guatemalë Гватемала Guatemala Guatemala กัวเตมาลา Guatemala Гватемала Ґватемала Gvatemala Guatemala 危地马拉 瓜地馬拉
GU غوام Гуам Гуам Guam Guam Guam Guam Guam Guam Γκουάμ Guam Gvamo Guam Guam Guam گوام Guam Guam Guam Guam Guam Guam גואם Guam Guam Guam Guam Gvam Guam グアム 괌 Guam Гуам Guamas Guama ഗ്വാം Гуам Guam Guam Guam Guam Guam Guam Guam Guam Гуам Guam Guam Guam Гуам Guam Guam กวม Guam Гуам Ґуам Guam Guam 关岛 關島
GW غينيا بيساو Гвінея-Бісау Гвинея-Бисау Ginea-Bissau Gvineja-Bisao Guinea Bissau Guinea-Bissau Guinea-Bissau Guinea-Bissau Γουινέα Μπισάου Guinea-Bissau Gvineo-Bisaŭo Guinea-Bisáu Guinea-Bissau Ginea Bissau گینهٔ بیسائو Guinea-Bissau Guinée-Bissau Guinée-Bissau Guine Bissau Gini-Bioso A Guinea Bissau גינאה-ביסאו Gvineja Bisau Bissau-Guinea Guinea-Bissau Guinea-Bissau Gínea-Bissá Guinea-Bissau ギニアビサウ 기니비사우 Guinea-Bissau Гвинея-Бисау Bisau Gvinėja Gvineja-Bisava ഗിനിയ-ബിസൗ Гвиней-Бисау Guinea-Bissau Guinee-Bissau Guinea-Bissau Guinea-Bissau Gwinea Bissau Guiné-Bissau Guiné-Bissau Guineea-Bissau Гвинея-Бисау Guinea-Bissau Gvineja Bissau Guine-Bisau Гвинеја-Бисао Guinea-Bissau Ginebisau กินี-บิสเซา Gine-Bissau Гвинея-Бисау Гвінея-Бісау Gvineya-Bisau Guinea-Bissau 几内亚比绍 幾內亞比索
GY غيانا Гаяна Гаяна Guyana Gvajana Guyana Guyana Guyana Guyana Γουιάνα Guyana Gujano Guyana Guyana Guyana گویان Guyana Guyana Guyana an Ghuáin Guidheàna Güiana גיאנה Gvajana Guyana Guyana Guyana Gvæjana Guyana ガイアナ 가이아나 Guyana Гайана Gajana Gajāna ഗയാന Гайана Guyana Guyana Guyana Guyana Gujana Guiana Guiana Guyana Гайана Guyana Gvajana Guajanë Гвајана Guyana Guyana กายอานา Guyana Гайана Ґайана Gayana Guyana 圭亚那 蓋亞那
HK هونغ كونغ Ганконг Хонконг Hong Kong Hong Kong Hong Kong Hongkong Hongkong Hongkong Χονγκ Κονγκ Hong Kong Hong Kong Hong Kong Hongkong Hong Kong هنگ‌کنگ Hongkong Hong Kong Hong Kong Hong Cong Hong Kong Hong Kong הונג קונג Hong Kong Hongkong Hong Kong Hong Kong Hong Kong Hong Kong 香港 홍콩 Hong Kong Гонконг Honkongas Honkonga ഹോങ്കോങ് Хонг Конг Hongkong Hongkong Hongkong Hong Kong Hongkong Hong Kong Hong Kong Hong Kong Гонконг Hongkong Hongkong Hong-Kong Хонгконг Hong Kong Hong Kong ฮ่องกง Hong Kong Гонконг Гонконг Gonkong Hồng Kông 香港 香港
HM جزيرة هيرد وجزر ماكدونالد Астравы Херд і Макдональд острови Хърд и Макдоналд Inizi Heard ha McDonald Herd i arhipelag MekDonald Illa Heard i Illes McDonald Heardův ostrov a McDonaldovy ostrovy Heard Island og McDonald Islands Heard und McDonaldinseln Νήσοι Χερντ και Μακντόναλντ Heard & McDonald Islands Herda kaj Makdonaldaj Insuloj Islas Heard y McDonald Heardi ja McDonaldi saared Heard eta McDonald uharteak هرد و جزایر مک‌دونالد Heard ja McDonaldinsaaret Îles Heard et McDonald Îles Heard et McDonald Oileán Heard agus Oileáin McDonald Eilean Heard is MhicDhòmhnaill Illa Heard e Illas McDonald איי הרד ומקדונלד Otoci Heard i McDonald Heard-sziget és McDonald-szigetek Heard & McDonald Islands Pulau Heard dan Kepulauan McDonald Heard og McDonaldseyjar Isole Heard e McDonald ハード島・マクドナルド諸島 허드 맥도널드 제도 Heard & McDonald Islands Херд жана Макдональд аралдары Herdo ir Makdonaldo Salos Hērda sala un Makdonalda salas ഹിയേർഡും മക്‌ഡൊണാൾഡ് ദ്വീപുകളും Херд ба Макдональдийн арлууд Heard- og McDonaldøyene Heard en McDonaldeilanden Heardøya og McDonaldøyane Heard & McDonald Islands Wyspy Heard i McDonalda Ilhas Heard e McDonald Ilhas Heard e McDonald Insula Heard și Insulele McDonald о-ва Херд и Макдональд Heardov ostrov a Macdonaldove ostrovy Heardov otok in McDonaldovi otoki Ishujt Hërd e Mekdonald Острво Херд и Мекдоналдова острва Heardön och McDonaldöarna Kisiwa cha Heard na Visiwa vya McDonald เกาะเฮิร์ดและหมู่เกาะแมกดอนัลด์ Heard Adası ve McDonald Adaları Херд утравы һәм Макдональд утраулары Острови Герд і Макдоналд Xerd va Makdonald orollari Quần đảo Heard và McDonald 赫德岛和麦克唐纳群岛 赫德島及麥唐納群島
HN هندوراس Гандурас Хондурас Honduras Honduras Hondures Honduras Honduras Honduras Ονδούρα Honduras Honduro Honduras Honduras Honduras هندوراس Honduras Honduras Honduras Hondúras Hondùras Honduras הונדורס Honduras Honduras Honduras Honduras Hondúras Honduras ホンジュラス 온두라스 Honduras Гондурас Hondūras Hondurasa ഹോണ്ടുറാസ് Гондурас Honduras Honduras Honduras Honduras Honduras Honduras Honduras Honduras Гондурас Honduras Honduras Honduras Хондурас Honduras Honduras ฮอนดูรัส Honduras Гондурас Гондурас Gonduras Honduras 洪都拉斯 宏都拉斯
HR كرواتيا Харватыя Хърватия Kroatia Hrvatska Croàcia Chorvatsko Kroatien Kroatien Κροατία Croatia Kroatujo Croacia Horvaatia Kroazia کرواسی Kroatia Croatie Croatie an Chróit A Chròthais Croacia קרואטיה Hrvatska Horvátország Croatia Kroasia Króatía Croazia クロアチア 크로아티아 Croatia Хорватия Kroatija Horvātija ക്രൊയേഷ്യ Хорват Kroatia Kroatië Kroatia Croatia Chorwacja Croácia Croácia Croația Хорватия Chorvátsko Hrvaška Kroaci Хрватска Kroatien Croatia โครเอเชีย Hırvatistan Хорватия Хорватія Xorvatiya Croatia 克罗地亚 克羅埃西亞
HT هايتي Гаіці Хаити Haiti Haiti Haití Haiti Haiti Haiti Αϊτή Haiti Haitio Haití Haiti Haiti هائیتی Haiti Haïti Haïti Háítí Haidhti Haití האיטי Haiti Haiti Haiti Haiti Haítí Haiti ハイチ 아이티 Haiti Гаити Haitis Haiti ഹെയ്തി Гаити Haiti Haïti Haiti Haiti Haiti Haiti Haiti Haiti Гаити Haiti Haiti Haiti Хаити Haiti Haiti เฮติ Haiti Гаити Гаїті Gaiti Haiti 海地 海地
HU هنغاريا Венгрыя Унгария Hungaria Mađarska Hongria Maďarsko Ungarn Ungarn Ουγγαρία Hungary Hungarujo Hungría Ungari Hungaria مجارستان Unkari Hongrie Hongrie an Ungáir An Ungair Hungría הונגריה Mađarska Magyarország Hungaria Hungaria Ungverjaland Ungheria ハンガリー 헝가리 Hungary Венгрия Vengrija Ungārija ഹംഗറി Унгар Ungarn Hongarije Ungarn Hungary Węgry Hungria Hungria Ungaria Венгрия Maďarsko Madžarska Hungari Мађарска Ungern Hungaria ฮังการี Macaristan Венгрия Угорщина Vengriya Hungary 匈牙利 匈牙利
IC جزر الكناري Канарскія астравы Канарски острови Inizi Kanariez Kanarska ostrva Illes Canàries Kanárské ostrovy Kanariske øer Kanarische Inseln Κανάριοι Νήσοι Canary Islands Canary Islands Canarias Kanaari saared Kanariak جزایر قناری Kanariansaaret Îles Canaries Îles Canaries na hOileáin Chanáracha Na h-Eileanan Canàrach Illas Canarias האיים הקנריים Kanarski otoci Kanári-szigetek Canary Islands Kepulauan Canaria Kanaríeyjar Isole Canarie カナリア諸島 카나리아 제도 Canary Islands Канар аралдары Kanarų salos Kanāriju salas കാനറി ദ്വീപുകൾ Канарын арлууд Kanariøyene Canarische Eilanden Kanariøyane Canary Islands Wyspy Kanaryjskie Ilhas Canárias Ilhas Canárias Insulele Canare Канарские о-ва Kanárske ostrovy Kanarski otoki Ishujt Kanarie Канарска Острва Kanarieöarna Visiwa vya Kanari หมู่เกาะคานารี Kanarya Adaları Canary Islands Канарські Острови Kanar orollari Quần đảo Canary 加纳利群岛 加那利群島
ID إندونيسيا Інданезія Индонезия Indonezia Indonezija Indonèsia Indonésie Indonesien Indonesien Ινδονησία Indonesia Indonezio Indonesia Indoneesia Indonesia اندونزی Indonesia Indonésie Indonésie an Indinéis Na h-Innd-innse Indonesia אינדונזיה Indonezija Indonézia Indonesia Indonesia Indónesía Indonesia インドネシア 인도네시아 Indonesia Индонезия Indonezija Indonēzija ഇന്തോനേഷ്യ Индонез Indonesia Indonesië Indonesia Indonesia Indonezja Indonésia Indonésia Indonezia Индонезия Indonézia Indonezija Indonezi Индонезија Indonesien Indonesia อินโดนีเซีย Endonezya Индонезия Індонезія Indoneziya Indonesia 印度尼西亚 印尼
IE أيرلندا Ірландыя Ирландия Iwerzhon Irska Irlanda Irsko Irland Irland Ιρλανδία Ireland Irlando Irlanda Iirimaa Irlanda ایرلند Irlanti Irlande Irlande Éire Èirinn Irlanda אירלנד Irska Írország Irlanda Irlandia Írland Irlanda アイルランド 아일랜드 Ireland Ирландия Airija Īrija അയർലൻഡ് Ирланд Irland Ierland Irland Ireland Irlandia Irlanda Irlanda Irlanda Ирландия Írsko Irska Irlandë Ирска Irland Ayalandi ไอร์แลนด์ İrlanda Ирландия Ірландія Irlandiya Ireland 爱尔兰 愛爾蘭
IL إسرائيل Ізраіль Израел Israel Izrael Israel Izrael Israel Israel Ισραήλ Israel Israelo Israel Iisrael Israel اسرائیل Israel Israël Israël Iosrael Iosrael Israel ישראל Izrael Izrael Israel Israel Ísrael Israele イスラエル 이스라엘 Israel Израиль Izraelis Izraēla ഇസ്രായേൽ Израиль Israel Israël Israel Israel Izrael Israel Israel Israel Израиль Izrael Izrael Izrael Израел Israel Israeli อิสราเอล İsrail Израиль Ізраїль Isroil Israel 以色列 以色列
IM جزيرة مان Востраў Мэн остров Ман Enez Vanav Ostrvo Man Illa de Man Ostrov Man Isle of Man Isle of Man Νήσος του Μαν Isle of Man Isle of Man Isla de Man Mani saar Man uhartea جزیرهٔ من Mansaari Île de Man Île de Man Oileán Mhanann Eilean Mhanainn Illa de Man האי מאן Otok Man Man-sziget Insula de Man Pulau Man Mön Isola di Man マン島 맨 섬 Isle of Man Мэн аралы Meno Sala Mena ഐൽ ഓഫ് മാൻ Мэн Арал Man Isle of Man Man Isle of Man Wyspa Man Ilha de Man Ilha de Man Insula Man о-в Мэн Ostrov Man Otok Man Ishulli i Manit Острво Ман Isle of Man Kisiwa cha Man เกาะแมน Man Adası Мэн утравы Острів Мен Men oroli Đảo Man 马恩岛 曼島
IN الهند Індыя Индия India Indija Índia Indie Indien Indien Ινδία India Hindujo India India India هند Intia Inde Inde an India Na h-Innseachan A India הודו Indija India India India Indland India インド 인도 Eynda Индия Indija Indija ഇന്ത്യ Энэтхэг India India India Инди Indie Índia Índia India Индия India Indija Indi Индија Indien India อินเดีย Hindistan Индия Індія Hindiston Ấn Độ 印度 印度
IO الإقليم البريطاني في المحيط الهندي Брытанская тэрыторыя ў Індыйскім акіяне Британска територия в Индийския океан Tiriad breizhveurat Meurvor Indez Britanska Teritorija u Indijskom Okeanu Territori Britànic de lOceà Índic Britské indickooceánské území Det Britiske Territorium i Det Indiske Ocean Britisches Territorium im Indischen Ozean Βρετανικά Εδάφη Ινδικού Ωκεανού British Indian Ocean Territory Brita Hindoceana Teritorio Territorio Británico del Océano Índico Briti India ookeani ala Indiako Ozeanoko lurralde britainiarra قلمرو بریتانیا در اقیانوس هند Brittiläinen Intian valtameren alue Territoire britannique de locéan Indien Territoire britannique de locéan Indien Críoch Aigéan Indiach na Breataine Ranntair Breatannach Cuan nan Innseachan Territorio Británico do Océano Índico הטריטוריה הבריטית באוקיינוס ההודי Britanski Indijskooceanski teritorij Brit Indiai-óceáni Terület Territorio oceanic britanno-indian Wilayah Inggris di Samudra Hindia Bresku Indlandshafseyjar Territorio britannico dellOceano Indiano 英領インド洋地域 영국령 인도양 식민지 British Indian Ocean Territory Инди океанындагы Британ территориясы Indijos Vandenyno Britų Sritis Indijas okeāna Britu teritorija ബ്രിട്ടീഷ് ഇന്ത്യൻ മഹാസമുദ്ര പ്രദേശം Британийн харьяа Энэтхэгийн далай дахь нутаг дэвсгэр Det britiske territoriet i Indiahavet Brits Indische Oceaanterritorium Det britiske territoriet I Indiahavet British Indian Ocean Territory Brytyjskie Terytorium Oceanu Indyjskiego Território Britânico do Oceano Índico Território Britânico do Oceano Índico Teritoriul Britanic din Oceanul Indian Британская территория в Индийском океане Britské indickooceánske územie Britansko ozemlje v Indijskem oceanu Territori Britanik i Oqeanit Indian Британска територија Индијског океана Brittiska territoriet i Indiska oceanen Eneo la Uingereza katika Bahari Hindi บริติชอินเดียนโอเชียนเทร์ริทอรี Britanya Hint Okyanusu Toprakları Британиянең Һинд Океанындагы Территориясе Британська територія в Індійському Океані Britaniyaning Hind okeanidagi hududi Lãnh thổ Ấn Độ Dương thuộc Anh 英属印度洋领地 英屬印度洋領地
IQ العراق Ірак Ирак Iraq Irak Iraq Irák Irak Irak Ιράκ Iraq Irako Irak Iraak Irak عراق Irak Irak Irak an Iaráic Ioràc Iraq עיראק Irak Irak Irak Irak Írak Iraq イラク 이라크 Iraq Ирак Irakas Irāka ഇറാഖ് Ирак Irak Irak Irak Iraq Irak Iraque Iraque Irak Ирак Irak Irak Irak Ирак Irak Iraki อิรัก Irak Гыйрак Ірак Iroq Iraq 伊拉克 伊拉克
IR إيران Іран Иран Iran Iran Iran Írán Iran Iran Ιράν Iran Irano Irán Iraan Iran ایران Iran Iran Iran an Iaráin Ioràn Irán איראן Iran Irán Iran Iran Íran Iran イラン 이란 Iran Иран Iranas Irāna ഇറാൻ Иран Iran Iran Iran Iran Iran Irã Irã Iran Иран Irán Iran Iran Иран Iran Iran อิหร่าน İran Иран Іран Eron Iran 伊朗 伊朗
IS آيسلندا Ісландыя Исландия Island Island Islàndia Island Island Island Ισλανδία Iceland Islando Islandia Island Islandia ایسلند Islanti Islande Islande an Íoslainn Innis Tìle Islandia איסלנד Island Izland Islanda Islandia Ísland Islanda アイスランド 아이슬란드 Iceland Исландия Islandija Islande ഐസ്‌ലാന്റ് Исланд Island IJsland Island Iceland Islandia Islândia Islândia Islanda Исландия Island Islandija Islandë Исланд Island Aisilandi ไอซ์แลนด์ İzlanda Исландия Ісландія Islandiya Iceland 冰岛 冰島
IT إيطاليا Італія Италия Italia Italija Itàlia Itálie Italien Italien Ιταλία Italy Italujo Italia Itaalia Italia ایتالیا Italia Italie Italie an Iodáil An Eadailt Italia איטליה Italija Olaszország Italia Italia Ítalía Italia イタリア 이탈리아 Itali Италия Italija Itālija ഇറ്റലി Итали Italia Italië Italia Итали Włochy Itália Itália Italia Италия Taliansko Italija Itali Италија Italien Italia อิตาลี İtalya Италия Італія Italiya Italy 意大利 義大利
JE جيرسي Джэрсі Джърси Jerzenez Jersey Jersey Jersey Jersey Jersey Τζέρζι Jersey Jersey Jersey Jersey Jersey جرزی Jersey Jersey Jersey Geirsí Deàrsaidh Jersey ג׳רזי Jersey Jersey Jersey Jersey Jersey Jersey ジャージー 저지 Jersey Жерси Džersis Džērsija ജേഴ്സി Жерси Jersey Jersey Jersey Jersey Jersey Jersey Jersey Jersey Джерси Jersey Jersey Xhersej Џерзи Jersey Jersey เจอร์ซีย์ Jersey Джерси Джерсі Jersi Jersey 泽西岛 澤西島
JM جامايكا Ямайка Ямайка Jamaika Jamajka Jamaica Jamajka Jamaica Jamaika Τζαμάικα Jamaica Jamajko Jamaica Jamaica Jamaika جامائیکا Jamaika Jamaïque Jamaïque Iamáice Diameuga Xamaica ג׳מייקה Jamajka Jamaica Jamaica Jamaika Jamaíka Giamaica ジャマイカ 자메이카 Jamaica Ямайка Jamaika Jamaika ജമൈക്ക Ямайка Jamaica Jamaica Jamaica Jamaica Jamajka Jamaica Jamaica Jamaica Ямайка Jamajka Jamajka Xhamajkë Јамајка Jamaica Jamaika จาเมกา Jamaika Ямайка Ямайка Yamayka Jamaica 牙买加 牙買加
JO الأردن Іарданія Йордания Jordania Jordan Jordània Jordánsko Jordan Jordanien Ιορδανία Jordan Jordanio Jordania Jordaania Jordania اردن Jordania Jordanie Jordanie an Iordáin Iòrdan Xordania ירדן Jordan Jordánia Jordania Yordania Jórdanía Giordania ヨルダン 요르단 Jordan Иордания Jordanija Jordānija ജോർദ്ദാൻ Йордан Jordan Jordanië Jordan Jordan Jordania Jordânia Jordânia Iordania Иордания Jordánsko Jordanija Jordani Јордан Jordanien Jordan จอร์แดน Ürdün Иордания Йорданія Iordaniya Jordan 约旦 約旦
JP اليابان Японія Япония Japan Japan Japó Japonsko Japan Japan Ιαπωνία Japan Japanujo Japón Jaapan Japonia ژاپن Japani Japon Japon an tSeapáin An t-Seapan O Xapón יפן Japan Japán Japon Jepang Japan Giappone 日本 일본 Japan Япония Japonija Japāna ജപ്പാൻ Япон Japan Japan Japan Япон Japonia Japão Japão Japonia Япония Japonsko Japonska Japoni Јапан Japan Japani ญี่ปุ่น Japonya Япония Японія Yaponiya Nhật Bản 日本 日本
KE كينيا Кенія Кения Kenya Kenija Kenya Keňa Kenya Kenia Κένυα Kenya Kenjo Kenia Keenia Kenya کنیا Kenia Kenya Kenya an Chéinia Ceinia Kenya קניה Kenija Kenya Kenya Kenya Kenía Kenya ケニア 케냐 Kenya Кения Kenija Kenija കെനിയ Кени Kenya Kenia Kenya Kenya Kenia Quênia Quênia Kenya Кения Keňa Kenija Kenia Кенија Kenya Kenya เคนยา Kenya Кения Кенія Keniya Kenya 肯尼亚 肯亞
KG قيرغيزستان Кыргызстан Киргизстан Kyrgyzstan Kirgistan Kirguizistan Kyrgyzstán Kirgisistan Kirgisistan Κιργιστάν Kyrgyzstan Kirgizistano Kirguistán Kõrgõzstan Kirgizistan قرقیزستان Kirgisia Kirghizistan Kirghizistan an Chirgeastáin Cìorgastan Kirguizistán קירגיזסטן Kirgistan Kirgizisztán Kirghizistan Kirgistan Kirgistan Kirghizistan キルギス 키르기스스탄 Kyrgyzstan Кыргызстан Kirgizija Kirgizstāna കിർഗിസ്ഥാൻ Кыргызстан Kirgisistan Kirgizië Kirgisistan Kyrgyzstan Kirgistan Quirguistão Quirguistão Kârgâzstan Киргизия Kirgizsko Kirgizistan Kirgizi Киргистан Kirgizistan Kirigizistani คีร์กีซสถาน Kırgızistan Кыргызстан Киргизстан Qirgʻiziston Kyrgyzstan 吉尔吉斯斯坦 吉爾吉斯
KH كمبوديا Камбоджа Камбоджа Kambodja Kambodža Cambodja Kambodža Cambodja Kambodscha Καμπότζη Cambodia Kamboĝo Camboya Kambodža Kanbodia کامبوج Kambodža Cambodge Cambodge an Chambóid Cambuidea Camboxa קמבודיה Kambodža Kambodzsa Cambodgia Kamboja Kambódía Cambogia カンボジア 캄보디아 Cambodia Камбоджа Kambodža Kambodža കംബോഡിയ Камбож Kambodsja Cambodja Kambodsja Cambodia Kambodża Camboja Camboja Cambodgia Камбоджа Kambodža Kambodža Kamboxhia Камбоџа Kambodja Kambodia กัมพูชา Kamboçya Камбоджа Камбоджа Kambodja Campuchia 柬埔寨 柬埔寨
KI كيريباتي Кірыбаці Кирибати Kiribati Kiribati Kiribati Kiribati Kiribati Kiribati Κιριμπάτι Kiribati Kiribato Kiribati Kiribati Kiribati کیریباتی Kiribati Kiribati Kiribati Cireabaití Ciribeas Kiribati קיריבאטי Kiribati Kiribati Kiribati Kiribati Kíribatí Kiribati キリバス 키리바시 Kiribati Кирибати Kiribatis Kiribati കിരിബാട്ടി Кирибати Kiribati Kiribati Kiribati Kiribati Kiribati Quiribati Quiribati Kiribati Кирибати Kiribati Kiribati Kiribati Кирибати Kiribati Kiribati คิริบาส Kiribati Кирибати Кірібаті Kiribati Kiribati 基里巴斯 吉里巴斯
KM جزر القمر Каморскія астравы Коморски острови Komorez Komori Comores Komory Comorerne Komoren Κομόρες Comoros Komoroj Comoras Komoorid Komoreak کومور Komorit Comores Comores Oileáin Chomóra Comoros Comores קומורו Komori Comore-szigetek Comoros Komoro Kómoreyjar Comore コモロ 코모로 Comoros Коморос Komorai Komoru salas കോമൊറോസ് Коморын арлууд Komorene Comoren Komorane Comoros Komory Comores Comores Comore Коморы Komory Komori Komore Коморска Острва Komorerna Komoro คอโมโรส Komorlar Комор утраулары Комори Komor orollari Comoros 科摩罗 葛摩
KN سانت كيتس ونيفيس Сент-Кітс і Невіс Сейнт Китс и Невис Saint Kitts ha Nevis Sveti Kits i Nevis Saint Christopher i Nevis Svatý Kryštof a Nevis Saint Kitts og Nevis St. Kitts und Nevis Σεν Κιτς και Νέβις St. Kitts & Nevis Sent-Kristofo kaj Neviso San Cristóbal y Nieves Saint Kitts ja Nevis Saint Kitts eta Nevis سنت کیتس و نویس Saint Kitts ja Nevis Saint-Christophe-et-Niévès Saint-Christophe-et-Niévès San Críostóir-Nimheas Naomh Crìstean is Nibheis Saint Kitts e Nevis סנט קיטס ונוויס Sveti Kristofor i Nevis Saint Kitts és Nevis Sancte Christophoro e Nevis Saint Kitts dan Nevis Sankti Kitts og Nevis Saint Kitts e Nevis セントクリストファー・ネーヴィス 세인트키츠 네비스 St. Kitts & Nevis Сент-Китс жана Невис Sent Kitsas ir Nevis Sentkitsa un Nevisa സെന്റ് കിറ്റ്‌സും നെവിസും Сент-Киттс ба Невис Saint Kitts og Nevis Saint Kitts en Nevis Saint Kitts og Nevis St. Kitts & Nevis Saint Kitts i Nevis São Cristóvão e Névis São Cristóvão e Névis Saint Kitts și Nevis Сент-Китс и Невис Svätý Krištof a Nevis Saint Kitts in Nevis Shën-Kits dhe Nevis Сент Китс и Невис S:t Kitts och Nevis St. Kitts na Nevis เซนต์คิตส์และเนวิส Saint Kitts ve Nevis Сент-Китс һәм Невис Сент-Кітс і Невіс Sent-Kits va Nevis St. Kitts và Nevis 圣基茨和尼维斯 聖克里斯多福及尼維斯
KP كوريا الشمالية Паўночная Карэя Северна Корея Korea an Norzh Sjeverna Koreja Corea del Nord Severní Korea Nordkorea Nordkorea Βόρεια Κορέα North Korea Nord-Koreo Corea del Norte Põhja-Korea Ipar Korea کرهٔ شمالی Pohjois-Korea Corée du Nord Corée du Nord an Chóiré Thuaidh Coirèa a Tuath Corea do Norte קוריאה הצפונית Sjeverna Koreja Észak-Korea Corea del Nord Korea Utara Norður-Kórea Corea del Nord 北朝鮮 북한 North Korea Түндүк Корея Šiaurės Korėja Ziemeļkoreja ഉത്തരകൊറിയ Хойд Солонгос Nord-Korea Noord-Korea Nord-Korea North Korea Korea Północna Coreia do Norte Coreia do Norte Coreea de Nord КНДР Severná Kórea Severna Koreja Kore e Veriut Северна Кореја Nordkorea Korea Kaskazini เกาหลีเหนือ Kuzey Kore Төньяк Корея Північна Корея Shimoliy Koreya Triều Tiên 朝鲜 北韓
KR كوريا الجنوبية Паўднёвая Карэя Южна Корея Korea ar Su Južna Koreja Corea del Sud Jižní Korea Sydkorea Südkorea Νότια Κορέα South Korea Sud-Koreo Corea del Sur Lõuna-Korea Hego Korea کرهٔ جنوبی Etelä-Korea Corée du Sud Corée du Sud an Chóiré Theas Coirèa Corea do Sur קוריאה הדרומית Južna Koreja Dél-Korea Corea del Sud Korea Selatan Suður-Kórea Corea del Sud 韓国 대한민국 South Korea Түштүк Корея Pietų Korėja Dienvidkoreja ദക്ഷിണകൊറിയ Өмнөд Солонгос Sør-Korea Zuid-Korea Sør-Korea South Korea Korea Południowa Coreia do Sul Coreia do Sul Coreea de Sud Республика Корея Južná Kórea Južna Koreja Kore e Jugut Јужна Кореја Sydkorea Korea Kusini เกาหลีใต้ Güney Kore South Korea Південна Корея Janubiy Koreya Hàn Quốc 韩国 南韓
KW الكويت Кувейт Кувейт Koweit Kuvajt Kuwait Kuvajt Kuwait Kuwait Κουβέιτ Kuwait Kuvajto Kuwait Kuveit Kuwait کویت Kuwait Koweït Koweït Cuáit Cuibhèit Kuwait כווית Kuvajt Kuvait Kuwait Kuwait Kúveit Kuwait クウェート 쿠웨이트 Kuwait Кувейт Kuveitas Kuveita കുവൈറ്റ് Кувейт Kuwait Koeweit Kuwait Kuwait Kuwejt Kuwait Kuwait Kuweit Кувейт Kuvajt Kuvajt Kuvajt Кувајт Kuwait Kuwait คูเวต Kuveyt Күвәйт Кувейт Quvayt Kuwait 科威特 科威特
KY جزر كايمان Кайманавы астравы Кайманови острови Inizi Cayman Kajmanska ostrva Illes Caiman Kajmanské ostrovy Caymanøerne Kaimaninseln Νήσοι Κέιμαν Cayman Islands Kejmanoj Islas Caimán Kaimanisaared Kaiman uharteak جزایر کِیمن Caymansaaret Îles Caïmans Îles Caïmans Oileáin Cayman Na h-Eileanan Caimean Illas Caimán איי קיימן Kajmanski otoci Kajmán-szigetek Insulas de Caiman Kepulauan Cayman Caymaneyjar Isole Cayman ケイマン諸島 케이맨 제도 Cayman Islands Кайман аралдары Kaimanų Salos Kaimanu salas കേയ്മാൻ ദ്വീപുകൾ Кайманы арлууд Caymanøyene Kaaimaneilanden Caymanøyane Cayman Islands Kajmany Ilhas Cayman Ilhas Cayman Insulele Cayman Острова Кайман Kajmanie ostrovy Kajmanski otoki Ishujt Kajman Кајманска Острва Caymanöarna Visiwa vya Cayman หมู่เกาะเคย์แมน Cayman Adaları Кайман утраулары Кайманові Острови Kayman orollari Quần đảo Cayman 开曼群岛 開曼群島
KZ كازاخستان Казахстан Казахстан Kazakstan Kazahstan Kazakhstan Kazachstán Kasakhstan Kasachstan Καζακστάν Kazakhstan Kazaĥstano Kazajistán Kasahstan Kazakhstan قزاقستان Kazakstan Kazakhstan Kazakhstan an Chasacstáin Casachstàn Kazakistán קזחסטן Kazahstan Kazahsztán Kazakhstan Kazakstan Kasakstan Kazakistan カザフスタン 카자흐스탄 Kazakhstan Казакстан Kazachstanas Kazahstāna കസാഖിസ്ഥാൻ Казахстан Kasakhstan Kazachstan Kasakhstan Kazakhstan Kazachstan Cazaquistão Cazaquistão Kazahstan Казахстан Kazachstan Kazahstan Kazakistan Казахстан Kazakstan Kazakistani คาซัคสถาน Kazakistan Казахстан Казахстан Qozogʻiston Kazakhstan 哈萨克斯坦 哈薩克
LA لاوس Лаос Лаос Laos Laos Laos Laos Laos Laos Λάος Laos Laoso Laos Laos Laos لائوس Laos Laos Laos Laos Làthos Laos לאוס Laos Laosz Laos Laos Laos Laos ラオス 라오스 Laos Лаос Laosas Laosa ലാവോസ് Лаос Laos Laos Laos Laos Laos Laos Laos Laos Лаос Laos Laos Laos Лаос Laos Laos ลาว Laos Лаос Лаос Laos Lào 老挝 寮國
LB لبنان Ліван Ливан Liban Liban Líban Libanon Libanon Libanon Λίβανος Lebanon Libano Líbano Liibanon Libano لبنان Libanon Liban Liban an Liobáin Leabanon O Líbano לבנון Libanon Libanon Libano Lebanon Líbanon Libano レバノン 레바논 Lebanon Ливан Libanas Libāna ലെബനൻ Ливан Libanon Libanon Libanon Lebanon Liban Líbano Líbano Liban Ливан Libanon Libanon Liban Либан Libanon Lebanon เลบานอน Lübnan Ливан Ліван Livan Li-băng 黎巴嫩 黎巴嫩
LC سانت لوسيا Сент-Люсія Сейнт Лусия Saint Lucia Sveta Lucija Saint Lucia Svatá Lucie Saint Lucia St. Lucia Αγία Λουκία St. Lucia Sent-Lucio Santa Lucía Saint Lucia Santa Luzia سنت لوسیا Saint Lucia Sainte-Lucie Sainte-Lucie Saint Lucia Naomh Lùisea Santa Lucía סנט לוסיה Sveta Lucija Saint Lucia Sancte Lucia Saint Lucia Sankti Lúsía Saint Lucia セントルシア 세인트루시아 St. Lucia Сент-Люсия Sent Lusija Sentlūsija സെന്റ് ലൂസിയ Сент Люсиа St. Lucia Saint Lucia St. Lucia St. Lucia Saint Lucia Santa Lúcia Santa Lúcia Sfânta Lucia Сент-Люсия Svätá Lucia Saint Lucia Shën-Luçia Света Луција S:t Lucia St. Lucia เซนต์ลูเซีย Saint Lucia Сент-Люсия Сент-Люсія Sent-Lyusiya St. Lucia 圣卢西亚 聖露西亞
LI ليختنشتاين Ліхтэнштэйн Лихтенщайн Liechtenstein Lihtenštajn Liechtenstein Lichtenštejnsko Liechtenstein Liechtenstein Λιχτενστάιν Liechtenstein Liĥtenŝtejno Liechtenstein Liechtenstein Liechtenstein لیختن‌اشتاین Liechtenstein Liechtenstein Liechtenstein Lichtinstéin Lichtenstein Liechtenstein ליכטנשטיין Lihtenštajn Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein リヒテンシュタイン 리히텐슈타인 Liechtenstein Лихтенштейн Lichtenšteinas Lihtenšteina ലിച്ചൺസ്റ്റൈൻ Лихтенштейн Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein Лихтенштейн Lichtenštajnsko Lihtenštajn Lihtenshtajn Лихтенштајн Liechtenstein Liechtenstein ลิกเตนสไตน์ Liechtenstein Лихтенштейн Ліхтенштейн Lixtenshteyn Liechtenstein 列支敦士登 列支敦斯登
LK سريلانكا Шры-Ланка Шри Ланка Sri Lanka Šri Lanka Sri Lanka Srí Lanka Sri Lanka Sri Lanka Σρι Λάνκα Sri Lanka Sri-Lanko Sri Lanka Sri Lanka Sri Lanka سری‌لانکا Sri Lanka Sri Lanka Sri Lanka Srí Lanca Sri Lanca Sri Lanka סרי לנקה Šri Lanka Srí Lanka Sri Lanka Sri Lanka Srí Lanka Sri Lanka スリランカ 스리랑카 Sri Lanka Шри-Ланка Šri Lanka Šrilanka ശ്രീലങ്ക Шри-Ланка Sri Lanka Sri Lanka Sri Lanka Sri Lanka Sri Lanka Sri Lanka Sri Lanka Sri Lanka Шри-Ланка Srí Lanka Šrilanka Sri-Lankë Шри Ланка Sri Lanka Sri Lanka ศรีลังกา Sri Lanka Шри-Ланка Шрі-Ланка Shri-Lanka Sri Lanka 斯里兰卡 斯里蘭卡
LR ليبيريا Ліберыя Либерия Liberia Liberija Libèria Libérie Liberia Liberia Λιβερία Liberia Liberio Liberia Libeeria Liberia لیبریا Liberia Libéria Libéria an Libéir Libèir Liberia ליבריה Liberija Libéria Liberia Liberia Líbería Liberia リベリア 라이베리아 Liberia Либерия Liberija Libērija ലൈബീരിയ Либери Liberia Liberia Liberia Liberia Liberia Libéria Libéria Liberia Либерия Libéria Liberija Liberi Либерија Liberia Liberia ไลบีเรีย Liberya Либерия Ліберія Liberiya Liberia 利比里亚 賴比瑞亞
LS ليسوتو Лесота Лесото Lesotho Lesoto Lesotho Lesotho Lesotho Lesotho Λεσότο Lesotho Lesoto Lesoto Lesotho Lesotho لسوتو Lesotho Lesotho Lesotho Leosóta Leasoto Lesotho לסוטו Lesoto Lesotho Lesotho Lesotho Lesótó Lesotho レソト 레소토 Lesotho Лесото Lesotas Lesoto ലെസോതോ Лесото Lesotho Lesotho Lesotho Lesotho Lesotho Lesoto Lesoto Lesotho Лесото Lesotho Lesoto Lesoto Лесото Lesotho Lesoto เลโซโท Lesotho Лесото Лесото Lesoto Lesotho 莱索托 賴索托
LT ليتوانيا Літва Литва Lituania Litvanija Lituània Litva Litauen Litauen Λιθουανία Lithuania Litovujo Lituania Leedu Lituania لیتوانی Liettua Lituanie Lituanie an Liotuáin An Liotuain Lituania ליטא Litva Litvánia Lituania Lituania Litháen Lituania リトアニア 리투아니아 Lithuania Литва Lietuva Lietuva ലിത്വാനിയ Литва Litauen Litouwen Litauen Lithuania Litwa Lituânia Lituânia Lituania Литва Litva Litva Lituani Литванија Litauen Lithuania ลิทัวเนีย Litvanya Литва Литва Litva Litva 立陶宛 立陶宛
LU لوكسمبورغ Люксембург Люксембург Luksembourg Luksemburg Luxemburg Lucembursko Luxembourg Luxemburg Λουξεμβούργο Luxembourg Luksemburgo Luxemburgo Luksemburg Luxenburgo لوکزامبورگ Luxemburg Luxembourg Luxembourg Lucsamburg Lugsamburg Luxemburgo לוקסמבורג Luksemburg Luxemburg Luxemburg Luksemburg Lúxemborg Lussemburgo ルクセンブルク 룩셈부르크 Luxembourg Люксембург Liuksemburgas Luksemburga ലക്സംബർഗ് Люксембург Luxemburg Luxemburg Luxembourg Luxembourg Luksemburg Luxemburgo Luxemburgo Luxemburg Люксембург Luxembursko Luksemburg Luksemburg Луксембург Luxemburg Luxembourg ลักเซมเบิร์ก Lüksemburg Люксембург Люксембурґ Lyuksemburg Luxembourg 卢森堡 盧森堡
LV لاتفيا Латвія Латвия Latvia Latvija Letònia Lotyšsko Letland Lettland Λετονία Latvia Latvujo Letonia Läti Letonia لتونی Latvia Lettonie Lettonie an Laitvia An Laitbhe Letonia לטביה Latvija Lettország Lettonia Latvia Lettland Lettonia ラトビア 라트비아 Latvia Латвия Latvija Latvija ലാറ്റ്വിയ Латви Latvia Letland Latvia Latvia Łotwa Letônia Letônia Letonia Латвия Lotyšsko Latvija Letoni Летонија Lettland Latvia ลัตเวีย Letonya Латвия Латвія Latviya Latvia 拉脱维亚 拉脫維亞
LY ليبيا Лівія Либия Libia Libija Líbia Libye Libyen Libyen Λιβύη Libya Libio Libia Liibüa Libia لیبی Libya Libye Libye an Libia Libia Libia לוב Libija Líbia Libya Libia Líbía Libia リビア 리비아 Libya Ливия Libija Lībija ലിബിയ Ливи Libya Libië Libya Libya Libia Líbia Líbia Libia Ливия Líbya Libija Libi Либија Libyen Libya ลิเบีย Libya Ливия Лівія Liviya Libya 利比亚 利比亞
MA المغرب Марока Мароко Maroko Maroko Marroc Maroko Marokko Marokko Μαρόκο Morocco Maroko Marruecos Maroko Maroko مراکش Marokko Maroc Maroc Maracó Moroco Marrocos מרוקו Maroko Marokkó Marocco Maroko Marokkó Marocco モロッコ 모로코 Morocco Марокко Marokas Maroka മൊറോക്കൊ Морокко Marokko Marokko Marokko Morocco Maroko Marrocos Marrocos Maroc Марокко Maroko Maroko Marok Мароко Marocko Morocco โมร็อกโก Fas Марокко Марокко Marokash Ma-rốc 摩洛哥 摩洛哥
MC موناكو Манака Монако Monaco Monako Mònaco Monako Monaco Monaco Μονακό Monaco Monako Mónaco Monaco Monako موناکو Monaco Monaco Monaco Monacó Monaco Mónaco מונקו Monako Monaco Monaco Monako Mónakó Monaco モナコ 모나코 Monaco Монако Monakas Monako മൊണാക്കോ Монако Monaco Monaco Monaco Monaco Monako Mônaco Mônaco Monaco Монако Monako Monako Monako Монако Monaco Monaco โมนาโก Monako Монако Монако Monako Monaco 摩纳哥 摩納哥
MD مولدوفا Малдова Молдова Moldova Moldavija Moldàvia Moldavsko Moldova Republik Moldau Μολδαβία Moldova Moldavujo Moldavia Moldova Moldavia مولداوی Moldova Moldavie Moldavie an Mholdóiv A Mholdobha Moldavia מולדובה Moldavija Moldova Moldavia Moldova Moldóva Moldavia モルドバ 몰도바 Moldova Молдова Moldova Moldova മൾഡോവ Молдова Moldova Moldavië Moldova Moldova Mołdawia Moldova Moldova Republica Moldova Молдова Moldavsko Moldavija Moldavi Молдавија Moldavien Moldova มอลโดวา Moldova Молдова Молдова Moldova Moldova 摩尔多瓦 摩爾多瓦
ME الجبل الأسود Чарнагорыя Черна гора Montenegro Crna Gora Montenegro Černá Hora Montenegro Montenegro Μαυροβούνιο Montenegro Montenegro Montenegro Montenegro Montenegro مونته‌نگرو Montenegro Monténégro Monténégro Montainéagró Am Monadh Neagrach Montenegro מונטנגרו Crna Gora Montenegró Montenegro Montenegro Svartfjallaland Montenegro モンテネグロ 몬테네그로 Montenegro Черногория Juodkalnija Melnkalne മോണ്ടെനെഗ്രോ Монтенегро Montenegro Montenegro Montenegro Montenegro Czarnogóra Montenegro Montenegro Muntenegru Черногория Čierna Hora Črna gora Mal i Zi Црна Гора Montenegro Montenegro มอนเตเนโกร Karadağ Черногория Чорногорія Chernogoriya Montenegro 黑山 蒙特內哥羅
MF سان مارتن Сен-Мартэн Сен Мартен Saint Martin Sveti Martin Saint Martin Svatý Martin (Francie) Saint Martin St. Martin Άγιος Μαρτίνος (Γαλλικό τμήμα) St. Martin St. Martin San Martín Saint-Martin San Martin سنت مارتین Saint-Martin Saint-Martin Saint-Martin Saint-Martin Naomh Màrtainn Saint Martin סן מרטן Saint Martin Saint Martin St. Martin Saint Martin Saint-Martin Saint Martin サン・マルタン 생마르탱 St. Martin Сент-Мартин Sen Martenas Senmartēna സെന്റ് മാർട്ടിൻ Сент-Мартин Saint-Martin Saint-Martin Saint Martin St. Martin Saint-Martin São Martinho São Martinho Sfântul Martin Сен-Мартен Svätý Martin (fr.) Saint Martin Sen-Marten Свети Мартин (Француска) Saint-Martin St. Martin เซนต์มาร์ติน Saint Martin Сент-Мартин Сен-Мартен Sent-Martin St. Martin 法属圣马丁 法屬聖馬丁
MG مدغشقر Мадагаскар Мадагаскар Madagaskar Madagaskar Madagascar Madagaskar Madagaskar Madagaskar Μαδαγασκάρη Madagascar Madagaskaro Madagascar Madagaskar Madagaskar ماداگاسکار Madagaskar Madagascar Madagascar Madagascar Madagasgar Madagascar מדגסקר Madagaskar Madagaszkár Madagascar Madagaskar Madagaskar Madagascar マダガスカル 마다가스카르 Madagascar Мадагаскар Madagaskaras Madagaskara മഡഗാസ്കർ Мадагаскар Madagaskar Madagaskar Madagaskar Madagascar Madagaskar Madagascar Madagascar Madagascar Мадагаскар Madagaskar Madagaskar Madagaskar Мадагаскар Madagaskar Madagaska มาดากัสการ์ Madagaskar Мадагаскар Мадагаскар Madagaskar Madagascar 马达加斯加 馬達加斯加
MH جزر مارشال Маршалавы астравы Маршалови острови Inizi Marshall Maršalova ostrva Illes Marshall Marshallovy ostrovy Marshalløerne Marshallinseln Νήσοι Μάρσαλ Marshall Islands Marŝaloj Islas Marshall Marshalli Saared Marshall Uharteak جزایر مارشال Marshallinsaaret Îles Marshall Îles Marshall Oileáin Marshall Eileanan Mharshall Illas Marshall איי מרשל Maršalovi Otoci Marshall-szigetek Insulas Marshall Kepulauan Marshall Marshalleyjar Isole Marshall マーシャル諸島 마셜 제도 Marshall Islands Маршалл аралдары Maršalo Salos Māršala salas മാർഷൽ ദ്വീപുകൾ Маршаллын арлууд Marshalløyene Marshalleilanden Marshalløyane Marshall Islands Wyspy Marshalla Ilhas Marshall Ilhas Marshall Insulele Marshall Маршалловы Острова Marshallove ostrovy Marshallovi otoki Ishujt Marshall Маршалска Острва Marshallöarna Visiwa vya Marshall หมู่เกาะมาร์แชลล์ Marshall Adaları Маршалл утраулары Маршаллові Острови Marshall orollari Quần đảo Marshall 马绍尔群岛 馬紹爾群島
MK مقدونيا الشمالية Паўночная Македонія Северна Македония Makedonia an Norzh Sjeverna Makedonija Macedònia del Nord Severní Makedonie Nordmakedonien Nordmazedonien Βόρεια Μακεδονία North Macedonia North Macedonia Macedonia del Norte Põhja-Makedoonia Ipar Mazedonia مقدونیهٔ شمالی Pohjois-Makedonia Macédoine du Nord Macédoine du Nord an Mhacadóin Thuaidh A Mhasadon a Tuath Macedonia do Norte מקדוניה הצפונית Sjeverna Makedonija Észak-Macedónia Macedonia Makedonia Utara Norður-Makedónía Macedonia del Nord 北マケドニア 북마케도니아 North Macedonia Түндүк Македония Šiaurės Makedonija Ziemeļmaķedonija നോർത്ത് മാസിഡോണിയ Хойд Македон Nord-Makedonia Noord-Macedonië Nord-Makedonia North Macedonia Macedonia Północna Macedônia do Norte Macedônia do Norte Macedonia de Nord Северная Македония Severné Macedónsko Severna Makedonija Maqedonia e Veriut Северна Македонија Nordmakedonien Masedonia ya Kaskazini มาซิโดเนียเหนือ Kuzey Makedonya Төньяк Македония Північна Македонія Shimoliy Makedoniya Bắc Macedonia 北马其顿 北馬其頓
ML مالي Малі Мали Mali Mali Mali Mali Mali Mali Μάλι Mali Malio Mali Mali Mali مالی Mali Mali Mali Mailí Màili Malí מאלי Mali Mali Mali Mali Malí Mali マリ 말리 Mali Мали Malis Mali മാലി Мали Mali Mali Mali Mali Mali Mali Mali Mali Мали Mali Mali Mali Мали Mali Mali มาลี Mali Мали Малі Mali Mali 马里 馬利
MM ميانمار (بورما) М’янма (Бірма) Мианмар (Бирма) Myanmar (Birmania) Mjanmar Myanmar (Birmània) Myanmar (Barma) Myanmar (Burma) Myanmar Μιανμάρ (Βιρμανία) Myanmar (Burma) Mjanmao Myanmar (Birmania) Myanmar (Birma) Myanmar (Birmania) میانمار (برمه) Myanmar (Burma) Myanmar (Birmanie) Myanmar (Birmanie) Maenmar (Burma) Miànmar Myanmar (Birmania) מיאנמר (בורמה) Mjanmar (Burma) Mianmar Birmania/Myanmar Myanmar (Burma) Mjanmar (Búrma) Myanmar (Birmania) ミャンマー (ビルマ) 미얀마 Myanmar (Burma) Мьянма (Бирма) Mianmaras (Birma) Mjanma (Birma) മ്യാൻമാർ (ബർമ്മ) Мьянмар Myanmar (Burma) Myanmar (Birma) Myanmar (Burma) Myanmar (Burma) Mjanma (Birma) Mianmar (Birmânia) Mianmar (Birmânia) Myanmar (Birmania) Мьянма (Бирма) Mjanmarsko Mjanmar (Burma) Mianmar (Burmë) Мијанмар (Бурма) Myanmar (Burma) Myanmar (Burma) เมียนมาร์ (พม่า) Myanmar (Burma) Myanmar (Burma) Мʼянма (Бірма) Myanma (Birma) Myanmar (Miến Điện) 缅甸 緬甸
MN منغوليا Манголія Монголия Mongolia Mongolija Mongòlia Mongolsko Mongoliet Mongolei Μογγολία Mongolia Mongolujo Mongolia Mongoolia Mongolia مغولستان Mongolia Mongolie Mongolie an Mhongóil Dùthaich nam Mongol Mongolia מונגוליה Mongolija Mongólia Mongolia Mongolia Mongólía Mongolia モンゴル 몽골 Mongolia Монголия Mongolija Mongolija മംഗോളിയ Монгол Mongolia Mongolië Mongolia Mongolia Mongolia Mongólia Mongólia Mongolia Монголия Mongolsko Mongolija Mongoli Монголија Mongoliet Mongolia มองโกเลีย Moğolistan Монголия Монголія Mongoliya Mông Cổ 蒙古 蒙古
MO مكاو Макаа Макао Macau Makao Macau Macao Macao Macau Μακάο Macao Macao Macao Macau Macau ماکائو Macao Macao Macao Macao Macàthu Macau מקאו Makao Makaó Macao Makau Makaó Macao マカオ 마카오 Macao Макау Makao Makao മക്കാവു Макао Macao Macau Macao Macao Makau Macau Macau Macao Макао Macao Macao Makao Макао Macao Makau มาเก๊า Makao Макао Макао Makao Macao 澳门 澳門
MP جزر ماريانا الشمالية Паўночныя Марыянскія астравы Северни Мариански острови Inizi Mariana an Norzh Sjeverna Marijanska ostrva Illes Mariannes del Nord Severní Mariany Nordmarianerne Nördliche Marianen Νήσοι Βόρειες Μαριάνες Northern Mariana Islands Nord-Marianoj Islas Marianas del Norte Põhja-Mariaanid Ipar Mariana uharteak جزایر ماریانای شمالی Pohjois-Mariaanit Îles Mariannes du Nord Îles Mariannes du Nord na hOileáin Mháirianacha Thuaidh Na h-Eileanan Mairianach a Tuath Illas Marianas do Norte איי מריאנה הצפוניים Sjevernomarijanski otoci Északi Mariana-szigetek Insulas Marianna del Nord Kepulauan Mariana Utara Norður-Maríanaeyjar Isole Marianne settentrionali 北マリアナ諸島 북마리아나제도 Northern Mariana Islands Түндүк Мариана аралдары Marianos Šiaurinės Salos Ziemeļu Marianas salas ഉത്തര മറിയാനാ ദ്വീപുകൾ Хойд Марианы арлууд Nord-Marianene Noordelijke Marianen Nord-Marianane Northern Mariana Islands Mariany Północne Ilhas Marianas do Norte Ilhas Marianas do Norte Insulele Mariane de Nord Северные Марианские о-ва Severné Mariány Severni Marianski otoki Ishujt e Marianës Veriore Северна Маријанска Острва Nordmarianerna Visiwa vya Mariana vya Kaskazini หมู่เกาะนอร์เทิร์นมาเรียนา Kuzey Mariana Adaları Төньяк Мариана утраулары Північні Маріанські Острови Shimoliy Mariana orollari Quần đảo Bắc Mariana 北马里亚纳群岛 北馬利安納群島
MQ جزر المارتينيك Марцініка Мартиника Martinik Martinik Martinica Martinik Martinique Martinique Μαρτινίκα Martinique Martiniko Martinica Martinique Martinika مارتینیک Martinique Martinique Martinique Martinique Mairtinic Martinica מרטיניק Martinique Martinique Martinique Martinik Martiník Martinica マルティニーク 마르티니크 Martinique Мартиника Martinika Martinika മാർട്ടിനിക്ക് Мартиник Martinique Martinique Martinique Martinique Martynika Martinica Martinica Martinica Мартиника Martinik Martinik Martinikë Мартиник Martinique Martinique มาร์ตินีก Martinik Мартиника Мартініка Martinika Martinique 马提尼克 馬丁尼克
MR موريتانيا Маўрытанія Мавритания Maouritania Mauritanija Mauritània Mauritánie Mauretanien Mauretanien Μαυριτανία Mauritania Maŭritanujo Mauritania Mauritaania Mauritania موریتانی Mauritania Mauritanie Mauritanie an Mháratáin Moratàinea Mauritania מאוריטניה Mauretanija Mauritánia Mauritania Mauritania Máritanía Mauritania モーリタニア 모리타니 Mauritania Мавритания Mauritanija Mauritānija മൗറിറ്റാനിയ Мавритани Mauritania Mauritanië Mauritania Mauritania Mauretania Mauritânia Mauritânia Mauritania Мавритания Mauritánia Mavretanija Mauritani Мауританија Mauretanien Moritania มอริเตเนีย Moritanya Мавритания Мавританія Mavritaniya Mauritania 毛里塔尼亚 茅利塔尼亞
MS مونتسرات Мантсерат Монтсерат Montserrat Monserat Montserrat Montserrat Montserrat Montserrat Μονσεράτ Montserrat Montserrat Montserrat Montserrat Montserrat مونت‌سرات Montserrat Montserrat Montserrat Montsarat Montsarat Montserrat מונסראט Montserrat Montserrat Montserrat Montserrat Montserrat Montserrat モントセラト 몬트세라트 Montserrat Монтсеррат Montseratas Montserrata മൊണ്ടെസരത്ത് Монтсеррат Montserrat Montserrat Montserrat Montserrat Montserrat Montserrat Montserrat Montserrat Монтсеррат Montserrat Montserrat Montserat Монсерат Montserrat Montserrat มอนต์เซอร์รัต Montserrat Монтсеррат Монтсеррат Montserrat Montserrat 蒙特塞拉特 蒙哲臘
MT مالطا Мальта Малта Malta Malta Malta Malta Malta Malta Μάλτα Malta Malto Malta Malta Malta مالت Malta Malte Malte Málta Malta Malta מלטה Malta Málta Malta Malta Malta Malta マルタ 몰타 Malta Мальта Malta Malta മാൾട്ട Мальта Malta Malta Malta Malta Malta Malta Malta Malta Мальта Malta Malta Maltë Малта Malta Malta มอลตา Malta Мальта Мальта Malta Malta 马耳他 馬爾他
MU موريشيوس Маўрыкій Мавриций Moris Mauricijus Maurici Mauricius Mauritius Mauritius Μαυρίκιος Mauritius Maŭricio Mauricio Mauritius Maurizio موریس Mauritius Maurice Maurice Oileán Mhuirís Na h-Eileanan Mhoiriseas Mauricio מאוריציוס Mauricijus Mauritius Mauritius Mauritius Máritíus Mauritius モーリシャス 모리셔스 Mauritius Маврикий Mauricijus Maurīcija മൗറീഷ്യസ് Маврикий Mauritius Mauritius Mauritius Mauritius Mauritius Maurício Maurício Mauritius Маврикий Maurícius Mauritius Mauritius Маурицијус Mauritius Morisi มอริเชียส Mauritius Маврикий Маврікій Mavrikiy Mauritius 毛里求斯 模里西斯
MV جزر المالديف Мальдывы Малдиви Maldivez Maldivi Maldives Maledivy Maldiverne Malediven Μαλδίβες Maldives Maldivoj Maldivas Maldiivid Maldivak مالدیو Malediivit Maldives Maldives Oileáin Mhaildíve Na h-Eileanan Mhaladaibh Maldivas האיים המלדיביים Maldivi Maldív-szigetek Maldives Maladewa Maldíveyjar Maldive モルディブ 몰디브 Maldives Мальдив Maldyvai Maldīvija മാലിദ്വീപ് Мальдив Maldivene Maldiven Maldivane Maldives Malediwy Maldivas Maldivas Maldive Мальдивы Maldivy Maldivi Maldive Малдиви Maldiverna Maldives มัลดีฟส์ Maldivler Мальдив утраулары Мальдіви Maldiv orollari Maldives 马尔代夫 馬爾地夫
MW ملاوي Малаві Малави Malawi Malavi Malawi Malawi Malawi Malawi Μαλάουι Malawi Malavio Malaui Malawi Malawi مالاوی Malawi Malawi Malawi an Mhaláiv Malabhaidh Malawi מלאווי Malavi Malawi Malawi Malawi Malaví Malawi マラウイ 말라위 Malawi Малави Malavis Malāvija മലാവി Малави Malawi Malawi Malawi Malawi Malawi Malaui Malaui Malawi Малави Malawi Malavi Malavi Малави Malawi Malawi มาลาวี Malavi Малави Малаві Malavi Malawi 马拉维 馬拉威
MX المكسيك Мексіка Мексико Mecʼhiko Meksiko Mèxic Mexiko Mexico Mexiko Μεξικό Mexico Meksiko México Mehhiko Mexiko مکزیک Meksiko Mexique Mexique Meicsiceo Meagsago México מקסיקו Meksiko Mexikó Mexico Meksiko Mexíkó Messico メキシコ 멕시코 Mexico Мексика Meksika Meksika മെക്സിക്കോ Мексик Mexico Mexico Mexico Mexico Meksyk México México Mexic Мексика Mexiko Mehika Meksikë Мексико Mexiko Meksiko เม็กซิโก Meksika Мексика Мексика Meksika Mexico 墨西哥 墨西哥
MY ماليزيا Малайзія Малайзия Malaysia Malezija Malàisia Malajsie Malaysia Malaysia Μαλαισία Malaysia Malajzio Malasia Malaisia Malaysia مالزی Malesia Malaisie Malaisie an Mhalaeisia Malaidhsea Malaisia מלזיה Malezija Malajzia Malaysia Malaysia Malasía Malaysia マレーシア 말레이시아 Malaysia Малайзия Malaizija Malaizija മലേഷ്യ Малайз Malaysia Maleisië Malaysia Malaysia Malezja Malásia Malásia Malaysia Малайзия Malajzia Malezija Malajzi Малезија Malaysia Malesia มาเลเซีย Malezya Малайзия Малайзія Malayziya Malaysia 马来西亚 馬來西亞
MZ موزمبيق Мазамбік Мозамбик Mozambik Mozambik Moçambic Mosambik Mozambique Mosambik Μοζαμβίκη Mozambique Mozambiko Mozambique Mosambiik Mozambike موزامبیک Mosambik Mozambique Mozambique Mósaimbíc Mòsaimbic Mozambique מוזמביק Mozambik Mozambik Mozambique Mozambik Mósambík Mozambico モザンビーク 모잠비크 Mozambique Мозамбик Mozambikas Mozambika മൊസാംബിക്ക് Мозамбик Mosambik Mozambique Mosambik Mozambique Mozambik Moçambique Moçambique Mozambic Мозамбик Mozambik Mozambik Mozambik Мозамбик Moçambique Msumbiji โมซัมบิก Mozambik Мозамбик Мозамбік Mozambik Mozambique 莫桑比克 莫三比克
NA ناميبيا Намібія Намибия Namibia Namibija Namíbia Namibie Namibia Namibia Ναμίμπια Namibia Namibio Namibia Namiibia Namibia نامیبیا Namibia Namibie Namibie an Namaib An Namaib Namibia נמיביה Namibija Namíbia Namibia Namibia Namibía Namibia ナミビア 나미비아 Namibia Намибия Namibija Namībija നമീബിയ Намиби Namibia Namibië Namibia Namibia Namibia Namíbia Namíbia Namibia Намибия Namíbia Namibija Namibi Намибија Namibia Namibia นามิเบีย Namibya Намибия Намібія Namibiya Namibia 纳米比亚 納米比亞
NC كاليدونيا الجديدة Новая Каледонія Нова Каледония Kaledonia Nevez Nova Kaledonija Nova Caledònia Nová Kaledonie Ny Kaledonien Neukaledonien Νέα Καληδονία New Caledonia Nov-Kaledonio Nueva Caledonia Uus-Kaledoonia Kaledonia Berria کالدونیای جدید Uusi-Kaledonia Nouvelle-Calédonie Nouvelle-Calédonie an Nua-Chaladóin Cailleann Nuadh Nova Caledonia קלדוניה החדשה Nova Kaledonija Új-Kaledónia Nove Caledonia Kaledonia Baru Nýja-Kaledónía Nuova Caledonia ニューカレドニア 뉴칼레도니아 New Caledonia Жаңы Каледония Naujoji Kaledonija Jaunkaledonija ന്യൂ കാലിഡോണിയ Шинэ Каледони Ny-Caledonia Nieuw-Caledonië Ny-Caledonia New Caledonia Nowa Kaledonia Nova Caledônia Nova Caledônia Noua Caledonie Новая Каледония Nová Kaledónia Nova Kaledonija Kaledoni e Re Нова Каледонија Nya Kaledonien New Caledonia นิวแคลิโดเนีย Yeni Kaledonya Яңа Каледония Нова Каледонія Yangi Kaledoniya New Caledonia 新喀里多尼亚 新喀里多尼亞
NE النيجر Нігер Нигер Niger Niger Níger Niger Niger Niger Νίγηρας Niger Niĝero Níger Niger Niger نیجر Niger Niger Niger an Nígir Nìgeir Níxer ניז׳ר Niger Niger Niger Niger Níger Niger ニジェール 니제르 Niger Нигер Nigeris Nigēra നൈജർ Нигер Niger Niger Niger Niger Niger Níger Níger Niger Нигер Niger Niger Niger Нигер Niger Niger ไนเจอร์ Nijer Нигер Нігер Niger Niger 尼日尔 尼日
NF جزيرة نورفولك Востраў Норфалк остров Норфолк Enez Norfolk Ostrvo Norfolk Norfolk Norfolk Norfolk Island Norfolkinsel Νήσος Νόρφολκ Norfolk Island Norfolkinsulo Isla Norfolk Norfolk Norfolk uhartea جزیرهٔ نورفولک Norfolkinsaari Île Norfolk Île Norfolk Oileán Norfolk Eilean Norfolk Illa Norfolk האי נורפוק Otok Norfolk Norfolk-sziget Insula Norfolk Kepulauan Norfolk Norfolkeyja Isola Norfolk ノーフォーク島 노퍽섬 Norfolk Island Норфолк аралы Norfolko sala Norfolkas sala നോർഫോക് ദ്വീപ് Норфолк арал Norfolkøya Norfolk Norfolkøya Norfolk Island Norfolk Ilha Norfolk Ilha Norfolk Insula Norfolk о-в Норфолк Norfolk Norfolški otok Ishulli Norfolk Острво Норфок Norfolkön Kisiwa cha Norfolk เกาะนอร์ฟอล์ก Norfolk Adası Норфолк утравы Острів Норфолк Norfolk oroli Đảo Norfolk 诺福克岛 諾福克島
NG نيجيريا Нігерыя Нигерия Nigeria Nigerija Nigèria Nigérie Nigeria Nigeria Νιγηρία Nigeria Niĝerio Nigeria Nigeeria Nigeria نیجریه Nigeria Nigéria Nigéria an Nigéir Nigèiria Nixeria ניגריה Nigerija Nigéria Nigeria Nigeria Nígería Nigeria ナイジェリア 나이지리아 Nigeria Нигерия Nigerija Nigērija നൈജീരിയ Нигери Nigeria Nigeria Nigeria Nigeria Nigeria Nigéria Nigéria Nigeria Нигерия Nigéria Nigerija Nigeri Нигерија Nigeria Nigeria ไนจีเรีย Nijerya Нигерия Нігерія Nigeriya Nigeria 尼日利亚 奈及利亞
NI نيكاراغوا Нікарагуа Никарагуа Nicaragua Nikaragva Nicaragua Nikaragua Nicaragua Nicaragua Νικαράγουα Nicaragua Nikaragvo Nicaragua Nicaragua Nikaragua نیکاراگوئه Nicaragua Nicaragua Nicaragua Nicearagua Niocaragua Nicaragua ניקרגואה Nikaragva Nicaragua Nicaragua Nikaragua Níkaragva Nicaragua ニカラグア 니카라과 Nicaragua Никарагуа Nikaragva Nikaragva നിക്കരാഗ്വ Никарагуа Nicaragua Nicaragua Nicaragua Nicaragua Nikaragua Nicarágua Nicarágua Nicaragua Никарагуа Nikaragua Nikaragva Nikaragua Никарагва Nicaragua Nikaragwa นิการากัว Nikaragua Никарагуа Нікараґуа Nikaragua Nicaragua 尼加拉瓜 尼加拉瓜
NL هولندا Нідэрланды Нидерландия Izelvroioù Holandija Països Baixos Nizozemsko Holland Niederlande Ολλανδία Netherlands Nederlando Países Bajos Holland Herbehereak هلند Alankomaat Pays-Bas Pays-Bas an Ísiltír Na Tìrean Ìsle Países Baixos הולנד Nizozemska Hollandia Nederlandia Belanda Holland Paesi Bassi オランダ 네덜란드 Netherlands Нидерланд Nyderlandai Nīderlande നെതർലാൻഡ്‌സ് Нидерланд Nederland Nederland Nederland Netherlands Holandia Países Baixos Países Baixos Țările de Jos Нидерланды Holandsko Nizozemska Holandë Холандија Nederländerna Uholanzi เนเธอร์แลนด์ Hollanda Нидерланд Нідерланди Niderlandiya Hà Lan 荷兰 荷蘭
NO النرويج Нарвегія Норвегия Norvegia Norveška Noruega Norsko Norge Norwegen Νορβηγία Norway Norvegujo Noruega Norra Norvegia نروژ Norja Norvège Norvège an Iorua Nirribhidh Noruega נורווגיה Norveška Norvégia Norvegia Norwegia Noregur Norvegia ノルウェー 노르웨이 Norway Норвегия Norvegija Norvēģija നോർവെ Норвеги Norge Noorwegen Noreg Norway Norwegia Noruega Noruega Norvegia Норвегия Nórsko Norveška Norvegji Норвешка Norge Norway นอร์เวย์ Norveç Норвегия Норвеґія Norvegiya Na Uy 挪威 挪威
NP نيبال Непал Непал Nepal Nepal Nepal Nepál Nepal Nepal Νεπάλ Nepal Nepalo Nepal Nepal Nepal نپال Nepal Népal Népal Neipeal Neapàl Nepal נפאל Nepal Nepál Nepal Nepal Nepal Nepal ネパール 네팔 Nepal Непал Nepalas Nepāla നേപ്പാൾ Балба Nepal Nepal Nepal Nepal Nepal Nepal Nepal Nepal Непал Nepál Nepal Nepal Непал Nepal Nepal เนปาล Nepal Непал Непал Nepal Nepal 尼泊尔 尼泊爾
NR ناورو Науру Науру Nauru Nauru Nauru Nauru Nauru Nauru Ναουρού Nauru Nauro Nauru Nauru Nauru نائورو Nauru Nauru Nauru Nárú Nabhru Nauru נאורו Nauru Nauru Nauru Nauru Nárú Nauru ナウル 나우루 Nauru Науру Nauru Nauru നൗറു Науру Nauru Nauru Nauru Nauru Nauru Nauru Nauru Nauru Науру Nauru Nauru Nauru Науру Nauru Nauru นาอูรู Nauru Науру Науру Nauru Nauru 瑙鲁 諾魯
NU نيوي Ніуэ Ниуе Niue Niue Niue Niue Niue Niue Νιούε Niue Niuo Niue Niue Niue نیوئه Niue Niue Niue Niue Niue Niue ניווה Niue Niue Niue Niue Niue Niue ニウエ 니우에 Niue Ниуэ Niujė Niue ന്യൂയി Ниуэ Niue Niue Niue Niue Niue Niue Niue Niue Ниуэ Niue Niue Niue Ниуе Niue Niue นีอูเอ Niue Ниуэ Ніуе Niue Niue 纽埃 紐埃島
NZ نيوزيلندا Новая Зеландыя Нова Зеландия Zeland-Nevez Novi Zeland Nova Zelanda Nový Zéland New Zealand Neuseeland Νέα Ζηλανδία New Zealand Nov-Zelando Nueva Zelanda Uus-Meremaa Zeelanda Berria نیوزیلند Uusi-Seelanti Nouvelle-Zélande Nouvelle-Zélande an Nua-Shéalainn Sealainn Nuadh Nova Zelandia ניו זילנד Novi Zeland Új-Zéland Nove Zelanda Selandia Baru Nýja-Sjáland Nuova Zelanda ニュージーランド 뉴질랜드 New Zealand Жаңы Зеландия Naujoji Zelandija Jaunzēlande ന്യൂസിലാൻറ് Шинэ Зеланд New Zealand Nieuw-Zeeland New Zealand New Zealand Nowa Zelandia Nova Zelândia Nova Zelândia Noua Zeelandă Новая Зеландия Nový Zéland Nova Zelandija Zelandë e Re Нови Зеланд Nya Zeeland Nyuzilandi นิวซีแลนด์ Yeni Zelanda Яңа Зеландия Нова Зеландія Yangi Zelandiya New Zealand 新西兰 紐西蘭
OM عُمان Аман Оман Oman Oman Oman Omán Oman Oman Ομάν Oman Omano Omán Omaan Oman عمان Oman Oman Oman Óman Omàn Omán עומאן Oman Omán Oman Oman Óman Oman オマーン 오만 Oman Оман Omanas Omāna ഒമാൻ Оман Oman Oman Oman Oman Oman Omã Omã Oman Оман Omán Oman Oman Оман Oman Oman โอมาน Umman Оман Оман Ummon Oman 阿曼 阿曼
PA بنما Панама Панама Panamá Panama Panamà Panama Panama Panama Παναμάς Panama Panamo Panamá Panama Panama پاناما Panama Panama Panama Panama Panama Panamá פנמה Panama Panama Panama Panama Panama Panamá パナマ 파나마 Panama Панама Panama Panama പനാമ Панам Panama Panama Panama Panama Panama Panamá Panamá Panama Панама Panama Panama Panama Панама Panama Panama ปานามา Panama Панама Панама Panama Panama 巴拿马 巴拿馬
PE بيرو Перу Перу Perou Peru Perú Peru Peru Peru Περού Peru Peruo Perú Peruu Peru پرو Peru Pérou Pérou Peiriú Pearù O Perú פרו Peru Peru Peru Peru Perú Perù ペルー 페루 Peru Перу Peru Peru പെറു Перу Peru Peru Peru Peru Peru Peru Peru Peru Перу Peru Peru Peru Перу Peru Peru เปรู Peru Перу Перу Peru Peru 秘鲁 秘魯
PF بولينيزيا الفرنسية Французская Палінезія Френска Полинезия Polinezia Cʼhall Francuska Polinezija Polinèsia Francesa Francouzská Polynésie Fransk Polynesien Französisch-Polynesien Γαλλική Πολυνησία French Polynesia Franca Polinezio Polinesia Francesa Prantsuse Polüneesia Polinesia Frantsesa پلی‌نزی فرانسه Ranskan Polynesia Polynésie française Polynésie française Polainéis na Fraince Poilinèis na Frainge A Polinesia Francesa פולינזיה הצרפתית Francuska Polinezija Francia Polinézia Polynesia francese Polinesia Prancis Franska Pólýnesía Polinesia francese 仏領ポリネシア 프랑스령 폴리네시아 French Polynesia Полинезия (франциялык) Prancūzijos Polinezija Francijas Polinēzija ഫ്രഞ്ച് പോളിനേഷ്യ Францын Полинез Fransk Polynesia Frans-Polynesië Fransk Polynesia French Polynesia Polinezja Francuska Polinésia Francesa Polinésia Francesa Polinezia Franceză Французская Полинезия Francúzska Polynézia Francoska Polinezija Polinezia Franceze Француска Полинезија Franska Polynesien Polynesia ya Ufaransa เฟรนช์โปลินีเซีย Fransız Polinezyası Француз Полинезиясе Французька Полінезія Fransuz Polineziyasi Polynesia thuộc Pháp 法属波利尼西亚 法屬玻里尼西亞
PG بابوا غينيا الجديدة Папуа-Новая Гвінея Папуа-Нова Гвинея Papoua Ginea-Nevez Papua Nova Gvineja Papua Nova Guinea Papua-Nová Guinea Papua Ny Guinea Papua-Neuguinea Παπούα Νέα Γουινέα Papua New Guinea Papuo-Nov-Gvineo Papúa Nueva Guinea Paapua Uus-Guinea Papua Ginea Berria پاپوا گینهٔ نو Papua-Uusi-Guinea Papouasie-Nouvelle-Guinée Papouasie-Nouvelle-Guinée Nua-Ghuine Phapua Gini Nuadh Phaputhach Papúa-Nova Guinea פפואה גינאה החדשה Papua Nova Gvineja Pápua Új-Guinea Papua Nove Guinea Papua Nugini Papúa Nýja-Gínea Papua Nuova Guinea パプアニューギニア 파푸아뉴기니 Papua New Guinea Папуа-Жаңы Гвинея Papua Naujoji Gvinėja Papua-Jaungvineja പാപ്പുവ ന്യൂ ഗിനിയ Папуа Шинэ Гвиней Papua Ny-Guinea Papoea-Nieuw-Guinea Papua Ny-Guinea Papua New Guinea Papua-Nowa Gwinea Papua-Nova Guiné Papua-Nova Guiné Papua-Noua Guinee Папуа — Новая Гвинея Papua-Nová Guinea Papua Nova Gvineja Guineja e Re-Papua Папуа Нова Гвинеја Papua Nya Guinea Papua New Guinea ปาปัวนิวกินี Papua Yeni Gine Папуа - Яңа Гвинея Папуа-Нова Ґвінея Papua Yangi Gvineya Papua New Guinea 巴布亚新几内亚 巴布亞紐幾內亞
PH الفلبين Філіпіны Филипини Filipinez Filipini Filipines Filipíny Filippinerne Philippinen Φιλιππίνες Philippines Filipinoj Filipinas Filipiinid Filipinak فیلیپین Filippiinit Philippines Philippines na hOileáin Fhilipíneacha Na h-Eileanan Filipineach Filipinas הפיליפינים Filipini Fülöp-szigetek Philippinas Filipina Filippseyjar Filippine フィリピン 필리핀 Philippines Филиппин Filipinai Filipīnas ഫിലിപ്പീൻസ് Филиппин Filippinene Filipijnen Filippinane Philippines Filipiny Filipinas Filipinas Filipine Филиппины Filipíny Filipini Filipine Филипини Filippinerna Ufilipino ฟิลิปปินส์ Filipinler Филиппин Філіппіни Filippin Philippines 菲律宾 菲律賓
PK باكستان Пакістан Пакистан Pakistan Pakistan Pakistan Pákistán Pakistan Pakistan Πακιστάν Pakistan Pakistano Pakistán Pakistan Pakistan پاکستان Pakistan Pakistan Pakistan an Phacastáin Pagastàn Paquistán פקיסטן Pakistan Pakisztán Pakistan Pakistan Pakistan Pakistan パキスタン 파키스탄 Pakistan Пакистан Pakistanas Pakistāna പാക്കിസ്ഥാൻ Пакистан Pakistan Pakistan Pakistan Pakistan Pakistan Paquistão Paquistão Pakistan Пакистан Pakistan Pakistan Pakistan Пакистан Pakistan Pakistani ปากีสถาน Pakistan Пакистан Пакистан Pokiston Pakistan 巴基斯坦 巴基斯坦
PL بولندا Польшча Полша Polonia Poljska Polònia Polsko Polen Polen Πολωνία Poland Pollando Polonia Poola Polonia لهستان Puola Pologne Pologne an Pholainn A Phòlainn Polonia פולין Poljska Lengyelország Polonia Polandia Pólland Polonia ポーランド 폴란드 Poland Польша Lenkija Polija പോളണ്ട് Польш Polen Polen Polen Poland Polska Polônia Polônia Polonia Польша Poľsko Poljska Poloni Пољска Polen Poland โปแลนด์ Polonya Польша Польща Polsha Ba Lan 波兰 波蘭
PM سان بيير ومكويلون Сен-П’ер і Мікелон Сен Пиер и Микелон Sant-Pêr-ha-Mikelon Sveti Petar i Mikelon Saint-Pierre-et-Miquelon Saint-Pierre a Miquelon Saint Pierre og Miquelon St. Pierre und Miquelon Σεν Πιερ και Μικελόν St. Pierre & Miquelon Sent-Piero kaj Mikelono San Pedro y Miquelón Saint-Pierre ja Miquelon Saint-Pierre eta Mikelune سن پیر و میکلن Saint-Pierre ja Miquelon Saint-Pierre-et-Miquelon Saint-Pierre-et-Miquelon San Pierre agus Miquelon Saint Pierre agus Miquelon Saint Pierre et Miquelon סנט פייר ומיקלון Saint-Pierre-et-Miquelon Saint-Pierre és Miquelon St. Pierre e Miquelon Saint Pierre dan Miquelon Sankti Pierre og Miquelon Saint-Pierre e Miquelon サンピエール島・ミクロン島 생피에르 미클롱 St. Pierre & Miquelon Сен-Пьер жана Микелон Sen Pjeras ir Mikelonas Senpjēra un Mikelona സെന്റ് പിയറി ആൻഡ് മിക്വലൻ Сент-Пьер ба Микело Saint-Pierre-et-Miquelon Saint-Pierre en Miquelon Saint-Pierre-et-Miquelon St. Pierre & Miquelon Saint-Pierre i Miquelon São Pedro e Miquelão São Pedro e Miquelão Saint-Pierre și Miquelon Сен-Пьер и Микелон Saint Pierre a Miquelon Saint Pierre in Miquelon Shën-Pier dhe Mikelon Сен Пјер и Микелон S:t Pierre och Miquelon Santapierre na Miquelon แซงปีแยร์และมีเกอลง Saint Pierre ve Miquelon Сен-Пьер һәм Микелон Сен-Пʼєр і Мікелон Sen-Pyer va Mikelon Saint Pierre và Miquelon 圣皮埃尔和密克隆群岛 聖皮埃與密克隆群島
PN جزر بيتكيرن Астравы Піткэрн Острови Питкерн Enez Pitcairn Pitkernska Ostrva Illes Pitcairn Pitcairnovy ostrovy Pitcairn Pitcairninseln Νήσοι Πίτκερν Pitcairn Islands Pitkarna Insulo Islas Pitcairn Pitcairni saared Pitcairn uharteak جزایر پیت‌کرن Pitcairn Îles Pitcairn Îles Pitcairn Oileáin Pitcairn Eileanan Pheit a Chàirn Illas Pitcairn איי פיטקרן Otoci Pitcairn Pitcairn-szigetek Pitcairn Islands Kepulauan Pitcairn Pitcairn-eyjar Isole Pitcairn ピトケアン諸島 핏케언 섬 Pitcairn Islands Питкэрн аралдары Pitkerno salos Pitkērnas salas പിറ്റ്‌കെയ്‌ൻ ദ്വീപുകൾ Питкэрн арлууд Pitcairnøyene Pitcairneilanden Pitcairn Pitcairn Islands Pitcairn Ilhas Pitcairn Ilhas Pitcairn Insulele Pitcairn о-ва Питкэрн Pitcairnove ostrovy Pitcairn Ishujt Pitkern Питкерн Pitcairnöarna Visiwa vya Pitcairn หมู่เกาะพิตแคร์น Pitcairn Adaları Питкэрн утраулары Острови Піткерн Pitkern orollari Quần đảo Pitcairn 皮特凯恩群岛 皮特肯群島
PR بورتوريكو Пуэрта-Рыка Пуерто Рико Puerto Rico Porto Riko Puerto Rico Portoriko Puerto Rico Puerto Rico Πουέρτο Ρίκο Puerto Rico Puerto-Riko Puerto Rico Puerto Rico Puerto Rico پورتوریکو Puerto Rico Porto Rico Porto Rico Pórtó Ríce Porto Rìceo Porto Rico פוארטו ריקו Portoriko Puerto Rico Puerto Rico Puerto Riko Púertó Ríkó Portorico プエルトリコ 푸에르토리코 Puerto Rico Пуэрто-Рико Puerto Rikas Puertoriko പോർട്ടോ റിക്കോ Пуэрто-Рико Puerto Rico Puerto Rico Puerto Rico Puerto Rico Portoryko Porto Rico Porto Rico Puerto Rico Пуэрто-Рико Portoriko Portoriko Porto-Riko Порторико Puerto Rico Puerto Rico เปอร์โตริโก Porto Riko Пуэрто-Рико Пуерто-Ріко Puerto-Riko Puerto Rico 波多黎各 波多黎各
PS فلسطين Палесціна Палестина Palestina Palestina Palestina Palestina Palæstina Palästina Παλαιστίνη Palestine Palestine Palestina Palestiina Palestina فلسطین Palestiina Palestine Palestine an Phalaistín Palastain Palestina פלסטין Palestina Palesztina Palestine Palestina Palestína Palestina パレスチナ 팔레스타인 Palestine Палестина Palestina Palestine പലസ്‌തീൻ Палестин Palestina Palestina Palestina Palestine Palestyna Palestina Palestina Palestina Палестина Palestínska samospráva Palestina Palestinë Палестина Palestina Palestina ปาเลสไตน์ Filistin Palestine Палестина Falastin Palestine 巴勒斯坦 巴勒斯坦
PT البرتغال Партугалія Португалия Portugal Portugal Portugal Portugalsko Portugal Portugal Πορτογαλία Portugal Portugalujo Portugal Portugal Portugal پرتغال Portugali Portugal Portugal an Phortaingéil A Phortagail Portugal פורטוגל Portugal Portugália Portugal Portugal Portúgal Portogallo ポルトガル 포르투갈 Portugal Португалия Portugalija Portugāle പോർച്ചുഗൽ Португал Portugal Portugal Portugal Portugal Portugalia Portugal Portugal Portugalia Португалия Portugalsko Portugalska Portugali Португалија Portugal Ureno โปรตุเกส Portekiz Португалия Портуґалія Portugaliya Bồ Đào Nha 葡萄牙 葡萄牙
PW بالاو Палау Палау Palau Palau Palau Palau Palau Palau Παλάου Palau Belaŭo Palaos Belau Palau پالائو Palau Palaos Palaos Oileáin Palau Palabh Palau פלאו Palau Palau Palau Palau Palá Palau パラオ 팔라우 Palau Палау Palau Palau പലാവു Палау Palau Palau Palau Palau Palau Palau Palau Palau Палау Palau Palau Palau Палау Palau Palau ปาเลา Palau Палау Палау Palau Palau 帕劳 帛琉
PY باراغواي Парагвай Парагвай Paraguay Paragvaj Paraguai Paraguay Paraguay Paraguay Παραγουάη Paraguay Paragvajo Paraguay Paraguay Paraguai پاراگوئه Paraguay Paraguay Paraguay Paragua Paraguaidh O Paraguai פרגוואי Paragvaj Paraguay Paraguay Paraguay Paragvæ Paraguay パラグアイ 파라과이 Paraguay Парагвай Paragvajus Paragvaja പരാഗ്വേ Парагвай Paraguay Paraguay Paraguay Paraguay Paragwaj Paraguai Paraguai Paraguay Парагвай Paraguaj Paragvaj Paraguai Парагвај Paraguay Paraguay ปารากวัย Paraguay Парагвай Параґвай Paragvay Paraguay 巴拉圭 巴拉圭
QA قطر Катар Катар Qatar Katar Qatar Katar Qatar Katar Κατάρ Qatar Kataro Catar Katar Qatar قطر Qatar Qatar Qatar Catar Catar Qatar קטאר Katar Katar Qatar Qatar Katar Qatar カタール 카타르 Qatar Катар Kataras Katara ഖത്തർ Катар Qatar Qatar Qatar Qatar Katar Catar Catar Qatar Катар Katar Katar Katar Катар Qatar Qatar กาตาร์ Katar Катар Катар Qatar Qatar 卡塔尔 卡達
QO أوقيانوسيا النائية Аддаленыя тэрыторыі Акіяніі Отдалечени острови на Океания Oseania diabell Vanjska Okeanija Territoris allunyats dOceania vnější Oceánie Ydre Oceanien Äußeres Ozeanien Περιφερειακή Ωκεανία Outlying Oceania Outlying Oceania Territorios alejados de Oceanía Okeaania hajasaared Mugaz kanpoko Ozeania بخش‌های دورافتادهٔ اقیانوسیه ulkomeri régions éloignées de lOcéanie régions éloignées de lOcéanie an Aigéine Imeallach Roinn Iomallach a Chuain Sèimh Territorios afastados de Oceanía טריטוריות באוקיאניה Vanjska područja Oceanije Külső-Óceánia Oceania remote Oseania Luar Ytri Eyjaálfa Oceania lontana オセアニア周辺地域 오세아니아 외곽 Outlying Oceania Алыскы Океания Nuošali Okeanija Okeānijas attālās salas ദ്വീപസമൂഹം Номхон далайг тойрсон улс орнууд Ytre Oseania overig Oceanië Ytre Oseania Outlying Oceania Oceania — wyspy dalekie Oceania Remota Oceania Remota Oceania Periferică Внешняя Океания ostatné Tichomorie Ostala oceanija Oqeania e Largët (Lindja e Largët) Океанија (удаљена острва) yttre öar i Oceanien Oceania ya Nje เอาต์ไลอิงโอเชียเนีย Uzak Okyanusya Outlying Oceania Віддалена Океанія Tashqi Okeaniya Vùng xa xôi thuộc Châu Đại Dương 大洋洲边远群岛 大洋洲邊疆群島
RE روينيون Рэюньён Реюнион Ar Reünion Reunion Illa de la Reunió Réunion Réunion Réunion Ρεϊνιόν Réunion Reunio Reunión Réunion Reunion رئونیون Réunion La Réunion La Réunion Réunion Réunion Reunión ראוניון Réunion Réunion Réunion Réunion Réunion Riunione レユニオン 리유니온 Réunion Реюньон Reunjonas Reinjona റീയൂണിയൻ Реюнион Réunion Réunion Réunion Réunion Reunion Reunião Reunião Réunion Реюньон Réunion Reunion Reunion Реинион Réunion Reunion เรอูนียง Reunion Реюньон Реюньйон Reyunion Réunion 留尼汪 留尼旺
RO رومانيا Румынія Румъния Roumania Rumunija Romania Rumunsko Rumænien Rumänien Ρουμανία Romania Rumanujo Rumanía Rumeenia Errumania رومانی Romania Roumanie Roumanie an Rómáin Romàinia Romanía רומניה Rumunjska Románia Romania Rumania Rúmenía Romania ルーマニア 루마니아 Romania Румыния Rumunija Rumānija റൊമാനിയ Румын Romania Roemenië Romania Romania Rumunia Romênia Romênia România Румыния Rumunsko Romunija Rumani Румунија Rumänien Romania โรมาเนีย Romanya Румыния Румунія Ruminiya Romania 罗马尼亚 羅馬尼亞
RS صربيا Сербія Сърбия Serbia Srbija Sèrbia Srbsko Serbien Serbien Σερβία Serbia Serbia Serbia Serbia Serbia صربستان Serbia Serbie Serbie an tSeirbia An t-Sèirb Serbia סרביה Srbija Szerbia Serbia Serbia Serbía Serbia セルビア 세르비아 Serbia Сербия Serbija Serbija സെർബിയ Серби Serbia Servië Serbia Serbia Serbia Sérvia Sérvia Serbia Сербия Srbsko Srbija Serbi Србија Serbien Serbia เซอร์เบีย Sırbistan Сербия Сербія Serbiya Serbia 塞尔维亚 塞爾維亞
RU روسيا Расія Русия Rusia Rusija Rússia Rusko Rusland Russland Ρωσία Russia Rusujo Rusia Venemaa Errusia روسیه Venäjä Russie Russie an Rúis An Ruis Rusia רוסיה Rusija Oroszország Russia Rusia Rússland Russia ロシア 러시아 Russi Россия Rusija Krievija റഷ്യ Орос Russland Rusland Russland Уӕрӕсе Rosja Rússia Rússia Rusia Россия Rusko Rusija Rusi Русија Ryssland Urusi รัสเซีย Rusya Россия Росія Rossiya Nga 俄罗斯 俄羅斯
RW رواندا Руанда Руанда Rwanda Ruanda Ruanda Rwanda Rwanda Ruanda Ρουάντα Rwanda Ruando Ruanda Rwanda Ruanda رواندا Ruanda Rwanda Rwanda Ruanda Rubhanda Ruanda רואנדה Ruanda Ruanda Ruanda Rwanda Rúanda Ruanda ルワンダ 르완다 Rwanda Руанда Ruanda Ruanda റുവാണ്ട Руанда Rwanda Rwanda Rwanda Rwanda Rwanda Ruanda Ruanda Rwanda Руанда Rwanda Ruanda Ruandë Руанда Rwanda Rwanda รวันดา Ruanda Руанда Руанда Ruanda Rwanda 卢旺达 盧安達
SA المملكة العربية السعودية Саудаўская Аравія Саудитска Арабия Arabia Saoudat Saudijska Arabija Aràbia Saudita Saúdská Arábie Saudi-Arabien Saudi-Arabien Σαουδική Αραβία Saudi Arabia Saŭda Arabujo Arabia Saudí Saudi Araabia Saudi Arabia عربستان سعودی Saudi-Arabia Arabie saoudite Arabie saoudite an Araib Shádach Aràibia nan Sabhd Arabia Saudita ערב הסעודית Saudijska Arabija Szaúd-Arábia Arabia Saudita Arab Saudi Sádi-Arabía Arabia Saudita サウジアラビア 사우디아라비아 Saudi Arabia Сауд Арабиясы Saudo Arabija Saūda Arābija സൗദി അറേബ്യ Саудын Араб Saudi-Arabia Saoedi-Arabië Saudi-Arabia Saudi Arabia Arabia Saudyjska Arábia Saudita Arábia Saudita Arabia Saudită Саудовская Аравия Saudská Arábia Saudova Arabija Arabi Saudite Саудијска Арабија Saudiarabien Saudia ซาอุดีอาระเบีย Suudi Arabistan Согуд Гарәбстаны Саудівська Аравія Saudiya Arabistoni Ả Rập Xê-út 沙特阿拉伯 沙烏地阿拉伯
SB جزر سليمان Саламонавы астравы Соломонови острови Inizi Salomon Solomonska Ostrva Illes Salomó Šalamounovy ostrovy Salomonøerne Salomonen Νήσοι Σολομώντος Solomon Islands Salomonoj Islas Salomón Saalomoni Saared Salomon Uharteak جزایر سلیمان Salomonsaaret Îles Salomon Îles Salomon Oileáin Sholomón Eileanan Sholaimh Illas Salomón איי שלמה Salomonski Otoci Salamon-szigetek Insulas Solomon Kepulauan Solomon Salómonseyjar Isole Salomone ソロモン諸島 솔로몬 제도 Solomon Islands Соломон аралдары Saliamono Salos Zālamana salas സോളമൻ ദ്വീപുകൾ Соломоны арлууд Salomonøyene Salomonseilanden Salomonøyane Solomon Islands Wyspy Salomona Ilhas Salomão Ilhas Salomão Insulele Solomon Соломоновы Острова Šalamúnove ostrovy Salomonovi otoki Ishujt Solomon Соломонска Острва Salomonöarna Visiwa vya Solomon หมู่เกาะโซโลมอน Solomon Adaları Сөләйман утраулары Соломонові Острови Solomon orollari Quần đảo Solomon 所罗门群岛 索羅門群島
SC سيشل Сейшэльскія астравы Сейшели Sechelez Sejšeli Seychelles Seychely Seychellerne Seychellen Σεϋχέλλες Seychelles Sejŝeloj Seychelles Seišellid Seychelleak سیشل Seychellit Seychelles Seychelles na Séiséil Na h-Eileanan Sheiseall Seychelles איי סיישל Sejšeli Seychelle-szigetek Seychelles Seychelles Seychelles-eyjar Seychelles セーシェル 세이셸 Seychelles Сейшел аралдары Seišeliai Seišelu salas സീഷെൽസ് Сейшелийн арлууд Seychellene Seychellen Seychellane Seychelles Seszele Seicheles Seicheles Seychelles Сейшельские Острова Seychely Sejšeli Sejshelle Сејшели Seychellerna Ushelisheli เซเชลส์ Seyşeller Сейшел утраулары Сейшельські Острови Seyshel orollari Seychelles 塞舌尔 塞席爾
SD السودان Судан Судан Soudan Sudan Sudan Súdán Sudan Sudan Σουδάν Sudan Sudano Sudán Sudaan Sudan سودان Sudan Soudan Soudan an tSúdáin Sudàn O Sudán סודן Sudan Szudán Sudan Sudan Súdan Sudan スーダン 수단 Sudan Судан Sudanas Sudāna സുഡാൻ Судан Sudan Soedan Sudan Sudan Sudan Sudão Sudão Sudan Судан Sudán Sudan Sudan Судан Sudan Sudan ซูดาน Sudan Судан Судан Sudan Sudan 苏丹 蘇丹
SE السويد Швецыя Швеция Sveden Švedska Suècia Švédsko Sverige Schweden Σουηδία Sweden Svedujo Suecia Rootsi Suedia سوئد Ruotsi Suède Suède an tSualainn An t-Suain Suecia שוודיה Švedska Svédország Svedia Swedia Svíþjóð Svezia スウェーデン 스웨덴 Sweden Швеция Švedija Zviedrija സ്വീഡൻ Швед Sverige Zweden Sverige Sweden Szwecja Suécia Suécia Suedia Швеция Švédsko Švedska Suedi Шведска Sverige Uswidi สวีเดน İsveç Швеция Швеція Shvetsiya Thụy Điển 瑞典 瑞典
SG سنغافورة Сінгапур Сингапур Singapour Singapur Singapur Singapur Singapore Singapur Σιγκαπούρη Singapore Singapuro Singapur Singapur Singapur سنگاپور Singapore Singapour Singapour Singeapór Singeapòr Singapur סינגפור Singapur Szingapúr Singapore Singapura Singapúr Singapore シンガポール 싱가포르 Singapore Сингапур Singapūras Singapūra സിംഗപ്പൂർ Сингапур Singapore Singapore Singapore Singapore Singapur Singapura Singapura Singapore Сингапур Singapur Singapur Singapor Сингапур Singapore Singapore สิงคโปร์ Singapur Сингапур Сінгапур Singapur Singapore 新加坡 新加坡
SH سانت هيلينا Востраў Святой Алены Света Елена Saint-Helena Sveta Helena Saint Helena Svatá Helena St. Helena St. Helena Αγία Ελένη St. Helena Sent-Heleno Santa Elena Saint Helena Santa Helena سنت هلن Saint Helena Sainte-Hélène Sainte-Hélène San Héilin Eilean Naomh Eilidh Santa Helena סנט הלנה Sveta Helena Szent Ilona St. Helena Saint Helena Sankti Helena SantElena セントヘレナ 세인트헬레나 St. Helena Ыйык Елена Šv. Elenos Sala Sv.Helēnas sala സെന്റ് ഹെലീന Сент Хелена St. Helena Sint-Helena Saint Helena St. Helena Wyspa Świętej Heleny Santa Helena Santa Helena Sfânta Elena о-в Св. Елены Svätá Helena Sveta Helena Shën-Elenë Света Јелена S:t Helena St. Helena เซนต์เฮเลนา Saint Helena St. Helena Острів Святої Єлени Muqaddas Yelena oroli St. Helena 圣赫勒拿 聖赫勒拿島
SI سلوفينيا Славенія Словения Slovenia Slovenija Eslovènia Slovinsko Slovenien Slowenien Σλοβενία Slovenia Slovenujo Eslovenia Sloveenia Eslovenia اسلوونی Slovenia Slovénie Slovénie an tSlóivéin An t-Slòbhain Eslovenia סלובניה Slovenija Szlovénia Slovenia Slovenia Slóvenía Slovenia スロベニア 슬로베니아 Slovenia Словения Slovėnija Slovēnija സ്ലോവേനിയ Словени Slovenia Slovenië Slovenia Slovenia Słowenia Eslovênia Eslovênia Slovenia Словения Slovinsko Slovenija Slloveni Словенија Slovenien Slovenia สโลวีเนีย Slovenya Словения Словенія Sloveniya Slovenia 斯洛文尼亚 斯洛維尼亞
SJ سفالبارد وجان ماين Шпіцберген і Ян-Маен Свалбард и Ян Майен Svalbard Svalbard i Jan Majen Svalbard i Jan Mayen Špicberky a Jan Mayen Svalbard og Jan Mayen Spitzbergen und Jan Mayen Σβάλμπαρντ και Γιαν Μαγιέν Svalbard & Jan Mayen Svalbardo kaj Jan-Majen-insulo Svalbard y Jan Mayen Svalbard ja Jan Mayen Svalbard eta Jan Mayen uharteak سوالبارد و یان ماین Huippuvuoret ja Jan Mayen Svalbard et Jan Mayen Svalbard et Jan Mayen Svalbard agus Jan Mayen Svalbard agus Jan Mayen Svalbard e Jan Mayen סבאלברד ויאן מאיין Svalbard i Jan Mayen Svalbard és Jan Mayen Svalbard e Jan Mayen Kepulauan Svalbard dan Jan Mayen Svalbarði og Jan Mayen Svalbard e Jan Mayen スバールバル諸島・ヤンマイエン島 스발바르제도-얀마웬섬 Svalbard & Jan Mayen Шпицберген жана Ян-Майен Svalbardas ir Janas Majenas Svalbāra un Jana Majena sala സ്വാൽബാഡും ജാൻ മായേനും Свалбард ба Ян Майен Svalbard og Jan Mayen Spitsbergen en Jan Mayen Svalbard og Jan Mayen Svalbard & Jan Mayen Svalbard i Jan Mayen Svalbard e Jan Mayen Svalbard e Jan Mayen Svalbard și Jan Mayen Шпицберген и Ян-Майен Svalbard a Jan Mayen Svalbard in Jan Mayen Svalbard e Jan-Majen Свалбард и Јан Мајен Svalbard och Jan Mayen Svalbard na Jan Mayen สฟาลบาร์และยานไมเอน Svalbard ve Jan Mayen Шпицберген һәм Ян-Майен Шпіцберген та Ян-Маєн Shpitsbergen va Yan-Mayen Svalbard và Jan Mayen 斯瓦尔巴和扬马延 挪威屬斯瓦巴及尖棉
SK سلوفاكيا Славакія Словакия Slovakia Slovačka Eslovàquia Slovensko Slovakiet Slowakei Σλοβακία Slovakia Slovakujo Eslovaquia Slovakkia Eslovakia اسلواکی Slovakia Slovaquie Slovaquie an tSlóvaic An t-Slòbhac Eslovaquia סלובקיה Slovačka Szlovákia Slovachia Slovakia Slóvakía Slovacchia スロバキア 슬로바키아 Slovakia Словакия Slovakija Slovākija സ്ലോവാക്യ Словак Slovakia Slowakije Slovakia Slovakia Słowacja Eslováquia Eslováquia Slovacia Словакия Slovensko Slovaška Sllovaki Словачка Slovakien Slovakia สโลวะเกีย Slovakya Словакия Словаччина Slovakiya Slovakia 斯洛伐克 斯洛伐克
SL سيراليون Сьера-Леонэ Сиера Леоне Sierra Leone Sijera Leone Sierra Leone Sierra Leone Sierra Leone Sierra Leone Σιέρα Λεόνε Sierra Leone Siera-Leono Sierra Leona Sierra Leone Sierra Leona سیرالئون Sierra Leone Sierra Leone Sierra Leone Siarra Leon Siarra Leòmhann Serra Leoa סיירה לאונה Sijera Leone Sierra Leone Sierra Leone Sierra Leone Síerra Leóne Sierra Leone シエラレオネ 시에라리온 Sierra Leone Сьерра-Леоне Siera Leonė Sjerraleone സിയെറ ലിയോൺ Сьерра-Леоне Sierra Leone Sierra Leone Sierra Leone Sierra Leone Sierra Leone Serra Leoa Serra Leoa Sierra Leone Сьерра-Леоне Sierra Leone Sierra Leone Sierra-Leone Сијера Леоне Sierra Leone Siera Leoni เซียร์ราลีโอน Sierra Leone Сьерра-Леоне Сьєрра-Леоне Syerra-Leone Sierra Leone 塞拉利昂 獅子山
SM سان مارينو Сан-Марына Сан Марино San Marino San Marino San Marino San Marino San Marino San Marino Άγιος Μαρίνος San Marino San-Marino San Marino San Marino San Marino سان‌مارینو San Marino Saint-Marin Saint-Marin San Mairíne San Marino San Marino סן מרינו San Marino San Marino San Marino San Marino San Marínó San Marino サンマリノ 산마리노 San Marino Сан Марино San Marinas Sanmarīno സാൻ മറിനോ Сан-Марино San Marino San Marino San Marino San Marino San Marino San Marino San Marino San Marino Сан-Марино San Maríno San Marino San-Marino Сан Марино San Marino San Marino ซานมาริโน San Marino Сан-Марино Сан-Маріно San-Marino San Marino 圣马力诺 聖馬利諾
SN السنغال Сенегал Сенегал Senegal Senegal Senegal Senegal Senegal Senegal Σενεγάλη Senegal Senegalo Senegal Senegal Senegal سنگال Senegal Sénégal Sénégal an tSeineagáil Seanagal Senegal סנגל Senegal Szenegál Senegal Senegal Senegal Senegal セネガル 세네갈 Senegal Сенегал Senegalas Senegāla സെനഗൽ Сенегал Senegal Senegal Senegal Senegal Senegal Senegal Senegal Senegal Сенегал Senegal Senegal Senegal Сенегал Senegal Senegali เซเนกัล Senegal Сенегал Сенегал Senegal Senegal 塞内加尔 塞內加爾
SO الصومال Самалі Сомалия Somalia Somalija Somàlia Somálsko Somalia Somalia Σομαλία Somalia Somalujo Somalia Somaalia Somalia سومالی Somalia Somalie Somalie an tSomáil Somàilia Somalia סומליה Somalija Szomália Somalia Somalia Sómalía Somalia ソマリア 소말리아 Somalia Сомали Somalis Somālija സോമാലിയ Сомали Somalia Somalië Somalia Somalia Somalia Somália Somália Somalia Сомали Somálsko Somalija Somali Сомалија Somalia Somalia โซมาเลีย Somali Сомали Сомалі Somali Somalia 索马里 索馬利亞
SR سورينام Сурынам Суринам Surinam Surinam Surinam Surinam Surinam Suriname Σουρινάμ Suriname Surinamo Surinam Suriname Surinam سورینام Suriname Suriname Suriname Suranam Suranam Suriname סורינאם Surinam Suriname Suriname Suriname Súrínam Suriname スリナム 수리남 Suriname Суринам Surinamas Surinama സുരിനാം Суринам Surinam Suriname Surinam Suriname Surinam Suriname Suriname Suriname Суринам Surinam Surinam Surinami Суринам Surinam Suriname ซูรินาเม Surinam Суринам Сурінам Surinam Suriname 苏里南 蘇利南
SS جنوب السودان Паўднёвы Судан Южен Судан Susoudan Južni Sudan Sudan del Sud Jižní Súdán Sydsudan Südsudan Νότιο Σουδάν South Sudan Sud-Sudano Sudán del Sur Lõuna-Sudaan Hego Sudan سودان جنوبی Etelä-Sudan Soudan du Sud Soudan du Sud an tSúdáin Theas Sudàn a Deas O Sudán do Sur דרום סודן Južni Sudan Dél-Szudán Sudan del Sud Sudan Selatan Suður-Súdan Sud Sudan 南スーダン 남수단 South Sudan Түштүк Судан Pietų Sudanas Dienvidsudāna ദക്ഷിണ സുഡാൻ Өмнөд Судан Sør-Sudan Zuid-Soedan Sør-Sudan South Sudan Sudan Południowy Sudão do Sul Sudão do Sul Sudanul de Sud Южный Судан Južný Sudán Južni Sudan Sudani i Jugut Јужни Судан Sydsudan Sudan Kusini ซูดานใต้ Güney Sudan Көньяк Судан Південний Судан Janubiy Sudan Nam Sudan 南苏丹 南蘇丹
ST ساو تومي وبرينسيبي Сан-Тамэ і Прынсіпі Сао Томе и Принсипи São Tomé ha Príncipe Sao Tome i Principe São Tomé i Príncipe Svatý Tomáš a Princův ostrov São Tomé og Príncipe São Tomé und Príncipe Σάο Τομέ και Πρίνσιπε São Tomé & Príncipe Sao-Tomeo kaj Principeo Santo Tomé y Príncipe São Tomé ja Príncipe Sao Tome eta Principe سائوتومه و پرینسیپ São Tomé ja Príncipe Sao Tomé-et-Principe Sao Tomé-et-Principe São Tomé agus Príncipe São Tomé agus Príncipe San Tomé e Príncipe סאו טומה ופרינסיפה Sveti Toma i Princip São Tomé és Príncipe São Tomé & Príncipe Sao Tome dan Principe Saó Tóme og Prinsípe São Tomé e Príncipe サントメ・プリンシペ 상투메 프린시페 São Tomé & Príncipe Сан-Томе жана Принсипи San Tomė ir Prinsipė Santome un Prinsipi സാവോ ടോമും പ്രിൻസിപെയും Сан-Томе ба Принсипи São Tomé og Príncipe Sao Tomé en Principe São Tomé og Príncipe São Tomé & Príncipe Wyspy Świętego Tomasza i Książęca São Tomé e Príncipe São Tomé e Príncipe São Tomé și Príncipe Сан-Томе и Принсипи Svätý Tomáš a Princov ostrov Sao Tome in Principe Sao-Tome e Principe Сао Томе и Принципе São Tomé och Príncipe São Tomé na Príncipe เซาตูเมและปรินซิปี Sao Tome ve Principe Сан-Томе һәм Принсипи Сан-Томе і Прінсіпі San-Tome va Prinsipi São Tomé và Príncipe 圣多美和普林西比 聖多美普林西比
SV السلفادور Сальвадор Салвадор Salvador Salvador El Salvador Salvador El Salvador El Salvador Ελ Σαλβαδόρ El Salvador Salvadoro El Salvador El Salvador El Salvador السالوادور El Salvador Salvador Salvador an tSalvadóir An Salbhador O Salvador אל סלבדור Salvador Salvador El Salvador El Salvador El Salvador El Salvador エルサルバドル 엘살바도르 El Salvador Эль-Сальвадор Salvadoras Salvadora എൽ സാൽവദോർ Эль Сальвадор El Salvador El Salvador El Salvador El Salvador Salwador El Salvador El Salvador El Salvador Сальвадор Salvádor Salvador Salvador Салвадор El Salvador El Salvador เอลซัลวาดอร์ El Salvador Сальвадор Сальвадор Salvador El Salvador 萨尔瓦多 薩爾瓦多
SX سانت مارتن Сінт-Мартэн Синт Мартен Sint Maarten Sint Marten Sint Maarten Svatý Martin (Nizozemsko) Sint Maarten Sint Maarten Άγιος Μαρτίνος (Ολλανδικό τμήμα) Sint Maarten Sint Maarten Sint Maarten Sint Maarten Sint Maarten سنت مارتن Sint Maarten Saint-Martin (partie néerlandaise) Saint-Martin (partie néerlandaise) Sint Maarten Sint Maarten Sint Maarten סנט מארטן Sint Maarten Sint Maarten Sint Maarten Sint Maarten Sankti Martin Sint Maarten シント・マールテン 신트마르턴 Sint Maarten Синт-Мартен Sint Martenas Sintmārtena സിന്റ് മാർട്ടെൻ Синт Мартен Sint Maarten Sint-Maarten Sint Maarten Sint Maarten Sint Maarten Sint Maarten Sint Maarten Sint-Maarten Синт-Мартен Svätý Martin (hol.) Sint Maarten Sint-Marten Свети Мартин (Холандија) Sint Maarten Sint Maarten ซินต์มาร์เทน Sint Maarten Синт-Мартен Сінт-Мартен Sint-Marten Sint Maarten 荷属圣马丁 荷屬聖馬丁
SY سوريا Сірыя Сирия Siria Sirija Síria Sýrie Syrien Syrien Συρία Syria Sirio Siria Süüria Siria سوریه Syyria Syrie Syrie an tSiria Siridhea Siria סוריה Sirija Szíria Syria Suriah Sýrland Siria シリア 시리아 Syria Сирия Sirija Sīrija സിറിയ Сири Syria Syrië Syria Syria Syria Síria Síria Siria Сирия Sýria Sirija Siri Сирија Syrien Syria ซีเรีย Suriye Сүрия Сирія Suriya Syria 叙利亚 敘利亞
SZ إسواتيني Эсватыні Есватини Eswatini Esvatini eSwatini Svazijsko Eswatini Eswatini Σουαζιλάνδη Eswatini Svazilando Esuatini Svaasimaa Swazilandia اسواتینی Swazimaa Eswatini Eswatini eSuaitíní eSwatini Eswatini אסוואטיני Esvatini Szváziföld Swazilandia eSwatini Svasíland Swaziland エスワティニ 에스와티니 Eswatini Свазиленд Svazilandas Svatini സ്വാസിലാന്റ് Эсватини Eswatini eSwatini Swaziland Eswatini Eswatini Essuatíni Essuatíni eSwatini Эсватини Eswatini Esvatini Esvatini Свазиленд Swaziland Uswazi เอสวาตีนี Esvatini Свазиленд Есватіні Svazilend Swaziland 斯威士兰 史瓦帝尼
TA تريستان دا كونا Трыстан-да-Кунья Тристан да Куня Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Τριστάν ντα Κούνια Tristan da Cunha Tristan da Cunha Tristán de Acuña Tristan da Cunha Tristan da Cunha تریستان دا کونا Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristán da Cunha טריסטן דה קונה Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha トリスタン・ダ・クーニャ 트리스탄다쿠나 Tristan da Cunha Тристан-да-Кунья Tristanas da Kunja Tristana da Kuņas salas ട്രിസ്റ്റൻ ഡ കൂന Тристан да Кунъя Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristão da Cunha Tristão da Cunha Tristan da Cunha Тристан-да-Кунья Tristan da Cunha Tristan da Cunha Tristan-da-Kuna Тристан да Куња Tristan da Cunha Tristan da Cunha ทริสตันดาคูนา Tristan da Cunha Tristan da Cunha Трістан-да-Кунья Tristan-da-Kunya Tristan da Cunha 特里斯坦-达库尼亚群岛 特里斯坦達庫尼亞群島
TC جزر توركس وكايكوس Астравы Цёркс і Кайкас острови Търкс и Кайкос Inizi Turks ha Caicos Ostrva Turks i Kaikos Illes Turks i Caicos Turks a Caicos Turks- og Caicosøerne Turks- und Caicosinseln Νήσοι Τερκς και Κάικος Turks & Caicos Islands Turks & Caicos Islands Islas Turcas y Caicos Turks ja Caicos Turk eta Caico uharteak جزایر تورکس و کایکوس Turks- ja Caicossaaret Îles Turques-et-Caïques Îles Turques-et-Caïques Oileáin na dTurcach agus Caicos Na h-Eileanan Turcach is Caiceo Illas Turks e Caicos איי טרקס וקייקוס Otoci Turks i Caicos Turks- és Caicos-szigetek Insulas Turcos e Caicos Kepulauan Turks dan Caicos Turks- og Caicoseyjar Isole Turks e Caicos タークス・カイコス諸島 터크스 케이커스 제도 Turks & Caicos Islands Түркс жана Кайкос аралдары Terkso ir Kaikoso Salos Tērksas un Kaikosas salas ടർക്ക്‌സും കെയ്‌ക്കോ ദ്വീപുകളും Турк ба Кайкосын Арлууд Turks- og Caicosøyene Turks- en Caicoseilanden Turks- og Caicosøyane Turks & Caicos Islands Turks i Caicos Ilhas Turcas e Caicos Ilhas Turcas e Caicos Insulele Turks și Caicos о-ва Тёркс и Кайкос Turks a Caicos Otoki Turks in Caicos Ishujt Turks dhe Kaikos Острва Туркс и Каикос Turks- och Caicosöarna Visiwa vya Turks na Caicos หมู่เกาะเติกส์และหมู่เกาะเคคอส Turks ve Caicos Adaları Теркс һәм Кайкос утраулары Острови Теркс і Кайкос Turks va Kaykos orollari Quần đảo Turks và Caicos 特克斯和凯科斯群岛 土克斯及開科斯群島
TD تشاد Чад Чад Tchad Čad Txad Čad Tchad Tschad Τσαντ Chad Ĉado Chad Tšaad Txad چاد Tšad Tchad Tchad Sead An t-Seàd Chad צ׳אד Čad Csád Tchad Cad Tsjad Ciad チャド 차드 Chad Чад Čadas Čada ഛാഡ് Чад Tsjad Tsjaad Tsjad Chad Czad Chade Chade Ciad Чад Čad Čad Çad Чад Tchad Chad ชาด Çad Чад Чад Chad Chad 乍得 查德
TF الأقاليم الجنوبية الفرنسية Французскія паўднёвыя тэрыторыі Френски южни територии Douaroù aostral Frañs Francuske Južne Teritorije Territoris Australs Francesos Francouzská jižní území De Franske Besiddelser i Det Sydlige Indiske Ocean og Antarktis Französische Süd- und Antarktisgebiete Γαλλικά Νότια Εδάφη French Southern Territories French Southern Territories Territorios Australes Franceses Prantsuse Lõunaalad Hegoaldeko lurralde frantsesak سرزمین‌های جنوب فرانسه Ranskan eteläiset alueet Terres australes françaises Terres australes françaises Críocha Francacha Dheisceart an Domhain Ranntairean a Deas na Frainge Territorios Austrais Franceses הטריטוריות הדרומיות של צרפת Francuski južni i antarktički teritoriji Francia Déli Területek Territorios meridional francese Wilayah Selatan Perancis Frönsku suðlægu landsvæðin Terre australi francesi 仏領極南諸島 프랑스 남부 지방 French Southern Territories Франциянын Түштүктөгү аймактары Prancūzijos Pietų sritys Francijas Dienvidjūru teritorija ഫ്രഞ്ച് ദക്ഷിണ ഭൂപ്രദേശം Францын өмнөд газар нутаг De franske sørterritorier Franse Gebieden in de zuidelijke Indische Oceaan Dei franske sørterritoria French Southern Territories Francuskie Terytoria Południowe i Antarktyczne Territórios Franceses do Sul Territórios Franceses do Sul Teritoriile Australe și Antarctice Franceze Французские Южные территории Francúzske južné a antarktické územia Francosko južno ozemlje Territoret Jugore Franceze Француске Јужне Територије Franska sydterritorierna Himaya za Kusini za Kifaranza เฟรนช์เซาเทิร์นเทร์ริทอรีส์ Fransız Güney Toprakları Франциянең Көньяк Территорияләре Французькі Південні Території Fransuz Janubiy hududlari Lãnh thổ phía Nam Thuộc Pháp 法属南部领地 法屬南部屬地
TG توغو Тога Того Togo Togo Togo Togo Togo Togo Τόγκο Togo Togolo Togo Togo Togo توگو Togo Togo Togo Tóga Togo Togo טוגו Togo Togo Togo Togo Tógó Togo トーゴ 토고 Togo Того Togas Togo ടോഗോ Того Togo Togo Togo Togo Togo Togo Togo Togo Того Togo Togo Togo Того Togo Togo โตโก Togo Того Того Togo Togo 多哥 多哥
TH تايلاند Тайланд Тайланд Thailand Tajland Tailàndia Thajsko Thailand Thailand Ταϊλάνδη Thailand Tajlando Tailandia Tai Thailandia تایلند Thaimaa Thaïlande Thaïlande an Téalainn Dùthaich nan Tàidh Tailandia תאילנד Tajland Thaiföld Thailandia Thailand Taíland Thailandia タイ 태국 Thailand Тайланд Tailandas Taizeme തായ്‌ലാൻഡ് Тайланд Thailand Thailand Thailand Thailand Tajlandia Tailândia Tailândia Thailanda Таиланд Thajsko Tajska Tajlandë Тајланд Thailand Tailandi ไทย Tayland Тайланд Таїланд Tailand Thái Lan 泰国 泰國
TJ طاجيكستان Таджыкістан Таджикистан Tadjikistan Tadžikistan Tadjikistan Tádžikistán Tadsjikistan Tadschikistan Τατζικιστάν Tajikistan Taĝikujo Tayikistán Tadžikistan Tajikistan تاجیکستان Tadžikistan Tadjikistan Tadjikistan an Táidsíceastáin Taidigeastàn Taxiquistán טג׳יקיסטן Tadžikistan Tádzsikisztán Tadzhikistan Tajikistan Tadsjikistan Tagikistan タジキスタン 타지키스탄 Tajikistan Тажикстан Tadžikija Tadžikistāna താജിക്കിസ്ഥാൻ Тажикистан Tadsjikistan Tadzjikistan Tadsjikistan Tajikistan Tadżykistan Tadjiquistão Tadjiquistão Tadjikistan Таджикистан Tadžikistan Tadžikistan Taxhikistan Таџикистан Tadzjikistan Tajikistani ทาจิกิสถาน Tacikistan Таҗикстан Таджикистан Tojikiston Tajikistan 塔吉克斯坦 塔吉克
TK توكيلو Такелау Токелау Tokelau Tokelau Tokelau Tokelau Tokelau Tokelau Τοκελάου Tokelau Tokelau Tokelau Tokelau Tokelau توکلائو Tokelau Tokelau Tokelau Tócalá Tokelau Tokelau טוקלאו Tokelau Tokelau Tokelau Tokelau Tókelá Tokelau トケラウ 토켈라우 Tokelau Токелау Tokelau Tokelau ടോക്കെലൂ Токелау Tokelau Tokelau Tokelau Tokelau Tokelau Tokelau Tokelau Tokelau Токелау Tokelau Tokelau Tokelau Токелау Tokelau Tokelau โตเกเลา Tokelau Токелау Токелау Tokelau Tokelau 托克劳 托克勞群島
TL تيمور - ليشتي Тымор-Лешці Източен Тимор Timor-Leste Istočni Timor Timor Oriental Východní Timor Timor-Leste Timor-Leste Τιμόρ-Λέστε Timor-Leste Timor-Leste Timor-Leste Ida-Timor Ekialdeko Timor تیمور-لسته Itä-Timor Timor oriental Timor oriental Tíomór Thoir Timor-Leste Timor Leste טימור-לסטה Timor-Leste Kelet-Timor Timor del Est Timor Leste Tímor-Leste Timor Est 東ティモール 동티모르 Timor-Leste Тимор-Лесте Rytų Timoras Austrumtimora തിമോർ-ലെസ്റ്റെ Тимор-Лесте Øst-Timor Oost-Timor Timor-Leste (Aust-Timor) Timor-Leste Timor Wschodni Timor-Leste Timor-Leste Timor-Leste Восточный Тимор Východný Timor Timor-Leste Timor-Leste Тимор-Лесте (Источни Тимор) Östtimor Timor-Leste ติมอร์-เลสเต Timor-Leste Тимор-Лесте Тімор-Лешті Timor-Leste Timor-Leste 东帝汶 東帝汶
TM تركمانستان Туркменістан Туркменистан Turkmenistan Turkmenistan Turkmenistan Turkmenistán Turkmenistan Turkmenistan Τουρκμενιστάν Turkmenistan Turkmenujo Turkmenistán Türkmenistan Turkmenistan ترکمنستان Turkmenistan Turkménistan Turkménistan an Tuircméanastáin Turcmanastàn Turkmenistán טורקמניסטן Turkmenistan Türkmenisztán Turkmenistan Turkimenistan Túrkmenistan Turkmenistan トルクメニスタン 투르크메니스탄 Turkmenistan Түркмөнстан Turkmėnistanas Turkmenistāna തുർക്ക്മെനിസ്ഥാൻ Туркменистан Turkmenistan Turkmenistan Turkmenistan Turkmenistan Turkmenistan Turcomenistão Turcomenistão Turkmenistan Туркменистан Turkménsko Turkmenistan Turkmenistan Туркменистан Turkmenistan Turkmenistan เติร์กเมนิสถาน Türkmenistan Төркмәнстан Туркменістан Turkmaniston Turkmenistan 土库曼斯坦 土庫曼
TN تونس Туніс Тунис Tunizia Tunis Tunísia Tunisko Tunesien Tunesien Τυνησία Tunisia Tunizio Túnez Tuneesia Tunisia تونس Tunisia Tunisie Tunisie an Túinéis Tuinisea Tunisia תוניסיה Tunis Tunézia Tunisia Tunisia Túnis Tunisia チュニジア 튀니지 Tunisia Тунис Tunisas Tunisija ടുണീഷ്യ Тунис Tunisia Tunesië Tunisia Tunisia Tunezja Tunísia Tunísia Tunisia Тунис Tunisko Tunizija Tunizi Тунис Tunisien Tunisia ตูนิเซีย Tunus Тунис Туніс Tunis Tunisia 突尼斯 突尼西亞
TO تونغا Тонга Тонга Tonga Tonga Tonga Tonga Tonga Tonga Τόνγκα Tonga Tongo Tonga Tonga Tonga تونگا Tonga Tonga Tonga Tonga Tonga Tonga טונגה Tonga Tonga Tonga Tonga Tonga Tonga トンガ 통가 Tonga Тонга Tonga Tonga ടോംഗ Тонга Tonga Tonga Tonga Tonga Tonga Tonga Tonga Tonga Тонга Tonga Tonga Tonga Тонга Tonga Tonga ตองกา Tonga Тонга Тонґа Tonga Tonga 汤加 東加
TR تركيا Турцыя Турция Turkia Turska Turquia Turecko Tyrkiet Türkei Τουρκία Turkey Turkujo Turquía Türgi Turkia ترکیه Turkki Turquie Turquie an Tuirc An Tuirc Turquía טורקיה Turska Törökország Turchia Turki Tyrkland Turchia トルコ 터키 Turkey Түркия Turkija Turcija തുർക്കി Турк Tyrkia Turkije Tyrkia Turkey Turcja Turquia Turquia Turcia Турция Turecko Turčija Turqi Турска Turkiet Uturuki ตุรกี Türkiye Төркия Туреччина Turkiya Thổ Nhĩ Kỳ 土耳其 土耳其
TT ترينيداد وتوباغو Трынідад і Табага Тринидад и Тобаго Trinidad ha Tobago Trinidad i Tobago Trinitat i Tobago Trinidad a Tobago Trinidad og Tobago Trinidad und Tobago Τρινιντάντ και Τομπάγκο Trinidad & Tobago Trinidado kaj Tobago Trinidad y Tobago Trinidad ja Tobago Trinidad eta Tobago ترینیداد و توباگو Trinidad ja Tobago Trinité-et-Tobago Trinité-et-Tobago Oileán na Tríonóide agus Tobága Trianaid agus Tobago Trinidad e Tobago טרינידד וטובגו Trinidad i Tobago Trinidad és Tobago Trinidad e Tobago Trinidad dan Tobago Trínidad og Tóbagó Trinidad e Tobago トリニダード・トバゴ 트리니다드 토바고 Trinidad & Tobago Тринидад жана Тобаго Trinidadas ir Tobagas Trinidāda un Tobāgo ട്രിനിഡാഡും ടുബാഗോയും Тринидад ба Тобаго Trinidad og Tobago Trinidad en Tobago Trinidad og Tobago Trinidad & Tobago Trynidad i Tobago Trinidad e Tobago Trinidad e Tobago Trinidad și Tobago Тринидад и Тобаго Trinidad a Tobago Trinidad in Tobago Trinidad e Tobago Тринидад и Тобаго Trinidad och Tobago Trinidad na Tobago ตรินิแดดและโตเบโก Trinidad ve Tobago Тринидад һәм Тобаго Трінідад і Тобаґо Trinidad va Tobago Trinidad và Tobago 特立尼达和多巴哥 千里達及托巴哥
TV توفالو Тувалу Тувалу Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Τουβαλού Tuvalu Tuvalo Tuvalu Tuvalu Tuvalu تووالو Tuvalu Tuvalu Tuvalu Tuvalu Tubhalu Tuvalu טובאלו Tuvalu Tuvalu Tuvalu Tuvalu Túvalú Tuvalu ツバル 투발루 Tuvalu Тувалу Tuvalu Tuvalu ടുവാലു Тувалу Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Тувалу Tuvalu Tuvalu Tuvalu Тувалу Tuvalu Tuvalu ตูวาลู Tuvalu Тувалу Тувалу Tuvalu Tuvalu 图瓦卢 吐瓦魯
TW تايوان Тайвань Тайван Taiwan Tajvan Taiwan Tchaj-wan Taiwan Taiwan Ταϊβάν Taiwan Tajvano Taiwán Taiwan Taiwan تایوان Taiwan Taïwan Taïwan an Téaváin Taidh-Bhàn Taiwán טייוואן Tajvan Tajvan Taiwan Taiwan Taívan Taiwan 台湾 대만 Taiwan Тайвань Taivanas Taivāna തായ്‌വാൻ Тайвань Taiwan Taiwan Taiwan Taiwan Tajwan Taiwan Taiwan Taiwan Тайвань Taiwan Tajvan Tajvan Тајван Taiwan Taiwan ไต้หวัน Tayvan Тайвань Тайвань Tayvan Đài Loan 台湾 台灣
TZ تنزانيا Танзанія Танзания Tanzania Tanzanija Tanzània Tanzanie Tanzania Tansania Τανζανία Tanzania Tanzanio Tanzania Tansaania Tanzania تانزانیا Tansania Tanzanie Tanzanie an Tansáin An Tansan Tanzania טנזניה Tanzanija Tanzánia Tanzania Tanzania Tansanía Tanzania タンザニア 탄자니아 Tanzania Танзания Tanzanija Tanzānija ടാൻസാനിയ Танзани Tanzania Tanzania Tanzania Tanzania Tanzania Tanzânia Tanzânia Tanzania Танзания Tanzánia Tanzanija Tanzani Танзанија Tanzania Tanzania แทนซาเนีย Tanzanya Танзания Танзанія Tanzaniya Tanzania 坦桑尼亚 坦尚尼亞
UA أوكرانيا Украіна Украйна Ukraina Ukrajina Ucraïna Ukrajina Ukraine Ukraine Ουκρανία Ukraine Ukrajno Ucrania Ukraina Ukraina اوکراین Ukraina Ukraine Ukraine an Úcráin An Ucràin Ucraína אוקראינה Ukrajina Ukrajna Ukraina Ukraina Úkraína Ucraina ウクライナ 우크라이나 Ukraine Украина Ukraina Ukraina ഉക്രെയ്‌ൻ Украин Ukraina Oekraïne Ukraina Ukraine Ukraina Ucrânia Ucrânia Ucraina Украина Ukrajina Ukrajina Ukrainë Украјина Ukraina Ukraine ยูเครน Ukrayna Украина Україна Ukraina Ukraina 乌克兰 烏克蘭
UG أوغندا Уганда Уганда Ouganda Uganda Uganda Uganda Uganda Uganda Ουγκάντα Uganda Ugando Uganda Uganda Uganda اوگاندا Uganda Ouganda Ouganda Uganda Uganda Uganda אוגנדה Uganda Uganda Uganda Uganda Úganda Uganda ウガンダ 우간다 Uganda Уганда Uganda Uganda ഉഗാണ്ട Уганда Uganda Oeganda Uganda Uganda Uganda Uganda Uganda Uganda Уганда Uganda Uganda Ugandë Уганда Uganda Uganda ยูกันดา Uganda Уганда Уганда Uganda Uganda 乌干达 烏干達
UM جزر الولايات المتحدة النائية Малыя Аддаленыя астравы ЗША Отдалечени острови на САЩ Inizi diabell ar Stadoù-Unanet Američka Vanjska Ostrva Illes Perifèriques Menors dels EUA Menší odlehlé ostrovy USA Amerikanske oversøiske øer Amerikanische Überseeinseln Απομακρυσμένες Νησίδες ΗΠΑ U.S. Outlying Islands Usonaj malgrandaj insuloj Islas menores alejadas de EE. UU. Ühendriikide hajasaared Ameriketako Estatu Batuetako Kanpoaldeko Uharte Txikiak جزایر دورافتادهٔ ایالات متحده Yhdysvaltain erillissaaret Îles mineures éloignées des États-Unis Îles mineures éloignées des États-Unis Oileáin Imeallacha S.A.M. Meanbh-Eileanan Iomallach nan SA Illas Menores Distantes dos Estados Unidos האיים המרוחקים הקטנים של ארה״ב Mali udaljeni otoci SAD-a Az USA lakatlan külbirtokai U.S. Outlying Islands Kepulauan Terluar A.S. Smáeyjar Bandaríkjanna Altre isole americane del Pacifico 合衆国領有小離島 미국령 해외 제도 U.S. Outlying Islands АКШнын сырткы аралдары Jungtinių Valstijų Mažosios Tolimosios Salos ASV Mazās Aizjūras salas യു.എസ്. ദ്വീപസമൂഹങ്ങൾ Америкийн Нэгдсэн Улсын бага арлууд USAs ytre øyer Kleine afgelegen eilanden van de Verenigde Staten USAs ytre småøyar U.S. Outlying Islands Dalekie Wyspy Mniejsze Stanów Zjednoczonych Ilhas Menores Distantes dos EUA Ilhas Menores Distantes dos EUA Insulele Îndepărtate ale S.U.A. Внешние малые о-ва (США) Menšie odľahlé ostrovy USA Stranski zunanji otoki Združenih držav Ishujt Periferikë të SHBA-së Удаљена острва САД USA:s yttre öar Visiwa Vidogo vya Nje vya Marekani หมู่เกาะรอบนอกของสหรัฐอเมริกา ABD Küçük Harici Adaları АКШ Кече Читтәге утраулары Віддалені острови США AQSH yondosh orollari Các tiểu đảo xa của Hoa Kỳ 美国本土外小岛屿 美國本土外小島嶼
US الولايات المتحدة Злучаныя Штаты Съединени щати Stadoù-Unanet Sjedinjene Države Estats Units Spojené státy USA Vereinigte Staaten Ηνωμένες Πολιτείες United States Usono Estados Unidos Ameerika Ühendriigid Ameriketako Estatu Batuak ایالات متحده Yhdysvallat États-Unis États-Unis Stáit Aontaithe Mheiriceá Na Stàitean Aonaichte Os Estados Unidos ארצות הברית Sjedinjene Američke Države Egyesült Államok Statos Unite Amerika Serikat Bandaríkin Stati Uniti アメリカ合衆国 미국 Statys Unys Кошмо Штаттар Jungtinės Valstijos Amerikas Savienotās Valstis അമേരിക്കൻ ഐക്യനാടുകൾ Америкийн Нэгдсэн Улс USA Verenigde Staten USA АИШ Stany Zjednoczone Estados Unidos Estados Unidos Statele Unite ale Americii Соединенные Штаты Spojené štáty Združene države Amerike SHBA Сједињене Државе USA Marekani สหรัฐอเมริกา Amerika Birleşik Devletleri АКШ Сполучені Штати Amerika Qoshma Shtatlari Hoa Kỳ 美国 美國
UY أورغواي Уругвай Уругвай Uruguay Urugvaj Uruguai Uruguay Uruguay Uruguay Ουρουγουάη Uruguay Urugvajo Uruguay Uruguay Uruguai اروگوئه Uruguay Uruguay Uruguay Uragua Uruguaidh O Uruguai אורוגוואי Urugvaj Uruguay Uruguay Uruguay Úrúgvæ Uruguay ウルグアイ 우루과이 Uruguay Уругвай Urugvajus Urugvaja ഉറുഗ്വേ Уругвай Uruguay Uruguay Uruguay Uruguay Urugwaj Uruguai Uruguai Uruguay Уругвай Uruguaj Urugvaj Uruguai Уругвај Uruguay Uruguay อุรุกวัย Uruguay Уругвай Уруґвай Urugvay Uruguay 乌拉圭 烏拉圭
UZ أوزبكستان Узбекістан Узбекистан Ouzbekistan Uzbekistan Uzbekistan Uzbekistán Usbekistan Usbekistan Ουζμπεκιστάν Uzbekistan Uzbekujo Uzbekistán Usbekistan Uzbekistan ازبکستان Uzbekistan Ouzbékistan Ouzbékistan an Úisbéiceastáin Usbagastàn Uzbekistán אוזבקיסטן Uzbekistan Üzbegisztán Uzbekistan Uzbekistan Úsbekistan Uzbekistan ウズベキスタン 우즈베키스탄 Uzbekistan Өзбекстан Uzbekistanas Uzbekistāna ഉസ്‌ബെക്കിസ്ഥാൻ Узбекистан Usbekistan Oezbekistan Usbekistan Uzbekistan Uzbekistan Uzbequistão Uzbequistão Uzbekistan Узбекистан Uzbekistan Uzbekistan Uzbekistan Узбекистан Uzbekistan Uzibekistani อุซเบกิสถาน Özbekistan Үзбәкстан Узбекистан Oʻzbekiston Uzbekistan 乌兹别克斯坦 烏茲別克
VA الفاتيكان Ватыкан Ватикан Vatikan Vatikan Ciutat del Vaticà Vatikán Vatikanstaten Vatikanstadt Βατικανό Vatican City Vatikano Ciudad del Vaticano Vatikan Vatikano Hiria واتیکان Vatikaani État de la Cité du Vatican État de la Cité du Vatican Cathair na Vatacáine Cathair na Bhatacain Cidade do Vaticano הוותיקן Vatikanski Grad Vatikán Citate del Vaticano Vatikan Vatíkanið Città del Vaticano バチカン市国 바티칸 시국 Vatican City Ватикан Vatikano Miesto Valstybė Vatikāns വത്തിക്കാൻ Ватикан хот улс Vatikanstaten Vaticaanstad Vatikanstaten Vatican City Watykan Cidade do Vaticano Cidade do Vaticano Statul Cetății Vaticanului Ватикан Vatikán Vatikan Vatikan Ватикан Vatikanstaten Mji wa Vatican นครวาติกัน Vatikan Vatican City Ватикан Vatikan Thành Vatican 梵蒂冈 梵蒂岡
VC سانت فنسنت وجزر غرينادين Сент-Вінсент і Грэнадзіны Сейнт Винсънт и Гренадини Sant Visant hag ar Grenadinez Sveti Vinsent i Grenadin Saint Vincent i les Grenadines Svatý Vincenc a Grenadiny Saint Vincent og Grenadinerne St. Vincent und die Grenadinen Άγιος Βικέντιος και Γρεναδίνες St. Vincent & Grenadines Sent-Vincento kaj la Grenadinoj San Vicente y las Granadinas Saint Vincent ja Grenadiinid Saint Vincent eta Grenadinak سنت وینسنت و گرنادین Saint Vincent ja Grenadiinit Saint-Vincent-et-les-Grenadines Saint-Vincent-et-les-Grenadines San Uinseann agus na Greanáidíní Naomh Bhionsant agus Eileanan Greanadach San Vicente e As Granadinas סנט וינסנט והגרנדינים Sveti Vincent i Grenadini Saint Vincent és a Grenadine-szigetek Sancte Vincente e le Grenadinas Saint Vincent dan Grenadine Sankti Vinsent og Grenadíneyjar Saint Vincent e Grenadine セントビンセント及びグレナディーン諸島 세인트빈센트그레나딘 St. Vincent & Grenadines Сент-Винсент жана Гренадиндер Šventasis Vincentas ir Grenadinai Sentvinsenta un Grenadīnas സെന്റ് വിൻസെന്റും ഗ്രനെഡൈൻസും Сент-Винсент ба Гренадин St. Vincent og Grenadinene Saint Vincent en de Grenadines St. Vincent og Grenadinane St. Vincent & Grenadines Saint Vincent i Grenadyny São Vicente e Granadinas São Vicente e Granadinas Saint Vincent și Grenadinele Сент-Винсент и Гренадины Svätý Vincent a Grenadíny Saint Vincent in Grenadine Shën-Vincent dhe Grenadine Сент Винсент и Гренадини S:t Vincent och Grenadinerna St. Vincent na Grenadines เซนต์วินเซนต์และเกรนาดีนส์ Saint Vincent ve Grenadinler Сент-Винсент һәм Гренадин Сент-Вінсент і Ґренадіни Sent-Vinsent va Grenadin St. Vincent và Grenadines 圣文森特和格林纳丁斯 聖文森及格瑞那丁
VE فنزويلا Венесуэла Венецуела Venezuela Venecuela Veneçuela Venezuela Venezuela Venezuela Βενεζουέλα Venezuela Venezuelo Venezuela Venezuela Venezuela ونزوئلا Venezuela Venezuela Venezuela Veiniséala A Bheiniseala Venezuela ונצואלה Venezuela Venezuela Venezuela Venezuela Venesúela Venezuela ベネズエラ 베네수엘라 Venezuela Венесуэла Venesuela Venecuēla വെനിസ്വേല Венесуэл Venezuela Venezuela Venezuela Venezuela Wenezuela Venezuela Venezuela Venezuela Венесуэла Venezuela Venezuela Venezuelë Венецуела Venezuela Venezuela เวเนซุเอลา Venezuela Венесуэла Венесуела Venesuela Venezuela 委内瑞拉 委內瑞拉
VG جزر فيرجن البريطانية Брытанскія Віргінскія астравы Британски Вирджински острови Inizi Gwercʼh Breizh-Veur Britanska Djevičanska ostrva Illes Verges Britàniques Britské Panenské ostrovy De Britiske Jomfruøer Britische Jungferninseln Βρετανικές Παρθένες Νήσοι British Virgin Islands Britaj Virgulininsuloj Islas Vírgenes Británicas Briti Neitsisaared Birjina uharte britainiarrak جزایر ویرجین بریتانیا Brittiläiset Neitsytsaaret Îles Vierges britanniques Îles Vierges britanniques Oileáin Bhriotanacha na Maighdean Eileanan Breatannach na Maighdinn Illas Virxes Británicas איי הבתולה הבריטיים Britanski Djevičanski otoci Brit Virgin-szigetek British Virgin Islands Kepulauan Virgin Britania Raya Bresku Jómfrúaeyjar Isole Vergini Britanniche 英領ヴァージン諸島 영국령 버진아일랜드 British Virgin Islands Виргин аралдары (Британия) Didžiosios Britanijos Mergelių Salos Britu Virdžīnas ബ്രിട്ടീഷ് വെർജിൻ ദ്വീപുകൾ Британийн Виржиний арлууд De britiske jomfruøyene Britse Maagdeneilanden Dei britiske Jomfruøyane British Virgin Islands Brytyjskie Wyspy Dziewicze Ilhas Virgens Britânicas Ilhas Virgens Britânicas Insulele Virgine Britanice Виргинские о-ва (Великобритания) Britské Panenské ostrovy Britanski Deviški otoki Ishujt e Virgjër Britanikë Британска Девичанска Острва Brittiska Jungfruöarna Visiwa vya Virgin, Uingereza หมู่เกาะบริติชเวอร์จิน Britanya Virjin Adaları Британия Виргин утраулары Британські Віргінські острови Britaniya Virgin orollari Quần đảo Virgin thuộc Anh 英属维尔京群岛 英屬維京群島
VI جزر فيرجن التابعة للولايات المتحدة Амерыканскія Віргінскія астравы Американски Вирджински острови Inizi Gwercʼh ar Stadoù-Unanet Američka Djevičanska ostrva Illes Verges Nord-americanes Americké Panenské ostrovy De Amerikanske Jomfruøer Amerikanische Jungferninseln Αμερικανικές Παρθένες Νήσοι U.S. Virgin Islands Usonaj Virgulininsuloj Islas Vírgenes de EE. UU. USA Neitsisaared Birjina uharte amerikarrak جزایر ویرجین ایالات متحده Yhdysvaltain Neitsytsaaret Îles Vierges des États-Unis Îles Vierges des États-Unis Oileáin Mheiriceánacha na Maighdean Eileanan na Maighdinn aig na SA Illas Virxes Estadounidenses איי הבתולה של ארצות הברית Američki Djevičanski otoci Amerikai Virgin-szigetek U.S. Virgin Islands Kepulauan Virgin Amerika Serikat Bandarísku Jómfrúaeyjar Isole Vergini Americane 米領ヴァージン諸島 미국령 버진아일랜드 U.S. Virgin Islands Виргин аралдары (АКШ) Jungtinių Valstijų Mergelių Salos ASV Virdžīnas യു.എസ്. വെർജിൻ ദ്വീപുകൾ АНУ-ын Виржиний арлууд De amerikanske jomfruøyene Amerikaanse Maagdeneilanden Dei amerikanske Jomfruøyane U.S. Virgin Islands Wyspy Dziewicze Stanów Zjednoczonych Ilhas Virgens Americanas Ilhas Virgens Americanas Insulele Virgine Americane Виргинские о-ва (США) Americké Panenské ostrovy Ameriški Deviški otoki Ishujt e Virgjër të SHBA-së Америчка Девичанска Острва Amerikanska Jungfruöarna Visiwa vya Virgin, Marekani หมู่เกาะเวอร์จินของสหรัฐอเมริกา ABD Virjin Adaları АКШ Виргин утраулары Віргінські острови, США AQSH Virgin orollari Quần đảo Virgin thuộc Mỹ 美属维尔京群岛 美屬維京群島
VN فيتنام В’етнам Виетнам Viêt Nam Vijetnam Vietnam Vietnam Vietnam Vietnam Βιετνάμ Vietnam Vjetnamo Vietnam Vietnam Vietnam ویتنام Vietnam Vietnam Vietnam Vítneam Bhiet-Nam Vietnam וייטנאם Vijetnam Vietnám Vietnam Vietnam Víetnam Vietnam ベトナム 베트남 Vietnam Вьетнам Vietnamas Vjetnama വിയറ്റ്നാം Вьетнам Vietnam Vietnam Vietnam Vietnam Wietnam Vietnã Vietnã Vietnam Вьетнам Vietnam Vietnam Vietnam Вијетнам Vietnam Vietnam เวียดนาม Vietnam Вьетнам Вʼєтнам Vyetnam Việt Nam 越南 越南
VU فانواتو Вануату Вануату Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Βανουάτου Vanuatu Vanuatuo Vanuatu Vanuatu Vanuatu وانواتو Vanuatu Vanuatu Vanuatu Vanuatú Vanuatu Vanuatu ונואטו Vanuatu Vanuatu Vanuatu Vanuatu Vanúatú Vanuatu バヌアツ 바누아투 Vanuatu Вануату Vanuatu Vanuatu വന്വാതു Вануату Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Вануату Vanuatu Vanuatu Vanuatu Вануату Vanuatu Vanuatu วานูอาตู Vanuatu Вануату Вануату Vanuatu Vanuatu 瓦努阿图 萬那杜
WF جزر والس وفوتونا Уоліс і Футуна Уолис и Футуна Wallis ha Futuna Ostrva Valis i Futuna Wallis i Futuna Wallis a Futuna Wallis og Futuna Wallis und Futuna Γουάλις και Φουτούνα Wallis & Futuna Valiso kaj Futuno Wallis y Futuna Wallis ja Futuna Wallis eta Futuna والیس و فوتونا Wallis ja Futuna Wallis-et-Futuna Wallis-et-Futuna Vailís agus Futúna Uallas agus Futuna Wallis e Futuna איי ווליס ופוטונה Wallis i Futuna Wallis és Futuna Wallis & Futuna Kepulauan Wallis dan Futuna Wallis- og Fútúnaeyjar Wallis e Futuna ウォリス・フツナ 왈리스-푸투나 제도 Wallis & Futuna Уоллис жана Футуна Volisas ir Futūna Volisa un Futunas salas വാലിസ് ആന്റ് ഫ്യൂച്യുന Уоллис ба Футуна Wallis og Futuna Wallis en Futuna Wallis og Futuna Wallis & Futuna Wallis i Futuna Wallis e Futuna Wallis e Futuna Wallis și Futuna Уоллис и Футуна Wallis a Futuna Wallis in Futuna Uollis e Futuna Валис и Футуна Wallis- och Futunaöarna Wallis na Futuna วาลลิสและฟุตูนา Wallis ve Futuna Уоллис һәм Футуна Уолліс і Футуна Uollis va Futuna Wallis và Futuna 瓦利斯和富图纳 瓦利斯群島和富圖那群島
WS ساموا Самоа Самоа Samoa Samoa Samoa Samoa Samoa Samoa Σαμόα Samoa Samoo Samoa Samoa Samoa ساموآ Samoa Samoa Samoa Samó Samotha Samoa סמואה Samoa Szamoa Samoa Samoa Samóa Samoa サモア 사모아 Samoa Самоа Samoa Samoa സമോവ Самоа Samoa Samoa Samoa Samoa Samoa Samoa Samoa Samoa Самоа Samoa Samoa Samoa Самоа Samoa Samoa ซามัว Samoa Самоа Самоа Samoa Samoa 萨摩亚 薩摩亞
XK كوسوفو Косава Косово Kosovo Kosovo Kosovo Kosovo Kosovo Kosovo Κοσσυφοπέδιο Kosovo Kosovo Kosovo Kosovo Kosovo کوزوو Kosovo Kosovo Kosovo an Chosaiv A Chosobho Kosovo קוסובו Kosovo Koszovó Kosovo Kosovo Kósóvó Kosovo コソボ 코소보 Kosovo Косово Kosovas Kosova കൊസോവൊ Косово Kosovo Kosovo Kosovo Kosovo Kosowo Kosovo Kosovo Kosovo Косово Kosovo Kosovo Kosovë Косово Kosovo Kosovo โคโซโว Kosova Косово Косово Kosovo Kosovo 科索沃 科索沃
YE اليمن Емен Йемен Yemen Jemen Iemen Jemen Yemen Jemen Υεμένη Yemen Jemeno Yemen Jeemen Yemen یمن Jemen Yémen Yémen Éimin An Eaman O Iemen תימן Jemen Jemen Yemen Yaman Jemen Yemen イエメン 예멘 Yemen Йемен Jemenas Jemena യെമൻ Йемен Jemen Jemen Jemen Yemen Jemen Iêmen Iêmen Yemen Йемен Jemen Jemen Jemen Јемен Jemen Yemeni เยเมน Yemen Йәмән Ємен Yaman Yemen 也门 葉門
YT مايوت Маёта Майот Mayotte Majote Mayotte Mayotte Mayotte Mayotte Μαγιότ Mayotte Majoto Mayotte Mayotte Mayotte مایوت Mayotte Mayotte Mayotte Mayotte Mayotte Mayotte מאיוט Mayotte Mayotte Mayotte Mayotte Mayotte Mayotte マヨット 마요트 Mayotte Майотта Majotas Majota മയോട്ടി Майотта Mayotte Mayotte Mayotte Mayotte Majotta Mayotte Mayotte Mayotte Майотта Mayotte Mayotte Majotë Мајот Mayotte Mayotte มายอต Mayotte Майотта Майотта Mayotta Mayotte 马约特 馬約特島
ZA جنوب أفريقيا Паўднёва-Афрыканская Рэспубліка Южна Африка Suafrika Južnoafrička Republika República de Sud-àfrica Jihoafrická republika Sydafrika Südafrika Νότια Αφρική South Africa Sud-Afriko Sudáfrica Lõuna-Aafrika Vabariik Hegoafrika افریقای جنوبی Etelä-Afrikka Afrique du Sud Afrique du Sud an Afraic Theas Afraga a Deas Suráfrica דרום אפריקה Južnoafrička Republika Dél-afrikai Köztársaság Sudafrica Afrika Selatan Suður-Afríka Sudafrica 南アフリカ 남아프리카 South Africa Түштүк-Африка Республикасы Pietų Afrika Dienvidāfrikas Republika ദക്ഷിണാഫ്രിക്ക Өмнөд Африк Sør-Afrika Zuid-Afrika Sør-Afrika South Africa Republika Południowej Afryki África do Sul África do Sul Africa de Sud Южно-Африканская Республика Južná Afrika Južnoafriška republika Afrika e Jugut Јужноафричка Република Sydafrika Afrika Kusini แอฟริกาใต้ Güney Afrika Көньяк Африка Південно-Африканська Республіка Janubiy Afrika Respublikasi Nam Phi 南非 南非
ZM زامبيا Замбія Замбия Zambia Zambija Zàmbia Zambie Zambia Sambia Ζάμπια Zambia Zambio Zambia Sambia Zambia زامبیا Sambia Zambie Zambie an tSaimbia Sàimbia Zambia זמביה Zambija Zambia Zambia Zambia Sambía Zambia ザンビア 잠비아 Zambia Замбия Zambija Zambija സാംബിയ Замби Zambia Zambia Zambia Zambia Zambia Zâmbia Zâmbia Zambia Замбия Zambia Zambija Zambi Замбија Zambia Zambia แซมเบีย Zambiya Замбия Замбія Zambiya Zambia 赞比亚 尚比亞
ZW زيمبابوي Зімбабвэ Зимбабве Zimbabwe Zimbabve Zimbàbue Zimbabwe Zimbabwe Simbabwe Ζιμπάμπουε Zimbabwe Zimbabvo Zimbabue Zimbabwe Zimbabwe زیمبابوه Zimbabwe Zimbabwe Zimbabwe an tSiombáib An t-Sìombab Zimbabwe זימבבואה Zimbabve Zimbabwe Zimbabwe Zimbabwe Simbabve Zimbabwe ジンバブエ 짐바브웨 Zimbabwe Зимбабве Zimbabvė Zimbabve സിംബാബ്‌വേ Зимбабве Zimbabwe Zimbabwe Zimbabwe Zimbabwe Zimbabwe Zimbábue Zimbábue Zimbabwe Зимбабве Zimbabwe Zimbabve Zimbabve Зимбабве Zimbabwe Zimbabwe ซิมบับเว Zimbabve Зимбабве Зімбабве Zimbabve Zimbabwe 津巴布韦 辛巴威
1 country_code ar be bg br bs ca cs da de el en eo es et eu fa fi fr fr-CA ga gd gl he hr hu ia id is it ja ko kw ky lt lv ml mn-MN nb nl nn os pl pt pt-BR ro ru sk sl sq sr sv sw th tr tt uk uz vi zh-CN zh-TW
2 AC جزيرة أسينشيون Востраў Узнясення остров Възнесение Enez Ascension Ostrvo Ascension Illa de l’Ascensió Ascension Ascensionøen Ascension Νήσος Ασενσιόν Ascension Island Ascension Island Isla de la Ascensión Ascensioni saar Ascension uhartea جزایر آسنسیون Ascension-saari Île de l’Ascension Île de l’Ascension Oileán na Deascabhála Eilean na Deasgabhalach Illa de Ascensión האי אסנשן Otok Ascension Ascension-sziget Ascension Island Pulau Ascension Ascension-eyja Isola Ascensione アセンション島 어센션 섬 Ascension Island Вознесение аралы Dangun Žengimo sala Debesbraukšanas sala അസൻഷൻ ദ്വീപ് Асенсион арал Ascension Ascension Ascension Ascension Island Wyspa Wniebowstąpienia Ilha de Ascensão Ilha de Ascensão Insula Ascension о-в Вознесения Ascension Otok Ascension Ishulli Asenshion Острво Асенсион Ascension Kisiwa cha Ascension เกาะแอสเซนชัน Ascension Adası Ascension Island Острів Вознесіння Me’roj oroli Đảo Ascension 阿森松岛 阿森松島
3 AD أندورا Андора Андора Andorra Andora Andorra Andorra Andorra Andorra Ανδόρα Andorra Andoro Andorra Andorra Andorra آندورا Andorra Andorre Andorre Andóra Andorra Andorra אנדורה Andora Andorra Andorra Andorra Andorra Andorra アンドラ 안도라 Andorra Андорра Andora Andora അൻഡോറ Андорра Andorra Andorra Andorra Andorra Andora Andorra Andorra Andorra Андорра Andorra Andora Andorrë Андора Andorra Andorra อันดอร์รา Andorra Андорра Андорра Andorra Andorra 安道尔 安道爾
4 AE الإمارات العربية المتحدة Аб’яднаныя Арабскія Эміраты Обединени арабски емирства Emirelezhioù Arab Unanet Ujedinjeni Arapski Emirati Emirats Àrabs Units Spojené arabské emiráty De Forenede Arabiske Emirater Vereinigte Arabische Emirate Ηνωμένα Αραβικά Εμιράτα United Arab Emirates Unuiĝintaj Arabaj Emirlandoj Emiratos Árabes Unidos Araabia Ühendemiraadid Arabiar Emirerri Batuak امارات متحدهٔ عربی Arabiemiirikunnat Émirats arabes unis Émirats arabes unis Aontas na nÉimíríochtaí Arabacha Na h-Iomaratan Arabach Aonaichte Os Emiratos Árabes Unidos איחוד האמירויות הערביות Ujedinjeni Arapski Emirati Egyesült Arab Emírségek Emiratos Arabe Unite Uni Emirat Arab Sameinuðu arabísku furstadæmin Emirati Arabi Uniti アラブ首長国連邦 아랍에미리트 United Arab Emirates Бириккен Араб Эмираттары Jungtiniai Arabų Emyratai Apvienotie Arābu Emirāti യുണൈറ്റഡ് അറബ് എമിറൈറ്റ്‌സ് Арабын Нэгдсэн Эмирт Улс De forente arabiske emirater Verenigde Arabische Emiraten Dei sameinte arabiske emirata United Arab Emirates Zjednoczone Emiraty Arabskie Emirados Árabes Unidos Emirados Árabes Unidos Emiratele Arabe Unite ОАЭ Spojené arabské emiráty Združeni arabski emirati Emiratet e Bashkuara Arabe Уједињени Арапски Емирати Förenade Arabemiraten Falme za Kiarabu สหรัฐอาหรับเอมิเรตส์ Birleşik Arap Emirlikleri Берләшкән Гарәп Әмирлекләре Обʼєднані Арабські Емірати Birlashgan Arab Amirliklari Các Tiểu Vương quốc Ả Rập Thống nhất 阿拉伯联合酋长国 阿拉伯聯合大公國
5 AF أفغانستان Афганістан Афганистан Afghanistan Afganistan Afganistan Afghánistán Afghanistan Afghanistan Αφγανιστάν Afghanistan Afganujo Afganistán Afganistan Afganistan افغانستان Afganistan Afghanistan Afghanistan an Afganastáin Afghanastàn Afganistán אפגניסטן Afganistan Afganisztán Afghanistan Afganistan Afganistan Afghanistan アフガニスタン 아프가니스탄 Afghanistan Афганистан Afganistanas Afganistāna അഫ്‌ഗാനിസ്ഥാൻ Афганистан Afghanistan Afghanistan Afghanistan Afghanistan Afganistan Afeganistão Afeganistão Afganistan Афганистан Afganistan Afganistan Afganistan Авганистан Afghanistan Afghanistan อัฟกานิสถาน Afganistan Әфганстан Афганістан Afgʻoniston Afghanistan 阿富汗 阿富汗
6 AG أنتيغوا وبربودا Антыгуа і Барбуда Антигуа и Барбуда Antigua ha Barbuda Antigva i Barbuda Antigua i Barbuda Antigua a Barbuda Antigua og Barbuda Antigua und Barbuda Αντίγκουα και Μπαρμπούντα Antigua & Barbuda Antigvo-Barbudo Antigua y Barbuda Antigua ja Barbuda Antigua eta Barbuda آنتیگوا و باربودا Antigua ja Barbuda Antigua-et-Barbuda Antigua-et-Barbuda Antigua agus Barbúda Aintìoga is Barbuda Antigua e Barbuda אנטיגואה וברבודה Antigva i Barbuda Antigua és Barbuda Antigua e Barbuda Antigua dan Barbuda Antígva og Barbúda Antigua e Barbuda アンティグア・バーブーダ 앤티가 바부다 Antigua & Barbuda Антигуа жана Барбуда Antigva ir Barbuda Antigva un Barbuda ആൻറിഗ്വയും ബർബുഡയും Антигуа ба Барбуда Antigua og Barbuda Antigua en Barbuda Antigua og Barbuda Antigua & Barbuda Antigua i Barbuda Antígua e Barbuda Antígua e Barbuda Antigua și Barbuda Антигуа и Барбуда Antigua a Barbuda Antigva in Barbuda Antigua e Barbuda Антигва и Барбуда Antigua och Barbuda Antigua na Barbuda แอนติกาและบาร์บูดา Antigua ve Barbuda Антигуа һәм Барбуда Антиґуа і Барбуда Antigua va Barbuda Antigua và Barbuda 安提瓜和巴布达 安地卡及巴布達
7 AI أنغويلا Ангілья Ангуила Anguilla Angvila Anguilla Anguilla Anguilla Anguilla Ανγκουίλα Anguilla Angvilo Anguila Anguilla Aingira آنگویلا Anguilla Anguilla Anguilla Angaíle Anguillia Anguila אנגווילה Angvila Anguilla Anguilla Anguilla Angvilla Anguilla アンギラ 앵귈라 Anguilla Ангилья Angilija Angilja ആൻഗ്വില്ല Ангилья Anguilla Anguilla Anguilla Anguilla Anguilla Anguila Anguila Anguilla Ангилья Anguilla Angvila Anguilë Ангвила Anguilla Anguilla แองกวิลลา Anguilla Ангилья Анґілья Angilya Anguilla 安圭拉 安奎拉
8 AL ألبانيا Албанія Албания Albania Albanija Albània Albánie Albanien Albanien Αλβανία Albania Albanujo Albania Albaania Albania آلبانی Albania Albanie Albanie an Albáin Albàinia Albania אלבניה Albanija Albánia Albania Albania Albanía Albania アルバニア 알바니아 Albania Албания Albanija Albānija അൽബേനിയ Албани Albania Albanië Albania Albania Albania Albânia Albânia Albania Албания Albánsko Albanija Shqipëri Албанија Albanien Albania แอลเบเนีย Arnavutluk Албания Албанія Albaniya Albania 阿尔巴尼亚 阿爾巴尼亞
9 AM أرمينيا Арменія Армения Armenia Armenija Armènia Arménie Armenien Armenien Αρμενία Armenia Armenujo Armenia Armeenia Armenia ارمنستان Armenia Arménie Arménie an Airméin Airmeinea Armenia ארמניה Armenija Örményország Armenia Armenia Armenía Armenia アルメニア 아르메니아 Armenia Армения Armėnija Armēnija അർമേനിയ Армени Armenia Armenië Armenia Armenia Armenia Armênia Armênia Armenia Армения Arménsko Armenija Armeni Јерменија Armenien Armenia อาร์เมเนีย Ermenistan Әрмәнстан Вірменія Armaniston Armenia 亚美尼亚 亞美尼亞
10 AO أنغولا Ангола Ангола Angola Angola Angola Angola Angola Angola Αγκόλα Angola Angolo Angola Angola Angola آنگولا Angola Angola Angola Angóla Angòla Angola אנגולה Angola Angola Angola Angola Angóla Angola アンゴラ 앙골라 Angola Ангола Angola Angola അംഗോള Ангол Angola Angola Angola Angola Angola Angola Angola Angola Ангола Angola Angola Angolë Ангола Angola Angola แองโกลา Angola Ангола Ангола Angola Angola 安哥拉 安哥拉
11 AQ أنتاركتيكا Антарктыка Антарктика Antarktika Antarktika Antàrtida Antarktida Antarktis Antarktis Ανταρκτική Antarctica Antarkto Antártida Antarktika Antartika جنوبگان Antarktis Antarctique Antarctique an Antartaice An Antartaig A Antártida אנטארקטיקה Antarktika Antarktisz Antarctica Antarktika Suðurskautslandið Antartide 南極 남극 대륙 Antarctica Антарктида Antarktida Antarktika അന്റാർട്ടിക്ക Антарктид Antarktis Antarctica Antarktis Antarctica Antarktyda Antártida Antártida Antarctica Антарктида Antarktída Antarktika Antarktikë Антарктик Antarktis Antaktiki แอนตาร์กติกา Antarktika Антарктика Антарктика Antarktida Nam Cực 南极洲 南極洲
12 AR الأرجنتين Аргенціна Аржентина Arcʼhantina Argentina Argentina Argentina Argentina Argentinien Αργεντινή Argentina Argentino Argentina Argentina Argentina آرژانتین Argentiina Argentine Argentine an Airgintín An Argantain A Arxentina ארגנטינה Argentina Argentína Argentina Argentina Argentína Argentina アルゼンチン 아르헨티나 Argentina Аргентина Argentina Argentīna അർജന്റീന Аргентин Argentina Argentinië Argentina Argentina Argentyna Argentina Argentina Argentina Аргентина Argentína Argentina Argjentinë Аргентина Argentina Ajentina อาร์เจนตินา Arjantin Аргентина Аргентина Argentina Argentina 阿根廷 阿根廷
13 AS ساموا الأمريكية Амерыканскае Самоа Американска Самоа Samoa Amerikan Američka Samoa Samoa Nord-americana Americká Samoa Amerikansk Samoa Amerikanisch-Samoa Αμερικανική Σαμόα American Samoa American Samoa Samoa Americana Ameerika Samoa Samoa Estatubatuarra ساموآی امریکا Amerikan Samoa Samoa américaines Samoa américaines Samó Mheiriceá Samotha na h-Aimeireaga Samoa Americana סמואה האמריקנית Američka Samoa Amerikai Szamoa Samoa american Samoa Amerika Bandaríska Samóa Samoa americane 米領サモア 아메리칸 사모아 American Samoa Америкалык Самоа Amerikos Samoa ASV Samoa അമേരിക്കൻ സമോവ Америкийн Самоа Amerikansk Samoa Amerikaans-Samoa Amerikansk Samoa American Samoa Samoa Amerykańskie Samoa Americana Samoa Americana Samoa Americană Американское Самоа Americká Samoa Ameriška Samoa Samoa Amerikane Америчка Самоа Amerikanska Samoa Samoa ya Marekani อเมริกันซามัว Amerikan Samoası Америка Самоасы Американське Самоа Amerika Samoasi Samoa thuộc Mỹ 美属萨摩亚 美屬薩摩亞
14 AT النمسا Аўстрыя Австрия Aostria Austrija Àustria Rakousko Østrig Österreich Αυστρία Austria Aŭstrujo Austria Austria Austria اتریش Itävalta Autriche Autriche an Ostair An Ostair Austria אוסטריה Austrija Ausztria Austria Austria Austurríki Austria オーストリア 오스트리아 Austria Австрия Austrija Austrija ഓസ്ട്രിയ Австри Østerrike Oostenrijk Austerrike Austria Austria Áustria Áustria Austria Австрия Rakúsko Avstrija Austri Аустрија Österrike Austria ออสเตรีย Avusturya Австрия Австрія Avstriya Áo 奥地利 奧地利
15 AU أستراليا Аўстралія Австралия Aostralia Australija Austràlia Austrálie Australien Australien Αυστραλία Australia Aŭstralio Australia Austraalia Australia استرالیا Australia Australie Australie an Astráil Astràilia Australia אוסטרליה Australija Ausztrália Australia Australia Ástralía Australia オーストラリア 오스트레일리아 Australia Австралия Australija Austrālija ഓസ്‌ട്രേലിയ Австрали Australia Australië Australia Australia Australia Austrália Austrália Australia Австралия Austrália Avstralija Australi Аустралија Australien Australia ออสเตรเลีย Avustralya Австралия Австралія Avstraliya Australia 澳大利亚 澳洲
16 AW أروبا Аруба Аруба Aruba Aruba Aruba Aruba Aruba Aruba Αρούμπα Aruba Arubo Aruba Aruba Aruba آروبا Aruba Aruba Aruba Arúba Arùba Aruba ארובה Aruba Aruba Aruba Aruba Arúba Aruba アルバ 아루바 Aruba Аруба Aruba Aruba അറൂബ Аруба Aruba Aruba Aruba Aruba Aruba Aruba Aruba Aruba Аруба Aruba Aruba Arubë Аруба Aruba Aruba อารูบา Aruba Аруба Аруба Aruba Aruba 阿鲁巴 荷屬阿魯巴
17 AX جزر آلاند Аландскія астравы Оландски острови Inizi Åland Olandska ostrva Illes Åland Ålandy Åland Ålandinseln Νήσοι Όλαντ Åland Islands Åland Islands Islas Åland Ahvenamaa Åland جزایر آلاند Ahvenanmaa Îles Åland Îles Åland Oileáin Åland Na h-Eileanan Åland Illas Åland איי אולנד Ålandski otoci Åland-szigetek Insulas Åland Kepulauan Aland Álandseyjar Isole Åland オーランド諸島 올란드 제도 Åland Islands Аланд аралдары Alandų Salos Olandes salas അലൻഡ് ദ്വീപുകൾ Аландын арлууд Åland Åland Åland Åland Islands Wyspy Alandzkie Ilhas Aland Ilhas Aland Insulele Åland Аландские о-ва Alandy Ålandski otoki Ishujt Alandë Оландска Острва Åland Visiwa vya Aland หมู่เกาะโอลันด์ Åland Adaları Аланд утраулары Аландські Острови Aland orollari Quần đảo Åland 奥兰群岛 奧蘭群島
18 AZ أذربيجان Азербайджан Азербайджан Azerbaidjan Azerbejdžan Azerbaidjan Ázerbájdžán Aserbajdsjan Aserbaidschan Αζερμπαϊτζάν Azerbaijan Azerbajĝano Azerbaiyán Aserbaidžaan Azerbaijan جمهوری آذربایجان Azerbaidžan Azerbaïdjan Azerbaïdjan an Asarbaiseáin Asarbaideàn Acerbaixán אזרבייג׳ן Azerbajdžan Azerbajdzsán Azerbaidzhan Azerbaijan Aserbaídsjan Azerbaigian アゼルバイジャン 아제르바이잔 Azerbaijan Азербайжан Azerbaidžanas Azerbaidžāna അസർബൈജാൻ Азербайжан Aserbajdsjan Azerbeidzjan Aserbajdsjan Azerbaijan Azerbejdżan Azerbaijão Azerbaijão Azerbaidjan Азербайджан Azerbajdžan Azerbajdžan Azerbajxhan Азербејџан Azerbajdzjan Azerbaijani อาเซอร์ไบจาน Azerbaycan Әзәрбайҗан Азербайджан Ozarbayjon Azerbaijan 阿塞拜疆 亞塞拜然
19 BA البوسنة والهرسك Боснія і Герцагавіна Босна и Херцеговина Bosnia ha Herzegovina Bosna i Hercegovina Bòsnia i Hercegovina Bosna a Hercegovina Bosnien-Hercegovina Bosnien und Herzegowina Βοσνία - Ερζεγοβίνη Bosnia & Herzegovina Bosnio-Hercegovino Bosnia y Herzegovina Bosnia ja Hertsegoviina Bosnia-Herzegovina بوسنی و هرزگوین Bosnia ja Hertsegovina Bosnie-Herzégovine Bosnie-Herzégovine an Bhoisnia agus an Heirseagaivéin Bosna is Hearsagobhana Bosnia e Hercegovina בוסניה והרצגובינה Bosna i Hercegovina Bosznia-Hercegovina Bosnia e Herzegovina Bosnia dan Herzegovina Bosnía og Hersegóvína Bosnia ed Erzegovina ボスニア・ヘルツェゴビナ 보스니아 헤르체고비나 Bosnia & Herzegovina Босния жана Герцеговина Bosnija ir Hercegovina Bosnija un Hercegovina ബോസ്നിയയും ഹെർസഗോവിനയും Босни-Герцеговин Bosnia-Hercegovina Bosnië en Herzegovina Bosnia-Hercegovina Bosnia & Herzegovina Bośnia i Hercegowina Bósnia e Herzegovina Bósnia e Herzegovina Bosnia și Herțegovina Босния и Герцеговина Bosna a Hercegovina Bosna in Hercegovina Bosnjë-Hercegovinë Босна и Херцеговина Bosnien och Hercegovina Bosnia na Hezegovina บอสเนียและเฮอร์เซโกวีนา Bosna-Hersek Босния һәм Герцеговина Боснія і Герцеґовина Bosniya va Gertsegovina Bosnia và Herzegovina 波斯尼亚和黑塞哥维那 波士尼亞與赫塞哥維納
20 BB بربادوس Барбадас Барбадос Barbados Barbados Barbados Barbados Barbados Barbados Μπαρμπέιντος Barbados Barbado Barbados Barbados Barbados باربادوس Barbados Barbade Barbade Barbadós Barbados Barbados ברבדוס Barbados Barbados Barbados Barbados Barbados Barbados バルバドス 바베이도스 Barbados Барбадос Barbadosas Barbadosa ബാർബഡോസ് Барбадос Barbados Barbados Barbados Barbados Barbados Barbados Barbados Barbados Барбадос Barbados Barbados Barbados Барбадос Barbados Babadosi บาร์เบโดส Barbados Барбадос Барбадос Barbados Barbados 巴巴多斯 巴貝多
21 BD بنغلاديش Бангладэш Бангладеш Bangladesh Bangladeš Bangladesh Bangladéš Bangladesh Bangladesch Μπανγκλαντές Bangladesh Bangladeŝo Bangladés Bangladesh Bangladesh بنگلادش Bangladesh Bangladesh Bangladesh an Bhanglaidéis Bangladais Bangladesh בנגלדש Bangladeš Banglades Bangladesh Bangladesh Bangladess Bangladesh バングラデシュ 방글라데시 Bangladesh Бангладеш Bangladešas Bangladeša ബംഗ്ലാദേശ് Бангладеш Bangladesh Bangladesh Bangladesh Bangladesh Bangladesz Bangladesh Bangladesh Bangladesh Бангладеш Bangladéš Bangladeš Bangladesh Бангладеш Bangladesh Bangladeshi บังกลาเทศ Bangladeş Бангладеш Бангладеш Bangladesh Bangladesh 孟加拉国 孟加拉
22 BE بلجيكا Бельгія Белгия Belgia Belgija Bèlgica Belgie Belgien Belgien Βέλγιο Belgium Belgujo Bélgica Belgia Belgika بلژیک Belgia Belgique Belgique an Bheilg A’ Bheilg Bélxica בלגיה Belgija Belgium Belgica Belgia Belgía Belgio ベルギー 벨기에 Belgium Бельгия Belgija Beļģija ബെൽജിയം Бельги Belgia België Belgia Belgium Belgia Bélgica Bélgica Belgia Бельгия Belgicko Belgija Belgjikë Белгија Belgien Ubelgiji เบลเยียม Belçika Бельгия Бельґія Belgiya Bỉ 比利时 比利時
23 BF بوركينا فاسو Буркіна-Фасо Буркина Фасо Burkina Faso Burkina Faso Burkina Faso Burkina Faso Burkina Faso Burkina Faso Μπουρκίνα Φάσο Burkina Faso Burkino Burkina Faso Burkina Faso Burkina Faso بورکینافاسو Burkina Faso Burkina Faso Burkina Faso Buircíne Fasó Buirciona Faso Burkina Faso בורקינה פאסו Burkina Faso Burkina Faso Burkina Faso Burkina Faso Búrkína Fasó Burkina Faso ブルキナファソ 부르키나파소 Burkina Faso Буркина-Фасо Burkina Fasas Burkinafaso ബർക്കിന ഫാസോ Буркина Фасо Burkina Faso Burkina Faso Burkina Faso Burkina Faso Burkina Faso Burquina Faso Burquina Faso Burkina Faso Буркина-Фасо Burkina Faso Burkina Faso Burkina-Faso Буркина Фасо Burkina Faso Bukinafaso บูร์กินาฟาโซ Burkina Faso Буркина-Фасо Буркіна-Фасо Burkina-Faso Burkina Faso 布基纳法索 布吉納法索
24 BG بلغاريا Балгарыя България Bulgaria Bugarska Bulgària Bulharsko Bulgarien Bulgarien Βουλγαρία Bulgaria Bulgarujo Bulgaria Bulgaaria Bulgaria بلغارستان Bulgaria Bulgarie Bulgarie an Bhulgáir A’ Bhulgair Bulgaria בולגריה Bugarska Bulgária Bulgaria Bulgaria Búlgaría Bulgaria ブルガリア 불가리아 Bulgaria Болгария Bulgarija Bulgārija ബൾഗേറിയ Болгар Bulgaria Bulgarije Bulgaria Bulgaria Bułgaria Bulgária Bulgária Bulgaria Болгария Bulharsko Bolgarija Bullgari Бугарска Bulgarien Bulgaria บัลแกเรีย Bulgaristan Болгария Болгарія Bolgariya Bulgaria 保加利亚 保加利亞
25 BH البحرين Бахрэйн Бахрейн Bahrein Bahrein Bahrain Bahrajn Bahrain Bahrain Μπαχρέιν Bahrain Barejno Baréin Bahrein Bahrain بحرین Bahrain Bahreïn Bahreïn Bairéin Bachrain Bahrain בחריין Bahrein Bahrein Bahrain Bahrain Barein Bahrein バーレーン 바레인 Bahrain Бахрейн Bahreinas Bahreina ബഹ്റിൻ Бахрейн Bahrain Bahrein Bahrain Bahrain Bahrajn Bahrein Bahrein Bahrain Бахрейн Bahrajn Bahrajn Bahrejn Бахреин Bahrain Bahareni บาห์เรน Bahreyn Бәхрәйн Бахрейн Bahrayn Bahrain 巴林 巴林
26 BI بوروندي Бурундзі Бурунди Burundi Burundi Burundi Burundi Burundi Burundi Μπουρούντι Burundi Burundo Burundi Burundi Burundi بوروندی Burundi Burundi Burundi an Bhurúin Burundaidh Burundi בורונדי Burundi Burundi Burundi Burundi Búrúndí Burundi ブルンジ 부룬디 Burundi Бурунди Burundis Burundija ബറുണ്ടി Бурунди Burundi Burundi Burundi Burundi Burundi Burundi Burundi Burundi Бурунди Burundi Burundi Burundi Бурунди Burundi Burundi บุรุนดี Burundi Бурунди Бурунді Burundi Burundi 布隆迪 蒲隆地
27 BJ بنين Бенін Бенин Benin Benin Benín Benin Benin Benin Μπενίν Benin Benino Benín Benin Benin بنین Benin Bénin Bénin Beinin Beinin Benín בנין Benin Benin Benin Benin Benín Benin ベナン 베냉 Benin Бенин Beninas Benina ബെനിൻ Бенин Benin Benin Benin Benin Benin Benin Benin Benin Бенин Benin Benin Benin Бенин Benin Benin เบนิน Benin Бенин Бенін Benin Benin 贝宁 貝南
28 BL سان بارتليمي Сен-Бартэльмі Сен Бартелеми Saint Barthélemy Sveti Bartolomej Saint Barthélemy Svatý Bartoloměj Saint Barthélemy St. Barthélemy Άγιος Βαρθολομαίος St. Barthélemy St. Barthélemy San Bartolomé Saint-Barthélemy Saint Barthélemy سن بارتلمی Saint-Barthélemy Saint-Barthélemy Saint-Barthélemy Saint Barthélemy Saint Barthélemy Saint Barthélemy סנט ברתולומיאו Saint Barthélemy Saint-Barthélemy St. Barthélemy Saint Barthélemy Sankti Bartólómeusareyjar Saint-Barthélemy サン・バルテルミー 생바르텔레미 St. Barthélemy Сент Бартелеми Sen Bartelemi Senbartelmī സെന്റ് ബാർത്തലമി Сент-Бартельми Saint-Barthélemy Saint-Barthélemy Saint Barthélemy St. Barthélemy Saint-Barthélemy São Bartolomeu São Bartolomeu Saint-Barthélemy Сен-Бартелеми Svätý Bartolomej Saint Barthélemy Sen-Bartelemi Свети Бартоломеј S:t Barthélemy St. Barthelemy เซนต์บาร์เธเลมี Saint Barthelemy Сен-Бартельми Сен-Бартельмі Sen-Bartelemi St. Barthélemy 圣巴泰勒米 聖巴瑟米
29 BM برمودا Бермудскія астравы Бермудски острови Bermuda Bermuda Bermudes Bermudy Bermuda Bermuda Βερμούδες Bermuda Bermudoj Bermudas Bermuda Bermuda برمودا Bermuda Bermudes Bermudes Beirmiúda Bearmùda Illas Bermudas ברמודה Bermudi Bermuda Bermuda Bermuda Bermúdaeyjar Bermuda バミューダ 버뮤다 Bermuda Бермуд аралдары Bermuda Bermudu salas ബർമുഡ Бермуда Bermuda Bermuda Bermuda Bermuda Bermudy Bermudas Bermudas Bermuda Бермудские о-ва Bermudy Bermudi Bermude Бермуда Bermuda Bermuda เบอร์มิวดา Bermuda Бермуд утраулары Бермудські Острови Bermuda orollari Bermuda 百慕大 百慕達
30 BN بروناي Бруней Бруней Даруссалам Brunei Brunej Brunei Brunej Brunei Brunei Darussalam Μπρουνέι Brunei Brunejo Brunéi Brunei Brunei برونئی Brunei Brunéi Darussalam Brunéi Darussalam Brúiné Brùnaigh Brunei ברוניי Brunej Brunei Brunei Brunei Brúnei Brunei ブルネイ 브루나이 Brunei Бруней Brunėjus Bruneja ബ്രൂണൈ Бруней Brunei Brunei Brunei Brunei Brunei Brunei Brunei Brunei Бруней-Даруссалам Brunej Brunej Brunei Брунеј Brunei Brunei บรูไน Brunei Бруней Бруней Bruney Brunei 文莱 汶萊
31 BO بوليفيا Балівія Боливия Bolivia Bolivija Bolívia Bolívie Bolivia Bolivien Βολιβία Bolivia Bolivio Bolivia Boliivia Bolivia بولیوی Bolivia Bolivie Bolivie an Bholaiv Boilibhia Bolivia בוליביה Bolivija Bolívia Bolivia Bolivia Bólivía Bolivia ボリビア 볼리비아 Bolivia Боливия Bolivija Bolīvija ബൊളീവിയ Боливи Bolivia Bolivia Bolivia Bolivia Boliwia Bolívia Bolívia Bolivia Боливия Bolívia Bolivija Bolivi Боливија Bolivia Bolivia โบลิเวีย Bolivya Боливия Болівія Boliviya Bolivia 玻利维亚 玻利維亞
32 BQ هولندا الكاريبية Карыбскія Нідэрланды Карибска Нидерландия Karib Nederlandat Karipska Holandija Carib Neerlandès Karibské Nizozemsko De tidligere Nederlandske Antiller Bonaire, Sint Eustatius und Saba Ολλανδία Καραϊβικής Caribbean Netherlands Caribbean Netherlands Caribe neerlandés Hollandi Kariibi mere saared Karibeko Herbehereak جزایر کارائیب هلند Karibian Alankomaat Pays-Bas caribéens Pays-Bas caribéens an Ísiltír Chairibeach Na Tìrean Ìsle Caraibeach Caribe Neerlandés האיים הקריביים ההולנדיים Karipski otoci Nizozemske Holland Karib-térség Caribbean Netherlands Belanda Karibia Karíbahafshluti Hollands Caraibi olandesi オランダ領カリブ 네덜란드령 카리브 Caribbean Netherlands Кариб Нидерланддары Karibų Nyderlandai Nīderlandes Karību salas കരീബിയൻ നെതർലാൻഡ്സ് Карибын Нидерланд Karibisk Nederland Caribisch Nederland Karibisk Nederland Caribbean Netherlands Niderlandy Karaibskie Países Baixos Caribenhos Países Baixos Caribenhos Insulele Caraibe Olandeze Бонэйр, Синт-Эстатиус и Саба Karibské Holandsko Nizozemski Karibi Karaibet holandeze Карипска Холандија Karibiska Nederländerna Uholanzi ya Karibiani เนเธอร์แลนด์แคริบเบียน Karayip Hollandası Caribbean Netherlands Нідерландські Карибські острови Boneyr, Sint-Estatius va Saba Ca-ri-bê Hà Lan 荷属加勒比区 荷蘭加勒比區
33 BR البرازيل Бразілія Бразилия Brazil Brazil Brasil Brazílie Brasilien Brasilien Βραζιλία Brazil Brazilo Brasil Brasiilia Brasil برزیل Brasilia Brésil Brésil an Bhrasaíl Braisil O Brasil ברזיל Brazil Brazília Brasil Brasil Brasilía Brasile ブラジル 브라질 Brasil Бразилия Brazilija Brazīlija ബ്രസീൽ Бразил Brasil Brazilië Brasil Бразили Brazylia Brasil Brasil Brazilia Бразилия Brazília Brazilija Brazil Бразил Brasilien Brazil บราซิล Brezilya Бразилия Бразілія Braziliya Brazil 巴西 巴西
34 BS جزر البهاما Багамскія астравы Бахамски острови Bahamas Bahami Bahames Bahamy Bahamas Bahamas Μπαχάμες Bahamas Bahamoj Bahamas Bahama Bahamak باهاما Bahama Bahamas Bahamas na Bahámaí Na h-Eileanan Bhathama Bahamas איי בהאמה Bahami Bahama-szigetek Bahamas Bahama Bahamaeyjar Bahamas バハマ 바하마 Bahamas Багама аралдары Bahamos Bahamu salas ബഹാമാസ് Багамын арлууд Bahamas Bahama’s Bahamas Bahamas Bahamy Bahamas Bahamas Bahamas Багамы Bahamy Bahami Bahama Бахами Bahamas Bahama บาฮามาส Bahamalar Багам утраулары Багамські Острови Bagama orollari Bahamas 巴哈马 巴哈馬
35 BT بوتان Бутан Бутан Bhoutan Butan Bhutan Bhútán Bhutan Bhutan Μπουτάν Bhutan Butano Bután Bhutan Bhutan بوتان Bhutan Bhoutan Bhoutan an Bhútáin Butàn Bután בהוטן Butan Bhután Bhutan Bhutan Bútan Bhutan ブータン 부탄 Bhutan Бутан Butanas Butāna ഭൂട്ടാൻ Бутан Bhutan Bhutan Bhutan Bhutan Bhutan Butão Butão Bhutan Бутан Bhután Butan Butan Бутан Bhutan Bhutan ภูฏาน Butan Бутан Бутан Butan Bhutan 不丹 不丹
36 BV جزيرة بوفيه Востраў Бувэ остров Буве Enez Bouvet Ostrvo Buve Bouvet Bouvetův ostrov Bouvetøen Bouvetinsel Νήσος Μπουβέ Bouvet Island Bouvet Island Isla Bouvet Bouvet’ saar Bouvet uhartea جزیرهٔ بووه Bouvet’nsaari Île Bouvet Île Bouvet Oileán Bouvet Eilean Bouvet Illa Bouvet האי בובה Otok Bouvet Bouvet-sziget Insula de Bouvet Pulau Bouvet Bouveteyja Isola Bouvet ブーベ島 부베섬 Bouvet Island Буве аралы Buvė Sala Buvē sala ബൗവെട്ട് ദ്വീപ് Буве арал Bouvetøya Bouveteiland Bouvetøya Bouvet Island Wyspa Bouveta Ilha Bouvet Ilha Bouvet Insula Bouvet о-в Буве Bouvetov ostrov Bouvetov otok Ishulli Bove Острво Буве Bouvetön Kisiwa cha Bouvet เกาะบูเว Bouvet Adası Буве утравы Острів Буве Buve oroli Đảo Bouvet 布韦岛 布威島
37 BW بوتسوانا Батсвана Ботсвана Botswana Bocvana Botswana Botswana Botswana Botsuana Μποτσουάνα Botswana Bocvano Botsuana Botswana Botswana بوتسوانا Botswana Botswana Botswana an Bhotsuáin Botsuana Botswana בוצוואנה Bocvana Botswana Botswana Botswana Botsvana Botswana ボツワナ 보츠와나 Botswana Ботсвана Botsvana Botsvāna ബോട്സ്വാന Ботсван Botswana Botswana Botswana Botswana Botswana Botsuana Botsuana Botswana Ботсвана Botswana Bocvana Botsvanë Боцвана Botswana Botswana บอตสวานา Botsvana Ботсвана Ботсвана Botsvana Botswana 博茨瓦纳 波札那
38 BY بيلاروس Беларусь Беларус Belarus Bjelorusija Belarús Bělorusko Hviderusland Belarus Λευκορωσία Belarus Belorusujo Bielorrusia Valgevene Bielorrusia بلاروس Valko-Venäjä Biélorussie Biélorussie an Bhealarúis A’ Bhealaruis Belarús בלארוס Bjelorusija Belarusz Bielorussia Belarus Hvíta-Rússland Bielorussia ベラルーシ 벨라루스 Belarus Беларусь Baltarusija Baltkrievija ബെലറൂസ് Беларусь Hviterussland Belarus Kviterussland Belarus Białoruś Bielorrússia Bielorrússia Belarus Беларусь Bielorusko Belorusija Bjellorusi Белорусија Vitryssland Belarus เบลารุส Belarus Беларусь Білорусь Belarus Belarus 白俄罗斯 白俄羅斯
39 BZ بليز Беліз Белиз Belize Belize Belize Belize Belize Belize Μπελίζ Belize Belizo Belice Belize Belize بلیز Belize Belize Belize an Bheilís A’ Bheilìs Belize בליז Belize Belize Belize Belize Belís Belize ベリーズ 벨리즈 Belize Белиз Belizas Beliza ബെലീസ് Белизе Belize Belize Belize Belize Belize Belize Belize Belize Белиз Belize Belize Belizë Белизе Belize Belize เบลีซ Belize Белиз Беліз Beliz Belize 伯利兹 貝里斯
40 CA كندا Канада Канада Kanada Kanada Canadà Kanada Canada Kanada Καναδάς Canada Kanado Canadá Kanada Kanada کانادا Kanada Canada Canada Ceanada Canada O Canadá קנדה Kanada Kanada Canada Kanada Kanada Canada カナダ 캐나다 Canada Канада Kanada Kanāda കാനഡ Канад Canada Canada Canada Canada Kanada Canadá Canadá Canada Канада Kanada Kanada Kanada Канада Kanada Kanada แคนาดา Kanada Канада Канада Kanada Canada 加拿大 加拿大
41 CC جزر كوكوس (كيلينغ) Какосавыя (Кілінг) астравы Кокосови острови (острови Кийлинг) Inizi Kokoz Kokosova (Keelingova) ostrva Illes Cocos Kokosové ostrovy Cocosøerne Kokosinseln Νήσοι Κόκος (Κίλινγκ) Cocos (Keeling) Islands Cocos (Keeling) Islands Islas Cocos Kookossaared Cocos (Keeling) uharteak جزایر کوکوس Kookossaaret (Keelingsaaret) Îles Cocos Îles Cocos Oileáin Cocos (Keeling) Na h-Eileanan Chocos (Keeling) Illas Cocos (Keeling) איי קוקוס (קילינג) Kokosovi (Keelingovi) otoci Kókusz (Keeling)-szigetek Cocos (Keeling) Islands Kepulauan Cocos (Keeling) Kókoseyjar (Keeling) Isole Cocos (Keeling) ココス(キーリング)諸島 코코스 제도 Cocos (Keeling) Islands Кокос (Килинг) аралдары Kokosų (Kilingo) Salos Kokosu (Kīlinga) salas കോക്കസ് (കീലിംഗ്) ദ്വീപുകൾ Кокос (Кийлинг) арлууд Kokosøyene Cocoseilanden Kokosøyane Cocos (Keeling) Islands Wyspy Kokosowe Ilhas Cocos (Keeling) Ilhas Cocos (Keeling) Insulele Cocos (Keeling) Кокосовые о-ва Kokosové ostrovy Kokosovi otoki Ishujt Kokos Кокосова (Килингова) Острва Kokosöarna Visiwa vya Cocos (Keeling) หมู่เกาะโคโคส (คีลิง) Cocos (Keeling) Adaları Кокос (Килинг) утраулары Кокосові (Кілінґ) Острови Kokos (Kiling) orollari Quần đảo Cocos (Keeling) 科科斯(基林)群岛 科克斯(基靈)群島
42 CD الكونغو - كينشاسا Конга (Кіншаса) Конго (Киншаса) Kongo - Kinshasa Demokratska Republika Kongo Congo - Kinshasa Kongo – Kinshasa Congo-Kinshasa Kongo-Kinshasa Κονγκό - Κινσάσα Congo - Kinshasa Congo - Kinshasa República Democrática del Congo Kongo DV Kongoko Errepublika Demokratikoa کنگو - کینشاسا Kongon demokraattinen tasavalta Congo-Kinshasa Congo-Kinshasa Poblacht Dhaonlathach an Chongó Congo - Kinshasa República Democrática do Congo קונגו - קינשאסה Kongo - Kinshasa Kongó - Kinshasa Congo - Kinshasa Kongo - Kinshasa Kongó-Kinshasa Congo - Kinshasa コンゴ民主共和国(キンシャサ) 콩고-킨샤사 Congo - Kinshasa Конго-Киншаса Kongas-Kinšasa Kongo (Kinšasa) കോംഗോ - കിൻഷാസ Конго-Киншаса Kongo-Kinshasa Congo-Kinshasa Kongo-Kinshasa Congo - Kinshasa Demokratyczna Republika Konga Congo - Kinshasa Congo - Kinshasa Congo - Kinshasa Конго - Киншаса Konžská demokratická republika Demokratična republika Kongo Kongo-Kinshasa Конго - Киншаса Kongo-Kinshasa Jamhuri ya Kidemokrasia ya Kongo คองโก - กินชาซา Kongo - Kinşasa Congo - Kinshasa Конго – Кіншаса Kongo – Kinshasa Congo - Kinshasa 刚果(金) 剛果(金夏沙)
43 CF جمهورية أفريقيا الوسطى Цэнтральна-Афрыканская Рэспубліка Централноафриканска република Republik Kreizafrikan Centralnoafrička Republika República Centreafricana Středoafrická republika Den Centralafrikanske Republik Zentralafrikanische Republik Κεντροαφρικανική Δημοκρατία Central African Republic Centr-Afrika Respubliko República Centroafricana Kesk-Aafrika Vabariik Afrika Erdiko Errepublika جمهوری افریقای مرکزی Keski-Afrikan tasavalta République centrafricaine République centrafricaine Poblacht na hAfraice Láir Poblachd Meadhan Afraga República Centroafricana הרפובליקה המרכז-אפריקאית Srednjoafrička Republika Közép-afrikai Köztársaság Republica African Central Republik Afrika Tengah Mið-Afríkulýðveldið Repubblica Centrafricana 中央アフリカ共和国 중앙 아프리카 공화국 Central African Republic Борбордук Африка Республикасы Centrinės Afrikos Respublika Centrālāfrikas Republika സെൻട്രൽ ആഫ്രിക്കൻ റിപ്പബ്ലിക്ക് Төв Африкийн Бүгд Найрамдах Улс Den sentralafrikanske republikk Centraal-Afrikaanse Republiek Den sentralafrikanske republikken Central African Republic Republika Środkowoafrykańska República Centro-Africana República Centro-Africana Republica Centrafricană Центрально-Африканская Республика Stredoafrická republika Centralnoafriška republika Republika e Afrikës Qendrore Централноафричка Република Centralafrikanska republiken Jamhuri ya Afrika ya Kati สาธารณรัฐแอฟริกากลาง Orta Afrika Cumhuriyeti Үзәк Африка Республикасы Центральноафриканська Республіка Markaziy Afrika Respublikasi Cộng hòa Trung Phi 中非共和国 中非共和國
44 CG الكونغو - برازافيل Конга - Бразавіль Конго (Бразавил) Kongo - Brazzaville Kongo Congo - Brazzaville Kongo – Brazzaville Congo-Brazzaville Kongo-Brazzaville Κονγκό - Μπραζαβίλ Congo - Brazzaville Kongolo Congo Kongo Vabariik Kongo کنگو - برازویل Kongon tasavalta Congo-Brazzaville Congo-Brazzaville an Congó A’ Chongo - Brazzaville República do Congo קונגו - ברזאויל Kongo - Brazzaville Kongó - Brazzaville Congo Kongo - Brazzaville Kongó-Brazzaville Congo-Brazzaville コンゴ共和国(ブラザビル) 콩고-브라자빌 Congo - Brazzaville Конго-Браззавил Kongas-Brazavilis Kongo (Brazavila) കോംഗോ - ബ്രാസവില്ലി Конго-Браззавиль Kongo-Brazzaville Congo-Brazzaville Kongo-Brazzaville Congo - Brazzaville Kongo República do Congo República do Congo Congo - Brazzaville Конго - Браззавиль Konžská republika Kongo - Brazzaville Kongo-Brazavilë Конго - Бразавил Kongo-Brazzaville Kongo - Brazzaville คองโก - บราซซาวิล Kongo - Brazavil Congo - Brazzaville Конго – Браззавіль Kongo – Brazzavil Congo - Brazzaville 刚果(布) 剛果(布拉薩)
45 CH سويسرا Швейцарыя Швейцария Suis Švicarska Suïssa Švýcarsko Schweiz Schweiz Ελβετία Switzerland Svisujo Suiza Šveits Suitza سوئیس Sveitsi Suisse Suisse an Eilvéis An Eilbheis Suíza שווייץ Švicarska Svájc Suissa Swiss Sviss Svizzera スイス 스위스 Switzerland Швейцария Šveicarija Šveice സ്വിറ്റ്സർലാൻഡ് Швейцарь Sveits Zwitserland Sveits Switzerland Szwajcaria Suíça Suíça Elveția Швейцария Švajčiarsko Švica Zvicër Швајцарска Schweiz Uswisi สวิตเซอร์แลนด์ İsviçre Швейцария Швейцарія Shveytsariya Thụy Sĩ 瑞士 瑞士
46 CI ساحل العاج Кот-д’Івуар Кот д’Ивоар Aod an Olifant Obala Slonovače Côte d’Ivoire Pobřeží slonoviny Elfenbenskysten Côte d’Ivoire Ακτή Ελεφαντοστού Côte d’Ivoire Ebur-Bordo Côte d’Ivoire Côte d’Ivoire Boli Kosta ساحل عاج Norsunluurannikko Côte d’Ivoire Côte d’Ivoire an Cósta Eabhair Côte d’Ivoire Côte d’Ivoire חוף השנהב Obala Bjelokosti Elefántcsontpart Côte d’Ivoire Côte d’Ivoire Fílabeinsströndin Costa d’Avorio コートジボワール 코트디부아르 Côte d’Ivoire Кот-д’Ивуар Dramblio Kaulo Krantas Kotdivuāra കോട്ട് ഡി വാർ Кот-д’Ивуар Elfenbenskysten Ivoorkust Elfenbeinskysten Côte d’Ivoire Côte d’Ivoire Costa do Marfim Costa do Marfim Côte d’Ivoire Кот-д’Ивуар Pobrežie Slonoviny Slonokoščena obala Côte d’Ivoire Обала Слоноваче (Кот д’Ивоар) Côte d’Ivoire Cote d’Ivoire โกตดิวัวร์ Côte d’Ivoire Кот-д’Ивуар Кот-дʼІвуар Kot-d’Ivuar Côte d’Ivoire 科特迪瓦 象牙海岸
47 CK جزر كوك Астравы Кука острови Кук Inizi Cook Kukova ostrva Illes Cook Cookovy ostrovy Cookøerne Cookinseln Νήσοι Κουκ Cook Islands Kukinsuloj Islas Cook Cooki saared Cook uharteak جزایر کوک Cookinsaaret Îles Cook Îles Cook Oileáin Cook Eileanan Cook Illas Cook איי קוק Cookovi Otoci Cook-szigetek Insulas Cook Kepulauan Cook Cooks-eyjar Isole Cook クック諸島 쿡 제도 Cook Islands Кук аралдары Kuko Salos Kuka salas കുക്ക് ദ്വീപുകൾ Күүкийн арлууд Cookøyene Cookeilanden Cookøyane Cook Islands Wyspy Cooka Ilhas Cook Ilhas Cook Insulele Cook Острова Кука Cookove ostrovy Cookovi otoki Ishujt Kuk Кукова Острва Cooköarna Visiwa vya Cook หมู่เกาะคุก Cook Adaları Кук утраулары Острови Кука Kuk orollari Quần đảo Cook 库克群岛 庫克群島
48 CL تشيلي Чылі Чили Chile Čile Xile Chile Chile Chile Χιλή Chile Ĉilio Chile Tšiili Txile شیلی Chile Chili Chili an tSile An t-Sile Chile צ׳ילה Čile Chile Chile Cile Síle Cile チリ 칠레 Chile Чили Čilė Čīle ചിലി Чили Chile Chili Chile Chile Chile Chile Chile Chile Чили Čile Čile Kili Чиле Chile Chile ชิลี Şili Чили Чілі Chili Chile 智利 智利
49 CM الكاميرون Камерун Камерун Kameroun Kamerun Camerun Kamerun Cameroun Kamerun Καμερούν Cameroon Kameruno Camerún Kamerun Kamerun کامرون Kamerun Cameroun Cameroun Camarún Camarun Camerún קמרון Kamerun Kamerun Camerun Kamerun Kamerún Camerun カメルーン 카메룬 Cameroon Камерун Kamerūnas Kamerūna കാമറൂൺ Камерун Kamerun Kameroen Kamerun Cameroon Kamerun Camarões Camarões Camerun Камерун Kamerun Kamerun Kamerun Камерун Kamerun Kameruni แคเมอรูน Kamerun Камерун Камерун Kamerun Cameroon 喀麦隆 喀麥隆
50 CN الصين Кітай Китай Sina Kina Xina Čína Kina China Κίνα China Ĉinujo China Hiina Txina چین Kiina Chine Chine an tSín An t-Sìn A China סין Kina Kína China Tiongkok Kína Cina 中国 중국 China Кытай Kinija Ķīna ചൈന Хятад Kina China Kina Китай Chiny China China China Китай Čína Kitajska Kinë Кина Kina Uchina จีน Çin Кытай Китай Xitoy Trung Quốc 中国 中國
51 CO كولومبيا Калумбія Колумбия Kolombia Kolumbija Colòmbia Kolumbie Colombia Kolumbien Κολομβία Colombia Kolombio Colombia Colombia Kolonbia کلمبیا Kolumbia Colombie Colombie an Cholóim Coloimbia Colombia קולומביה Kolumbija Kolumbia Colombia Kolombia Kólumbía Colombia コロンビア 콜롬비아 Colombia Колумбия Kolumbija Kolumbija കൊളംബിയ Колумби Colombia Colombia Colombia Colombia Kolumbia Colômbia Colômbia Columbia Колумбия Kolumbia Kolumbija Kolumbi Колумбија Colombia Kolombia โคลอมเบีย Kolombiya Колумбия Колумбія Kolumbiya Colombia 哥伦比亚 哥倫比亞
52 CP جزيرة كليبيرتون Востраў Кліпертан остров Клипертон Enez Clipperton Ostrvo Kliperton Illa Clipperton Clippertonův ostrov Clippertonøen Clipperton-Insel Νήσος Κλίπερτον Clipperton Island Clipperton Island Isla Clipperton Clippertoni saar Clipperton uhartea جزایر کلیپرتون Clippertoninsaari Île Clipperton Île Clipperton Oileán Clipperton Eilean Clipperton Illa Clipperton האי קליפרטון Otok Clipperton Clipperton-sziget Clipperton Island Pulau Clipperton Clipperton-eyja Isola di Clipperton クリッパートン島 클립퍼튼 섬 Clipperton Island Клиппертон аралы Klipertono sala Klipertona sala ക്ലിപ്പെർട്ടൻ ദ്വീപ് Клиппертон арал Clippertonøya Clipperton Clippertonøya Clipperton Island Wyspa Clippertona Ilha de Clipperton Ilha de Clipperton Insula Clipperton о-в Клиппертон Clipperton Otok Clipperton Ishulli Klipërton Острво Клипертон Clippertonön Kisiwa cha Clipperton เกาะคลิปเปอร์ตัน Clipperton Adası Clipperton Island Острів Кліппертон Klipperton oroli Đảo Clipperton 克利珀顿岛 克里派頓島
53 CR كوستاريكا Коста-Рыка Коста Рика Costa Rica Kostarika Costa Rica Kostarika Costa Rica Costa Rica Κόστα Ρίκα Costa Rica Kostariko Costa Rica Costa Rica Costa Rica کاستاریکا Costa Rica Costa Rica Costa Rica Cósta Ríce Costa Rìcea Costa Rica קוסטה ריקה Kostarika Costa Rica Costa Rica Kosta Rika Kostaríka Costa Rica コスタリカ 코스타리카 Costa Rica Коста-Рика Kosta Rika Kostarika കോസ്റ്ററിക്ക Коста-Рика Costa Rica Costa Rica Costa Rica Costa Rica Kostaryka Costa Rica Costa Rica Costa Rica Коста-Рика Kostarika Kostarika Kosta-Rikë Костарика Costa Rica Kostarika คอสตาริกา Kosta Rika Коста-Рика Коста-Ріка Kosta-Rika Costa Rica 哥斯达黎加 哥斯大黎加
54 CU كوبا Куба Куба Kuba Kuba Cuba Kuba Cuba Kuba Κούβα Cuba Kubo Cuba Kuuba Kuba کوبا Kuuba Cuba Cuba Cúba Cùba Cuba קובה Kuba Kuba Cuba Kuba Kúba Cuba キューバ 쿠바 Cuba Куба Kuba Kuba ക്യൂബ Куба Cuba Cuba Cuba Cuba Kuba Cuba Cuba Cuba Куба Kuba Kuba Kubë Куба Kuba Cuba คิวบา Küba Куба Куба Kuba Cuba 古巴 古巴
55 CV الرأس الأخضر Каба-Вердэ Кабо Верде Kab-Glas Kape Verde Cap Verd Kapverdy Kap Verde Cabo Verde Πράσινο Ακρωτήριο Cape Verde Kabo-Verdo Cabo Verde Roheneemesaared Cabo Verde کیپ‌ورد Kap Verde Cap-Vert Cap-Vert Rinn Verde An Ceap Uaine Cabo Verde כף ורדה Zelenortska Republika Zöld-foki Köztársaság Cape Verde Tanjung Verde Grænhöfðaeyjar Capo Verde カーボベルデ 카보베르데 Cape Verde Кабо-Верде Žaliasis Kyšulys Kaboverde കേപ്പ് വേർഡ് Кабо-Верде Kapp Verde Kaapverdië Kapp Verde Cape Verde Republika Zielonego Przylądka Cabo Verde Cabo Verde Capul Verde Кабо-Верде Kapverdy Zelenortski otoki Kepi i Gjelbër Зеленортска Острва Kap Verde Cape Verde เคปเวิร์ด Cape Verde Кабо-Верде Кабо-Верде Kabo-Verde Cape Verde 佛得角 維德角
56 CW كوراساو Кюрасаа Кюрасао Curaçao Kurasao Curaçao Curaçao Curaçao Curaçao Κουρασάο Curaçao Curaçao Curazao Curaçao Curaçao کوراسائو Curaçao Curaçao Curaçao Curaçao Curaçao Curaçao קוראסאו Curaçao Curaçao Curaçao Curaçao Curacao Curaçao キュラソー 퀴라소 Curaçao Кюрасао Kiurasao Kirasao കുറാകാവോ Кюрасао Curaçao Curaçao Curaçao Curaçao Curaçao Curaçao Curaçao Curaçao Кюрасао Curaçao Curaçao Kurasao Курасао Curaçao Curacao คูราเซา Curaçao Кюрасао Кюрасао Kyurasao Curaçao 库拉索 庫拉索
57 CX جزيرة كريسماس Востраў Каляд остров Рождество Enez Christmas Božićno ostrvo Illa Christmas Vánoční ostrov Juleøen Weihnachtsinsel Νήσος των Χριστουγέννων Christmas Island Christmas Island Isla de Navidad Jõulusaar Christmas uhartea جزیرهٔ کریسمس Joulusaari Île Christmas Île Christmas Oileán na Nollag Eilean na Nollaig Illa Christmas אי חג המולד Božićni otok Karácsony-sziget Insula de Natal Pulau Natal Jólaey Isola Christmas クリスマス島 크리스마스섬 Christmas Island Рождество аралы Kalėdų Sala Ziemsvētku sala ക്രിസ്മസ് ദ്വീപ് Зул сарын арал Christmasøya Christmaseiland Christmasøya Christmas Island Wyspa Bożego Narodzenia Ilha Christmas Ilha Christmas Insula Christmas о-в Рождества Vianočný ostrov Božični otok Ishulli i Krishtlindjes Божићно Острво Julön Kisiwa cha Krismasi เกาะคริสต์มาส Christmas Adası Раштуа утравы Острів Різдва Rojdestvo oroli Đảo Giáng Sinh 圣诞岛 聖誕島
58 CY قبرص Кіпр Кипър Kiprenez Kipar Xipre Kypr Cypern Zypern Κύπρος Cyprus Kipro Chipre Küpros Zipre قبرس Kypros Chypre Chypre an Chipir Cìopras Chipre קפריסין Cipar Ciprus Cypro Siprus Kýpur Cipro キプロス 키프로스 Cyprus Кипр Kipras Kipra സൈപ്രസ് Кипр Kypros Cyprus Kypros Cyprus Cypr Chipre Chipre Cipru Кипр Cyprus Ciper Qipro Кипар Cypern Cyprus ไซปรัส Kıbrıs Кипр Кіпр Kipr Síp 塞浦路斯 賽普勒斯
59 CZ التشيك Чэхія Чехия Tchekia Češka Txèquia Česko Tjekkiet Tschechien Τσεχία Czechia Ĉeĥujo Chequia Tšehhi Txekia چک Tšekki Tchéquie Tchéquie an tSeicia An t-Seic Chequia צ׳כיה Češka Csehország Chechia Ceko Tékkland Cechia チェコ 체코 Czechia Чехия Čekija Čehija ചെക്കിയ Чех Tsjekkia Tsjechië Tsjekkia Czechia Czechy Tchéquia Tchéquia Cehia Чехия Česko Češka Çeki Чешка Tjeckien Chechia เช็ก Çekya Чехия Республикасы Чехія Chexiya Séc 捷克 捷克
60 DE ألمانيا Германія Германия Alamagn Njemačka Alemanya Německo Tyskland Deutschland Γερμανία Germany Germanujo Alemania Saksamaa Alemania آلمان Saksa Allemagne Allemagne an Ghearmáin A’ Ghearmailt Alemaña גרמניה Njemačka Németország Germania Jerman Þýskaland Germania ドイツ 독일 Almayn Германия Vokietija Vācija ജർമ്മനി Герман Tyskland Duitsland Tyskland Герман Niemcy Alemanha Alemanha Germania Германия Nemecko Nemčija Gjermani Немачка Tyskland Ujerumani เยอรมนี Almanya Германия Німеччина Germaniya Đức 德国 德國
61 DG دييغو غارسيا Востраў Дыега-Гарсія Диего Гарсия Diego Garcia Dijego Garsija Diego Garcia Diego García Diego Garcia Diego Garcia Ντιέγκο Γκαρσία Diego Garcia Diego Garcia Diego García Diego Garcia Diego García دیه‌گو گارسیا Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego García דייגו גרסיה Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia ディエゴガルシア島 디에고 가르시아 Diego Garcia Диего Гарсия Diego Garsija Djego Garsijas atols ഡീഗോ ഗ്രാഷ്യ Диего Гарсиа Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Diego Garcia Диего-Гарсия Diego Garcia Diego Garcia Diego-Garsia Дијего Гарсија Diego Garcia Diego Garcia ดิเอโกการ์เซีย Diego Garcia Diego Garcia Дієго-Гарсія Diyego-Garsiya Diego Garcia 迪戈加西亚岛 迪亞哥加西亞島
62 DJ جيبوتي Джыбуці Джибути Djibouti Džibuti Djibouti Džibutsko Djibouti Dschibuti Τζιμπουτί Djibouti Ĝibutio Yibuti Djibouti Djibuti جیبوتی Djibouti Djibouti Djibouti Djibouti Diobùtaidh Djibuti ג׳יבוטי Džibuti Dzsibuti Djibouti Jibuti Djíbútí Gibuti ジブチ 지부티 Djibouti Джибути Džibutis Džibutija ജിബൂത്തി Джибути Djibouti Djibouti Djibouti Djibouti Dżibuti Djibuti Djibuti Djibouti Джибути Džibutsko Džibuti Xhibuti Џибути Djibouti Jibuti จิบูตี Cibuti Җибүти Джибуті Jibuti Djibouti 吉布提 吉布地
63 DK الدانمرك Данія Дания Danmark Danska Dinamarca Dánsko Danmark Dänemark Δανία Denmark Danujo Dinamarca Taani Danimarka دانمارک Tanska Danemark Danemark an Danmhairg An Danmhairg Dinamarca דנמרק Danska Dánia Danmark Denmark Danmörk Danimarca デンマーク 덴마크 Denmark Дания Danija Dānija ഡെൻമാർക്ക് Дани Danmark Denemarken Danmark Denmark Dania Dinamarca Dinamarca Danemarca Дания Dánsko Danska Danimarkë Данска Danmark Denmark เดนมาร์ก Danimarka Дания Данія Daniya Đan Mạch 丹麦 丹麥
64 DM دومينيكا Дамініка Доминика Dominica Dominika Dominica Dominika Dominica Dominica Ντομίνικα Dominica Dominiko Dominica Dominica Dominika دومینیکا Dominica Dominique Dominique Doiminice Doiminicea Dominica דומיניקה Dominika Dominika Dominica Dominika Dóminíka Dominica ドミニカ国 도미니카 Dominica Доминика Dominika Dominika ഡൊമിനിക്ക Доминика Dominica Dominica Dominica Dominica Dominika Dominica Dominica Dominica Доминика Dominika Dominika Dominikë Доминика Dominica Dominika โดมินิกา Dominika Доминика Домініка Dominika Dominica 多米尼克 多米尼克
65 DO جمهورية الدومينيكان Дамініканская Рэспубліка Доминиканска република Republik Dominikan Dominikanska Republika República Dominicana Dominikánská republika Den Dominikanske Republik Dominikanische Republik Δομινικανή Δημοκρατία Dominican Republic Domingo República Dominicana Dominikaani Vabariik Dominikar Errepublika جمهوری دومینیکن Dominikaaninen tasavalta République dominicaine République dominicaine an Phoblacht Dhoiminiceach A’ Phoblachd Dhoiminiceach República Dominicana הרפובליקה הדומיניקנית Dominikanska Republika Dominikai Köztársaság Republica Dominican Republik Dominika Dóminíska lýðveldið Repubblica Dominicana ドミニカ共和国 도미니카 공화국 Dominican Republic Доминика Республикасы Dominikos Respublika Dominikāna ഡൊമിനിക്കൻ റിപ്പബ്ലിക്ക് Бүгд Найрамдах Доминикан Улс Den dominikanske republikk Dominicaanse Republiek Den dominikanske republikken Dominican Republic Dominikana República Dominicana República Dominicana Republica Dominicană Доминиканская Республика Dominikánska republika Dominikanska republika Republika Dominikane Доминиканска Република Dominikanska republiken Jamhuri ya Dominika สาธารณรัฐโดมินิกัน Dominik Cumhuriyeti Доминикана Республикасы Домініканська Республіка Dominikan Respublikasi Cộng hòa Dominica 多米尼加共和国 多明尼加共和國
66 DZ الجزائر Алжыр Алжир Aljeria Alžir Algèria Alžírsko Algeriet Algerien Αλγερία Algeria Alĝerio Argelia Alžeeria Aljeria الجزایر Algeria Algérie Algérie an Ailgéir Aildiria Alxeria אלג׳יריה Alžir Algéria Algeria Aljazair Alsír Algeria アルジェリア 알제리 Algeria Алжир Alžyras Alžīrija അൾജീരിയ Алжир Algerie Algerije Algerie Algeria Algieria Argélia Argélia Algeria Алжир Alžírsko Alžirija Algjeri Алжир Algeriet Aljeria แอลจีเรีย Cezayir Алжир Алжир Jazoir Algeria 阿尔及利亚 阿爾及利亞
67 EA سيوتا وميليلا Сеута і Мелілья Сеута и Мелия Ceuta ha Melilla Seuta i Melilja Ceuta i Melilla Ceuta a Melilla Ceuta og Melilla Ceuta und Melilla Θέουτα και Μελίγια Ceuta & Melilla Ceuta & Melilla Ceuta y Melilla Ceuta ja Melilla Ceuta eta Melilla سبته و ملیله Ceuta ja Melilla Ceuta et Melilla Ceuta et Melilla Ceuta agus Melilla Ceuta agus Melilla Ceuta e Melilla סאוטה ומלייה Ceuta i Melilla Ceuta és Melilla Ceuta & Melilla Ceuta dan Melilla Ceuta og Melilla Ceuta e Melilla セウタ・メリリャ 세우타 및 멜리야 Ceuta & Melilla Сеута жана Мелилла Seuta ir Melila Seūta un Melilja സെയൂത്ത ആൻഡ് മെലിയ Сеута ба Мелилья Ceuta og Melilla Ceuta en Melilla Ceuta og Melilla Ceuta & Melilla Ceuta i Melilla Ceuta e Melilla Ceuta e Melilla Ceuta și Melilla Сеута и Мелилья Ceuta a Melilla Ceuta in Melilla Theuta e Melila Сеута и Мелиља Ceuta och Melilla Ceuta na Melilla เซวตาและเมลียา Ceuta ve Melilla Ceuta & Melilla Сеута і Мелілья Seuta va Melilya Ceuta và Melilla 休达及梅利利亚 休達與梅利利亞
68 EC الإكوادور Эквадор Еквадор Ecuador Ekvador Equador Ekvádor Ecuador Ecuador Ισημερινός Ecuador Ekvadoro Ecuador Ecuador Ekuador اکوادور Ecuador Équateur Équateur Eacuadór Eacuador Ecuador אקוודור Ekvador Ecuador Ecuador Ekuador Ekvador Ecuador エクアドル 에콰도르 Ecuador Эквадор Ekvadoras Ekvadora ഇക്വഡോർ Эквадор Ecuador Ecuador Ecuador Ecuador Ekwador Equador Equador Ecuador Эквадор Ekvádor Ekvador Ekuador Еквадор Ecuador Ecuador เอกวาดอร์ Ekvador Эквадор Еквадор Ekvador Ecuador 厄瓜多尔 厄瓜多
69 EE إستونيا Эстонія Естония Estonia Estonija Estònia Estonsko Estland Estland Εσθονία Estonia Estonujo Estonia Eesti Estonia استونی Viro Estonie Estonie an Eastóin An Eastoin Estonia אסטוניה Estonija Észtország Estonia Estonia Eistland Estonia エストニア 에스토니아 Estonia Эстония Estija Igaunija എസ്റ്റോണിയ‍ Эстони Estland Estland Estland Estonia Estonia Estônia Estônia Estonia Эстония Estónsko Estonija Estoni Естонија Estland Estonia เอสโตเนีย Estonya Эстония Естонія Estoniya Estonia 爱沙尼亚 愛沙尼亞
70 EG مصر Егіпет Египет Egipt Egipat Egipte Egypt Egypten Ägypten Αίγυπτος Egypt Egipto Egipto Egiptus Egipto مصر Egypti Égypte Égypte an Éigipt An Èiphit Exipto מצרים Egipat Egyiptom Egypto Mesir Egyptaland Egitto エジプト 이집트 Egypt Египет Egiptas Ēģipte ഈജിപ്ത് Египет Egypt Egypte Egypt Egypt Egipt Egito Egito Egipt Египет Egypt Egipt Egjipt Египат Egypten Misri อียิปต์ Mısır Мисыр Єгипет Misr Ai Cập 埃及 埃及
71 EH الصحراء الغربية Заходняя Сахара Западна Сахара Sahara ar Cʼhornôg Zapadna Sahara Sàhara Occidental Západní Sahara Vestsahara Westsahara Δυτική Σαχάρα Western Sahara Okcidenta Saharo Sáhara Occidental Lääne-Sahara Mendebaldeko Sahara صحرای غربی Länsi-Sahara Sahara occidental Sahara occidental an Sahára Thiar Sathara an Iar O Sáhara Occidental סהרה המערבית Zapadna Sahara Nyugat-Szahara Sahara occidental Sahara Barat Vestur-Sahara Sahara occidentale 西サハラ 서사하라 Western Sahara Батыш Сахара Vakarų Sachara Rietumsahāra പശ്ചിമ സഹാറ Баруун Сахар Vest-Sahara Westelijke Sahara Vest-Sahara Western Sahara Sahara Zachodnia Saara Ocidental Saara Ocidental Sahara Occidentală Западная Сахара Západná Sahara Zahodna Sahara Saharaja Perëndimore Западна Сахара Västsahara Sahara Magharibi ซาฮาราตะวันตก Batı Sahra Western Sahara Західна Сахара G‘arbiy Sahroi Kabir Tây Sahara 西撒哈拉 西撒哈拉
72 ER إريتريا Эрытрэя Еритрея Eritrea Eritreja Eritrea Eritrea Eritrea Eritrea Ερυθραία Eritrea Eritreo Eritrea Eritrea Eritrea اریتره Eritrea Érythrée Érythrée an Eiritré Eartra Eritrea אריתריאה Eritreja Eritrea Eritrea Eritrea Erítrea Eritrea エリトリア 에리트리아 Eritrea Эритрея Eritrėja Eritreja എറിത്രിയ Эритрей Eritrea Eritrea Eritrea Eritrea Erytrea Eritreia Eritreia Eritreea Эритрея Eritrea Eritreja Eritre Еритреја Eritrea Eritrea เอริเทรีย Eritre Эритрея Еритрея Eritreya Eritrea 厄立特里亚 厄利垂亞
73 ES إسبانيا Іспанія Испания Spagn Španija Espanya Španělsko Spanien Spanien Ισπανία Spain Hispanujo España Hispaania Espainia اسپانیا Espanja Espagne Espagne an Spáinn An Spàinnt España ספרד Španjolska Spanyolország Espania Spanyol Spánn Spagna スペイン 스페인 Spain Испания Ispanija Spānija സ്‌പെയിൻ Испани Spania Spanje Spania Spain Hiszpania Espanha Espanha Spania Испания Španielsko Španija Spanjë Шпанија Spanien Uhispania สเปน İspanya Испания Іспанія Ispaniya Tây Ban Nha 西班牙 西班牙
74 ET إثيوبيا Эфіопія Етиопия Etiopia Etiopija Etiòpia Etiopie Etiopien Äthiopien Αιθιοπία Ethiopia Etiopujo Etiopía Etioopia Etiopia اتیوپی Etiopia Éthiopie Éthiopie an Aetóip An Itiop Etiopía אתיופיה Etiopija Etiópia Ethiopia Etiopia Eþíópía Etiopia エチオピア 에티오피아 Ethiopia Эфиопия Etiopija Etiopija എത്യോപ്യ Этиоп Etiopia Ethiopië Etiopia Ethiopia Etiopia Etiópia Etiópia Etiopia Эфиопия Etiópia Etiopija Etiopi Етиопија Etiopien Ethiopia เอธิโอเปีย Etiyopya Эфиопия Ефіопія Efiopiya Ethiopia 埃塞俄比亚 衣索比亞
75 EU الاتحاد الأوروبي Еўрапейскі саюз Европейски съюз Unaniezh Europa Evropska unija Unió Europea Evropská unie Den Europæiske Union Europäische Union Ευρωπαϊκή Ένωση European Union European Union Unión Europea Euroopa Liit Europar Batasuna اتحادیهٔ اروپا Euroopan unioni Union européenne Union européenne an tAontas Eorpach An t-Aonadh Eòrpach Unión Europea האיחוד האירופי Europska unija Európai Unió Union Europee Uni Eropa Evrópusambandið Unione Europea 欧州連合 유럽 연합 Unyans Europek Европа Биримдиги Europos Sąjunga Eiropas Savienība യൂറോപ്യൻ യൂണിയൻ Европын Холбоо Den europeiske union Europese Unie European Union European Union Unia Europejska União Europeia União Europeia Uniunea Europeană Европейский союз Európska únia Evropska unija Bashkimi Evropian Европска унија Europeiska unionen Umoja wa Ulaya สหภาพยุโรป Avrupa Birliği European Union Європейський Союз Yevropa Ittifoqi Liên Minh Châu Âu 欧盟 歐盟
76 FI فنلندا Фінляндыя Финландия Finland Finska Finlàndia Finsko Finland Finnland Φινλανδία Finland Finnlando Finlandia Soome Finlandia فنلاند Suomi Finlande Finlande an Fhionlainn An Fhionnlann Finlandia פינלנד Finska Finnország Finlandia Finlandia Finnland Finlandia フィンランド 핀란드 Finland Финляндия Suomija Somija ഫിൻലാൻഡ് Финлянд Finland Finland Finland Finland Finlandia Finlândia Finlândia Finlanda Финляндия Fínsko Finska Finlandë Финска Finland Ufini ฟินแลนด์ Finlandiya Финляндия Фінляндія Finlandiya Phần Lan 芬兰 芬蘭
77 FJ فيجي Фіджы Фиджи Fidji Fidži Fiji Fidži Fiji Fidschi Φίτζι Fiji Fiĝoj Fiyi Fidži Fiji فیجی Fidži Fidji Fidji Fidsí Fìdi Fixi פיג׳י Fidži Fidzsi Fiji Fiji Fídjíeyjar Figi フィジー 피지 Fiji Фиджи Fidžis Fidži ഫിജി Фижи Fiji Fiji Fiji Fiji Fidżi Fiji Fiji Fiji Фиджи Fidži Fidži Fixhi Фиџи Fiji Fiji ฟิจิ Fiji Фиджи Фіджі Fiji Fiji 斐济 斐濟
78 FK جزر فوكلاند Фалклендскія астравы Фолкландски острови Inizi Falkland Folklandska ostrva Illes Malvines Falklandské ostrovy Falklandsøerne Falklandinseln Νήσοι Φόκλαντ Falkland Islands Falkland Islands Islas Malvinas Falklandi saared Falklandak جزایر فالکلند Falklandinsaaret Îles Malouines Îles Malouines Oileáin Fháclainne Na h-Eileanan Fàclannach Illas Malvinas איי פוקלנד Falklandski otoci Falkland-szigetek Falkland Islands Kepulauan Falkland Falklandseyjar Isole Falkland フォークランド諸島 포클랜드 제도 Falkland Islands Фолкленд аралдары Folklando Salos Folklenda salas ഫാക്ക്‌ലാന്റ് ദ്വീപുകൾ Фолклендийн арлууд Falklandsøyene Falklandeilanden Falklandsøyane Falkland Islands Falklandy Ilhas Malvinas Ilhas Malvinas Insulele Falkland Фолклендские о-ва Falklandy Falklandski otoki Ishujt Falkland Фокландска Острва Falklandsöarna Visiwa vya Falkland หมู่เกาะฟอล์กแลนด์ Falkland Adaları Фолкленд утраулары Фолклендські Острови Folklend orollari Quần đảo Falkland 福克兰群岛 福克蘭群島
79 FM ميكرونيزيا Мікранезія Микронезия Mikronezia Mikronezija Micronèsia Mikronésie Mikronesien Mikronesien Μικρονησία Micronesia Mikronezio Micronesia Mikroneesia Mikronesia میکرونزی Mikronesian liittovaltio États fédérés de Micronésie États fédérés de Micronésie an Mhicrinéis Na Meanbh-eileanan Micronesia מיקרונזיה Mikronezija Mikronézia Micronesia Mikronesia Míkrónesía Micronesia ミクロネシア連邦 미크로네시아 Micronesia Микронезия Mikronezija Mikronēzija മൈക്രോനേഷ്യ Микронези Mikronesiaføderasjonen Micronesia Mikronesiaføderasjonen Micronesia Mikronezja Micronésia Micronésia Micronezia Федеративные Штаты Микронезии Mikronézia Mikronezija Mikronezi Микронезија Mikronesien Micronesia ไมโครนีเซีย Mikronezya Микронезия Мікронезія Mikroneziya Micronesia 密克罗尼西亚 密克羅尼西亞
80 FO جزر فارو Фарэрскія астравы Фарьорски острови Inizi Faero Farska ostrva Illes Fèroe Faerské ostrovy Færøerne Färöer Νήσοι Φερόες Faroe Islands Ferooj Islas Feroe Fääri saared Faroe uharteak جزایر فارو Färsaaret Îles Féroé Îles Féroé Oileáin Fharó Na h-Eileanan Fàro Illas Feroe איי פארו Farski otoci Feröer szigetek Insulas Feroe Kepulauan Faroe Færeyjar Isole Fær Øer フェロー諸島 페로 제도 Faroe Islands Фарер аралдары Farerų Salos Fēru salas ഫറോ ദ്വീപുകൾ Фарерын арлууд Færøyene Faeröer Færøyane Faroe Islands Wyspy Owcze Ilhas Faroe Ilhas Faroe Insulele Feroe Фарерские о-ва Faerské ostrovy Ferski otoki Ishujt Faroe Фарска Острва Färöarna Visiwa vya Faroe หมู่เกาะแฟโร Faroe Adaları Фарер утраулары Фарерські Острови Farer orollari Quần đảo Faroe 法罗群岛 法羅群島
81 FR فرنسا Францыя Франция Frañs Francuska França Francie Frankrig Frankreich Γαλλία France Francujo Francia Prantsusmaa Frantzia فرانسه Ranska France France an Fhrainc An Fhraing Francia צרפת Francuska Franciaország Francia Prancis Frakkland Francia フランス 프랑스 Pow Frenk Франция Prancūzija Francija ഫ്രാൻസ് Франц Frankrike Frankrijk Frankrike Франц Francja França França Franța Франция Francúzsko Francija Francë Француска Frankrike Ufaransa ฝรั่งเศส Fransa Франция Франція Fransiya Pháp 法国 法國
82 GA الغابون Габон Габон Gabon Gabon Gabon Gabon Gabon Gabun Γκαμπόν Gabon Gabono Gabón Gabon Gabon گابن Gabon Gabon Gabon an Ghabúin Gabon Gabón גבון Gabon Gabon Gabon Gabon Gabon Gabon ガボン 가봉 Gabon Габон Gabonas Gabona ഗാബൺ Габон Gabon Gabon Gabon Gabon Gabon Gabão Gabão Gabon Габон Gabon Gabon Gabon Габон Gabon Gabon กาบอง Gabon Габон Габон Gabon Gabon 加蓬 加彭
83 GB المملكة المتحدة Вялікабрытанія Обединеното кралство Rouantelezh-Unanet Ujedinjeno Kraljevstvo Regne Unit Spojené království Storbritannien Vereinigtes Königreich Ηνωμένο Βασίλειο United Kingdom Unuiĝinta Reĝlando Reino Unido Suurbritannia Erresuma Batua بریتانیا Iso-Britannia Royaume-Uni Royaume-Uni an Ríocht Aontaithe An Rìoghachd Aonaichte O Reino Unido בריטניה Ujedinjeno Kraljevstvo Egyesült Királyság Regno Unite Inggris Raya Bretland Regno Unito イギリス 영국 Rywvaneth Unys Улуу Британия Jungtinė Karalystė Apvienotā Karaliste യുണൈറ്റഡ് കിംഗ്ഡം Их Британи Storbritannia Verenigd Koninkrijk Storbritannia Стыр Британи Wielka Brytania Reino Unido Reino Unido Regatul Unit Великобритания Spojené kráľovstvo Združeno kraljestvo Mbretëria e Bashkuar Уједињено Краљевство Storbritannien Ufalme wa Muungano สหราชอาณาจักร Birleşik Krallık Берләшкән Корольлек Велика Британія Buyuk Britaniya Vương quốc Anh 英国 英國
84 GD غرينادا Грэнада Гренада Grenada Grenada Grenada Grenada Grenada Grenada Γρενάδα Grenada Grenado Granada Grenada Grenada گرنادا Grenada Grenade Grenade Greanáda Greanàda Granada גרנדה Grenada Grenada Grenada Grenada Grenada Grenada グレナダ 그레나다 Grenada Гренада Grenada Grenāda ഗ്രനേഡ Гренада Grenada Grenada Grenada Grenada Grenada Granada Granada Grenada Гренада Grenada Grenada Granadë Гренада Grenada Grenada เกรเนดา Grenada Гренада Ґренада Grenada Grenada 格林纳达 格瑞那達
85 GE جورجيا Грузія Грузия Jorjia Gruzija Geòrgia Gruzie Georgien Georgien Γεωργία Georgia Kartvelujo Georgia Gruusia Georgia گرجستان Georgia Géorgie Géorgie an tSeoirsia A’ Chairtbheil Xeorxia גאורגיה Gruzija Grúzia Georgia Georgia Georgía Georgia ジョージア 조지아 Georgia Грузия Gruzija Gruzija ജോർജ്ജിയ Гүрж Georgia Georgië Georgia Гуырдзыстон Gruzja Geórgia Geórgia Georgia Грузия Gruzínsko Gruzija Gjeorgji Грузија Georgien Jojia จอร์เจีย Gürcistan Грузия Грузія Gruziya Georgia 格鲁吉亚 喬治亞
86 GF غويانا الفرنسية Французская Гвіяна Френска Гвиана Gwiana cʼhall Francuska Gvajana Guaiana Francesa Francouzská Guyana Fransk Guyana Französisch-Guayana Γαλλική Γουιάνα French Guiana Franca Gviano Guayana Francesa Prantsuse Guajaana Guyana Frantsesa گویان فرانسه Ranskan Guayana Guyane française Guyane française Guáin na Fraince Guidheàna na Frainge Güiana Francesa גיאנה הצרפתית Francuska Gijana Francia Guyana Guyana francese Guyana Prancis Franska Gvæjana Guyana francese 仏領ギアナ 프랑스령 기아나 French Guiana Француздук Гвиана Prancūzijos Gviana Francijas Gviāna ഫ്രഞ്ച് ഗയാന Францын Гвиана Fransk Guyana Frans-Guyana Fransk Guyana French Guiana Gujana Francuska Guiana Francesa Guiana Francesa Guyana Franceză Французская Гвиана Francúzska Guyana Francoska Gvajana Guajana Franceze Француска Гвајана Franska Guyana Guiana ya Ufaransa เฟรนช์เกียนา Fransız Guyanası Француз Гвианасы Французька Ґвіана Fransuz Gvianasi Guiana thuộc Pháp 法属圭亚那 法屬圭亞那
87 GG غيرنزي Гернсі Гърнзи Gwernenez Gernzi Guernsey Guernsey Guernsey Guernsey Γκέρνζι Guernsey Guernsey Guernsey Guernsey Guernesey گرنزی Guernsey Guernesey Guernesey Geansaí Geàrnsaidh Guernsey גרנזי Guernsey Guernsey Guernsey Guernsey Guernsey Guernsey ガーンジー 건지 Guernsey Гернси Gernsis Gērnsija ഗേൺസി Гернси Guernsey Guernsey Guernsey Guernsey Guernsey Guernsey Guernsey Guernsey Гернси Guernsey Guernsey Gernsej Гернзи Guernsey Guernsey เกิร์นซีย์ Guernsey Гернси Ґернсі Gernsi Guernsey 根西岛 根息
88 GH غانا Гана Гана Ghana Gana Ghana Ghana Ghana Ghana Γκάνα Ghana Ganao Ghana Ghana Ghana غنا Ghana Ghana Ghana Gána Gàna Ghana גאנה Gana Ghána Ghana Ghana Gana Ghana ガーナ 가나 Ghana Гана Gana Gana ഘാന Гана Ghana Ghana Ghana Ghana Ghana Gana Gana Ghana Гана Ghana Gana Ganë Гана Ghana Ghana กานา Gana Гана Гана Gana Ghana 加纳 迦納
89 GI جبل طارق Гібралтар Гибралтар Jibraltar Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Γιβραλτάρ Gibraltar Ĝibraltaro Gibraltar Gibraltar Gibraltar جبل‌الطارق Gibraltar Gibraltar Gibraltar Giobráltar Diobraltar Xibraltar גיברלטר Gibraltar Gibraltár Gibraltar Gibraltar Gíbraltar Gibilterra ジブラルタル 지브롤터 Gibraltar Гибралтар Gibraltaras Gibraltārs ജിബ്രാൾട്ടർ Гибралтар Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Gibraltar Гибралтар Gibraltár Gibraltar Gjibraltar Гибралтар Gibraltar Gibraltar ยิบรอลตาร์ Cebelitarık Гибралтар Ґібралтар Gibraltar Gibraltar 直布罗陀 直布羅陀
90 GL غرينلاند Грэнландыя Гренландия Greunland Grenland Groenlàndia Grónsko Grønland Grönland Γροιλανδία Greenland Gronlando Groenlandia Gröönimaa Groenlandia گرینلند Grönlanti Groenland Groenland an Ghraonlainn A’ Ghraonlann Groenlandia גרינלנד Grenland Grönland Groenlandia Grinlandia Grænland Groenlandia グリーンランド 그린란드 Greenland Гренландия Grenlandija Grenlande ഗ്രീൻലാൻറ് Гренланд Grønland Groenland Grønland Greenland Grenlandia Groenlândia Groenlândia Groenlanda Гренландия Grónsko Grenlandija Grënlandë Гренланд Grönland Greenland กรีนแลนด์ Grönland Гренландия Ґренландія Grenlandiya Greenland 格陵兰 格陵蘭
91 GM غامبيا Гамбія Гамбия Gambia Gambija Gàmbia Gambie Gambia Gambia Γκάμπια Gambia Gambio Gambia Gambia Gambia گامبیا Gambia Gambie Gambie an Ghaimbia A’ Ghaimbia Gambia גמביה Gambija Gambia Gambia Gambia Gambía Gambia ガンビア 감비아 Gambia Гамбия Gambija Gambija ഗാംബിയ Гамби Gambia Gambia Gambia Gambia Gambia Gâmbia Gâmbia Gambia Гамбия Gambia Gambija Gambi Гамбија Gambia Gambia แกมเบีย Gambiya Гамбия Гамбія Gambiya Gambia 冈比亚 甘比亞
92 GN غينيا Гвінея Гвинея Ginea Gvineja Guinea Guinea Guinea Guinea Γουινέα Guinea Gvineo Guinea Guinea Ginea گینه Guinea Guinée Guinée an Ghuine Gini Guinea גינאה Gvineja Guinea Guinea Guinea Gínea Guinea ギニア 기니 Guinea Гвинея Gvinėja Gvineja ഗിനിയ Гвиней Guinea Guinee Guinea Guinea Gwinea Guiné Guiné Guineea Гвинея Guinea Gvineja Guine Гвинеја Guinea Gine กินี Gine Гвинея Гвінея Gvineya Guinea 几内亚 幾內亞
93 GP غوادلوب Гвадэлупа Гваделупа Gwadeloup Gvadalupe Guadeloupe Guadeloupe Guadeloupe Guadeloupe Γουαδελούπη Guadeloupe Gvadelupo Guadalupe Guadeloupe Guadalupe گوادلوپ Guadeloupe Guadeloupe Guadeloupe Guadalúip Guadalup Guadalupe גוואדלופ Guadalupe Guadeloupe Guadeloupe Guadeloupe Gvadelúpeyjar Guadalupa グアドループ 과들루프 Guadeloupe Гваделупа Gvadelupa Gvadelupa ഗ്വാഡലൂപ്പ് Гваделуп Guadeloupe Guadeloupe Guadeloupe Guadeloupe Gwadelupa Guadalupe Guadalupe Guadelupa Гваделупа Guadeloupe Guadeloupe Guadelupë Гваделуп Guadeloupe Guadeloupe กวาเดอลูป Guadeloupe Гваделупа Ґваделупа Gvadelupe Guadeloupe 瓜德罗普 瓜地洛普
94 GQ غينيا الاستوائية Экватарыяльная Гвінея Екваториална Гвинея Ginea ar Cʼheheder Ekvatorijalna Gvineja Guinea Equatorial Rovníková Guinea Ækvatorialguinea Äquatorialguinea Ισημερινή Γουινέα Equatorial Guinea Ekvatora Gvineo Guinea Ecuatorial Ekvatoriaal-Guinea Ekuatore Ginea گینهٔ استوایی Päiväntasaajan Guinea Guinée équatoriale Guinée équatoriale an Ghuine Mheánchiorclach Gini Mheadhan-Chriosach Guinea Ecuatorial גינאה המשוונית Ekvatorska Gvineja Egyenlítői-Guinea Guinea equatorial Guinea Ekuatorial Miðbaugs-Gínea Guinea Equatoriale 赤道ギニア 적도 기니 Equatorial Guinea Экватордук Гвинея Pusiaujo Gvinėja Ekvatoriālā Gvineja ഇക്വറ്റോറിയൽ ഗിനിയ Экваторын Гвиней Ekvatorial-Guinea Equatoriaal-Guinea Ekvatorial-Guinea Equatorial Guinea Gwinea Równikowa Guiné Equatorial Guiné Equatorial Guineea Ecuatorială Экваториальная Гвинея Rovníková Guinea Ekvatorialna Gvineja Guineja Ekuatoriale Екваторијална Гвинеја Ekvatorialguinea Guinea ya Ikweta อิเควทอเรียลกินี Ekvator Ginesi Экваториаль Гвинея Екваторіальна Гвінея Ekvatorial Gvineya Guinea Xích Đạo 赤道几内亚 赤道幾內亞
95 GR اليونان Грэцыя Гърция Gres Grčka Grècia Řecko Grækenland Griechenland Ελλάδα Greece Grekujo Grecia Kreeka Grezia یونان Kreikka Grèce Grèce an Ghréig A’ Ghreug Grecia יוון Grčka Görögország Grecia Yunani Grikkland Grecia ギリシャ 그리스 Greece Греция Graikija Grieķija ഗ്രീസ് Грек Hellas Griekenland Hellas Greece Grecja Grécia Grécia Grecia Греция Grécko Grčija Greqi Грчка Grekland Ugiriki กรีซ Yunanistan Греция Греція Gretsiya Hy Lạp 希腊 希臘
96 GS جورجيا الجنوبية وجزر ساندويتش الجنوبية Паўднёвая Георгія і Паўднёвыя Сандвічавы астравы Южна Джорджия и Южни Сандвичеви острови Inizi Georgia ar Su hag Inizi Sandwich ar Su Južna Džordžija i Južna Sendvič ostrva Illes Geòrgia del Sud i Sandwich del Sud Jižní Georgie a Jižní Sandwichovy ostrovy South Georgia og De Sydlige Sandwichøer Südgeorgien und die Südlichen Sandwichinseln Νήσοι Νότια Γεωργία και Νότιες Σάντουιτς South Georgia & South Sandwich Islands Sud-Georgio kaj Sud-Sandviĉinsuloj Islas Georgia del Sur y Sandwich del Sur Lõuna-Georgia ja Lõuna-Sandwichi saared Hegoaldeko Georgia eta Hegoaldeko Sandwich uharteak جورجیای جنوبی و جزایر ساندویچ جنوبی Etelä-Georgia ja Eteläiset Sandwichsaaret Géorgie du Sud et îles Sandwich du Sud Géorgie du Sud et îles Sandwich du Sud an tSeoirsia Theas agus Oileáin Sandwich Theas Seòirsea a Deas is na h-Eileanan Sandwich a Deas Illas Xeorxia do Sur e Sandwich do Sur ג׳ורג׳יה הדרומית ואיי סנדוויץ׳ הדרומיים Južna Georgija i Južni Sendvički Otoci Déli-Georgia és Déli-Sandwich-szigetek South Georgia & South Sandwich Islands Georgia Selatan & Kep. Sandwich Selatan Suður-Georgía og Suður-Sandvíkureyjar Georgia del Sud e Sandwich australi サウスジョージア・サウスサンドウィッチ諸島 사우스조지아 사우스샌드위치 제도 South Georgia & South Sandwich Islands Түштүк Жоржия жана Түштүк Сэндвич аралдары Pietų Džordžija ir Pietų Sandvičo salos Dienviddžordžija un Dienvidsendviču salas ദക്ഷിണ ജോർജ്ജിയയും ദക്ഷിണ സാൻഡ്‌വിച്ച് ദ്വീപുകളും Өмнөд Жоржиа ба Өмнөд Сэндвичийн арлууд Sør-Georgia og Sør-Sandwichøyene Zuid-Georgia en Zuidelijke Sandwicheilanden Sør-Georgia og Sør-Sandwichøyene South Georgia & South Sandwich Islands Georgia Południowa i Sandwich Południowy Ilhas Geórgia do Sul e Sandwich do Sul Ilhas Geórgia do Sul e Sandwich do Sul Georgia de Sud și Insulele Sandwich de Sud Южная Георгия и Южные Сандвичевы о-ва Južná Georgia a Južné Sandwichove ostrovy Južna Georgia in Južni Sandwichevi otoki Xhorxha Jugore dhe Ishujt Senduiçë të Jugut Јужна Џорџија и Јужна Сендвичка Острва Sydgeorgien och Sydsandwichöarna Visiwa vya Georgia Kusini na Sandwich Kusini เกาะเซาท์จอร์เจียและหมู่เกาะเซาท์แซนด์วิช Güney Georgia ve Güney Sandwich Adaları Көньяк Георгия һәм Көньяк Сандвич утраулары Південна Джорджія та Південні Сандвічеві Острови Janubiy Georgiya va Janubiy Sendvich orollari Nam Georgia & Quần đảo Nam Sandwich 南乔治亚和南桑威奇群岛 南喬治亞與南三明治群島
97 GT غواتيمالا Гватэмала Гватемала Guatemala Gvatemala Guatemala Guatemala Guatemala Guatemala Γουατεμάλα Guatemala Gvatemalo Guatemala Guatemala Guatemala گواتمالا Guatemala Guatemala Guatemala Guatamala Guatamala Guatemala גואטמלה Gvatemala Guatemala Guatemala Guatemala Gvatemala Guatemala グアテマラ 과테말라 Guatemala Гватемала Gvatemala Gvatemala ഗ്വാട്ടിമാല Гватемал Guatemala Guatemala Guatemala Guatemala Gwatemala Guatemala Guatemala Guatemala Гватемала Guatemala Gvatemala Guatemalë Гватемала Guatemala Guatemala กัวเตมาลา Guatemala Гватемала Ґватемала Gvatemala Guatemala 危地马拉 瓜地馬拉
98 GU غوام Гуам Гуам Guam Guam Guam Guam Guam Guam Γκουάμ Guam Gvamo Guam Guam Guam گوام Guam Guam Guam Guam Guam Guam גואם Guam Guam Guam Guam Gvam Guam グアム Guam Гуам Guamas Guama ഗ്വാം Гуам Guam Guam Guam Guam Guam Guam Guam Guam Гуам Guam Guam Guam Гуам Guam Guam กวม Guam Гуам Ґуам Guam Guam 关岛 關島
99 GW غينيا بيساو Гвінея-Бісау Гвинея-Бисау Ginea-Bissau Gvineja-Bisao Guinea Bissau Guinea-Bissau Guinea-Bissau Guinea-Bissau Γουινέα Μπισάου Guinea-Bissau Gvineo-Bisaŭo Guinea-Bisáu Guinea-Bissau Ginea Bissau گینهٔ بیسائو Guinea-Bissau Guinée-Bissau Guinée-Bissau Guine Bissau Gini-Bioso A Guinea Bissau גינאה-ביסאו Gvineja Bisau Bissau-Guinea Guinea-Bissau Guinea-Bissau Gínea-Bissá Guinea-Bissau ギニアビサウ 기니비사우 Guinea-Bissau Гвинея-Бисау Bisau Gvinėja Gvineja-Bisava ഗിനിയ-ബിസൗ Гвиней-Бисау Guinea-Bissau Guinee-Bissau Guinea-Bissau Guinea-Bissau Gwinea Bissau Guiné-Bissau Guiné-Bissau Guineea-Bissau Гвинея-Бисау Guinea-Bissau Gvineja Bissau Guine-Bisau Гвинеја-Бисао Guinea-Bissau Ginebisau กินี-บิสเซา Gine-Bissau Гвинея-Бисау Гвінея-Бісау Gvineya-Bisau Guinea-Bissau 几内亚比绍 幾內亞比索
100 GY غيانا Гаяна Гаяна Guyana Gvajana Guyana Guyana Guyana Guyana Γουιάνα Guyana Gujano Guyana Guyana Guyana گویان Guyana Guyana Guyana an Ghuáin Guidheàna Güiana גיאנה Gvajana Guyana Guyana Guyana Gvæjana Guyana ガイアナ 가이아나 Guyana Гайана Gajana Gajāna ഗയാന Гайана Guyana Guyana Guyana Guyana Gujana Guiana Guiana Guyana Гайана Guyana Gvajana Guajanë Гвајана Guyana Guyana กายอานา Guyana Гайана Ґайана Gayana Guyana 圭亚那 蓋亞那
101 HK هونغ كونغ Ганконг Хонконг Hong Kong Hong Kong Hong Kong Hongkong Hongkong Hongkong Χονγκ Κονγκ Hong Kong Hong Kong Hong Kong Hongkong Hong Kong هنگ‌کنگ Hongkong Hong Kong Hong Kong Hong Cong Hong Kong Hong Kong הונג קונג Hong Kong Hongkong Hong Kong Hong Kong Hong Kong Hong Kong 香港 홍콩 Hong Kong Гонконг Honkongas Honkonga ഹോങ്കോങ് Хонг Конг Hongkong Hongkong Hongkong Hong Kong Hongkong Hong Kong Hong Kong Hong Kong Гонконг Hongkong Hongkong Hong-Kong Хонгконг Hong Kong Hong Kong ฮ่องกง Hong Kong Гонконг Гонконг Gonkong Hồng Kông 香港 香港
102 HM جزيرة هيرد وجزر ماكدونالد Астравы Херд і Макдональд острови Хърд и Макдоналд Inizi Heard ha McDonald Herd i arhipelag MekDonald Illa Heard i Illes McDonald Heardův ostrov a McDonaldovy ostrovy Heard Island og McDonald Islands Heard und McDonaldinseln Νήσοι Χερντ και Μακντόναλντ Heard & McDonald Islands Herda kaj Makdonaldaj Insuloj Islas Heard y McDonald Heardi ja McDonaldi saared Heard eta McDonald uharteak هرد و جزایر مک‌دونالد Heard ja McDonaldinsaaret Îles Heard et McDonald Îles Heard et McDonald Oileán Heard agus Oileáin McDonald Eilean Heard is MhicDhòmhnaill Illa Heard e Illas McDonald איי הרד ומקדונלד Otoci Heard i McDonald Heard-sziget és McDonald-szigetek Heard & McDonald Islands Pulau Heard dan Kepulauan McDonald Heard og McDonaldseyjar Isole Heard e McDonald ハード島・マクドナルド諸島 허드 맥도널드 제도 Heard & McDonald Islands Херд жана Макдональд аралдары Herdo ir Makdonaldo Salos Hērda sala un Makdonalda salas ഹിയേർഡും മക്‌ഡൊണാൾഡ് ദ്വീപുകളും Херд ба Макдональдийн арлууд Heard- og McDonaldøyene Heard en McDonaldeilanden Heardøya og McDonaldøyane Heard & McDonald Islands Wyspy Heard i McDonalda Ilhas Heard e McDonald Ilhas Heard e McDonald Insula Heard și Insulele McDonald о-ва Херд и Макдональд Heardov ostrov a Macdonaldove ostrovy Heardov otok in McDonaldovi otoki Ishujt Hërd e Mekdonald Острво Херд и Мекдоналдова острва Heardön och McDonaldöarna Kisiwa cha Heard na Visiwa vya McDonald เกาะเฮิร์ดและหมู่เกาะแมกดอนัลด์ Heard Adası ve McDonald Adaları Херд утравы һәм Макдональд утраулары Острови Герд і Макдоналд Xerd va Makdonald orollari Quần đảo Heard và McDonald 赫德岛和麦克唐纳群岛 赫德島及麥唐納群島
103 HN هندوراس Гандурас Хондурас Honduras Honduras Hondures Honduras Honduras Honduras Ονδούρα Honduras Honduro Honduras Honduras Honduras هندوراس Honduras Honduras Honduras Hondúras Hondùras Honduras הונדורס Honduras Honduras Honduras Honduras Hondúras Honduras ホンジュラス 온두라스 Honduras Гондурас Hondūras Hondurasa ഹോണ്ടുറാസ് Гондурас Honduras Honduras Honduras Honduras Honduras Honduras Honduras Honduras Гондурас Honduras Honduras Honduras Хондурас Honduras Honduras ฮอนดูรัส Honduras Гондурас Гондурас Gonduras Honduras 洪都拉斯 宏都拉斯
104 HR كرواتيا Харватыя Хърватия Kroatia Hrvatska Croàcia Chorvatsko Kroatien Kroatien Κροατία Croatia Kroatujo Croacia Horvaatia Kroazia کرواسی Kroatia Croatie Croatie an Chróit A’ Chròthais Croacia קרואטיה Hrvatska Horvátország Croatia Kroasia Króatía Croazia クロアチア 크로아티아 Croatia Хорватия Kroatija Horvātija ക്രൊയേഷ്യ Хорват Kroatia Kroatië Kroatia Croatia Chorwacja Croácia Croácia Croația Хорватия Chorvátsko Hrvaška Kroaci Хрватска Kroatien Croatia โครเอเชีย Hırvatistan Хорватия Хорватія Xorvatiya Croatia 克罗地亚 克羅埃西亞
105 HT هايتي Гаіці Хаити Haiti Haiti Haití Haiti Haiti Haiti Αϊτή Haiti Haitio Haití Haiti Haiti هائیتی Haiti Haïti Haïti Háítí Haidhti Haití האיטי Haiti Haiti Haiti Haiti Haítí Haiti ハイチ 아이티 Haiti Гаити Haitis Haiti ഹെയ്തി Гаити Haiti Haïti Haiti Haiti Haiti Haiti Haiti Haiti Гаити Haiti Haiti Haiti Хаити Haiti Haiti เฮติ Haiti Гаити Гаїті Gaiti Haiti 海地 海地
106 HU هنغاريا Венгрыя Унгария Hungaria Mađarska Hongria Maďarsko Ungarn Ungarn Ουγγαρία Hungary Hungarujo Hungría Ungari Hungaria مجارستان Unkari Hongrie Hongrie an Ungáir An Ungair Hungría הונגריה Mađarska Magyarország Hungaria Hungaria Ungverjaland Ungheria ハンガリー 헝가리 Hungary Венгрия Vengrija Ungārija ഹംഗറി Унгар Ungarn Hongarije Ungarn Hungary Węgry Hungria Hungria Ungaria Венгрия Maďarsko Madžarska Hungari Мађарска Ungern Hungaria ฮังการี Macaristan Венгрия Угорщина Vengriya Hungary 匈牙利 匈牙利
107 IC جزر الكناري Канарскія астравы Канарски острови Inizi Kanariez Kanarska ostrva Illes Canàries Kanárské ostrovy Kanariske øer Kanarische Inseln Κανάριοι Νήσοι Canary Islands Canary Islands Canarias Kanaari saared Kanariak جزایر قناری Kanariansaaret Îles Canaries Îles Canaries na hOileáin Chanáracha Na h-Eileanan Canàrach Illas Canarias האיים הקנריים Kanarski otoci Kanári-szigetek Canary Islands Kepulauan Canaria Kanaríeyjar Isole Canarie カナリア諸島 카나리아 제도 Canary Islands Канар аралдары Kanarų salos Kanāriju salas കാനറി ദ്വീപുകൾ Канарын арлууд Kanariøyene Canarische Eilanden Kanariøyane Canary Islands Wyspy Kanaryjskie Ilhas Canárias Ilhas Canárias Insulele Canare Канарские о-ва Kanárske ostrovy Kanarski otoki Ishujt Kanarie Канарска Острва Kanarieöarna Visiwa vya Kanari หมู่เกาะคานารี Kanarya Adaları Canary Islands Канарські Острови Kanar orollari Quần đảo Canary 加纳利群岛 加那利群島
108 ID إندونيسيا Інданезія Индонезия Indonezia Indonezija Indonèsia Indonésie Indonesien Indonesien Ινδονησία Indonesia Indonezio Indonesia Indoneesia Indonesia اندونزی Indonesia Indonésie Indonésie an Indinéis Na h-Innd-innse Indonesia אינדונזיה Indonezija Indonézia Indonesia Indonesia Indónesía Indonesia インドネシア 인도네시아 Indonesia Индонезия Indonezija Indonēzija ഇന്തോനേഷ്യ Индонез Indonesia Indonesië Indonesia Indonesia Indonezja Indonésia Indonésia Indonezia Индонезия Indonézia Indonezija Indonezi Индонезија Indonesien Indonesia อินโดนีเซีย Endonezya Индонезия Індонезія Indoneziya Indonesia 印度尼西亚 印尼
109 IE أيرلندا Ірландыя Ирландия Iwerzhon Irska Irlanda Irsko Irland Irland Ιρλανδία Ireland Irlando Irlanda Iirimaa Irlanda ایرلند Irlanti Irlande Irlande Éire Èirinn Irlanda אירלנד Irska Írország Irlanda Irlandia Írland Irlanda アイルランド 아일랜드 Ireland Ирландия Airija Īrija അയർലൻഡ് Ирланд Irland Ierland Irland Ireland Irlandia Irlanda Irlanda Irlanda Ирландия Írsko Irska Irlandë Ирска Irland Ayalandi ไอร์แลนด์ İrlanda Ирландия Ірландія Irlandiya Ireland 爱尔兰 愛爾蘭
110 IL إسرائيل Ізраіль Израел Israel Izrael Israel Izrael Israel Israel Ισραήλ Israel Israelo Israel Iisrael Israel اسرائیل Israel Israël Israël Iosrael Iosrael Israel ישראל Izrael Izrael Israel Israel Ísrael Israele イスラエル 이스라엘 Israel Израиль Izraelis Izraēla ഇസ്രായേൽ Израиль Israel Israël Israel Israel Izrael Israel Israel Israel Израиль Izrael Izrael Izrael Израел Israel Israeli อิสราเอล İsrail Израиль Ізраїль Isroil Israel 以色列 以色列
111 IM جزيرة مان Востраў Мэн остров Ман Enez Vanav Ostrvo Man Illa de Man Ostrov Man Isle of Man Isle of Man Νήσος του Μαν Isle of Man Isle of Man Isla de Man Mani saar Man uhartea جزیرهٔ من Mansaari Île de Man Île de Man Oileán Mhanann Eilean Mhanainn Illa de Man האי מאן Otok Man Man-sziget Insula de Man Pulau Man Mön Isola di Man マン島 맨 섬 Isle of Man Мэн аралы Meno Sala Mena ഐൽ ഓഫ് മാൻ Мэн Арал Man Isle of Man Man Isle of Man Wyspa Man Ilha de Man Ilha de Man Insula Man о-в Мэн Ostrov Man Otok Man Ishulli i Manit Острво Ман Isle of Man Kisiwa cha Man เกาะแมน Man Adası Мэн утравы Острів Мен Men oroli Đảo Man 马恩岛 曼島
112 IN الهند Індыя Индия India Indija Índia Indie Indien Indien Ινδία India Hindujo India India India هند Intia Inde Inde an India Na h-Innseachan A India הודו Indija India India India Indland India インド 인도 Eynda Индия Indija Indija ഇന്ത്യ Энэтхэг India India India Инди Indie Índia Índia India Индия India Indija Indi Индија Indien India อินเดีย Hindistan Индия Індія Hindiston Ấn Độ 印度 印度
113 IO الإقليم البريطاني في المحيط الهندي Брытанская тэрыторыя ў Індыйскім акіяне Британска територия в Индийския океан Tiriad breizhveurat Meurvor Indez Britanska Teritorija u Indijskom Okeanu Territori Britànic de l’Oceà Índic Britské indickooceánské území Det Britiske Territorium i Det Indiske Ocean Britisches Territorium im Indischen Ozean Βρετανικά Εδάφη Ινδικού Ωκεανού British Indian Ocean Territory Brita Hindoceana Teritorio Territorio Británico del Océano Índico Briti India ookeani ala Indiako Ozeanoko lurralde britainiarra قلمرو بریتانیا در اقیانوس هند Brittiläinen Intian valtameren alue Territoire britannique de l’océan Indien Territoire britannique de l’océan Indien Críoch Aigéan Indiach na Breataine Ranntair Breatannach Cuan nan Innseachan Territorio Británico do Océano Índico הטריטוריה הבריטית באוקיינוס ההודי Britanski Indijskooceanski teritorij Brit Indiai-óceáni Terület Territorio oceanic britanno-indian Wilayah Inggris di Samudra Hindia Bresku Indlandshafseyjar Territorio britannico dell’Oceano Indiano 英領インド洋地域 영국령 인도양 식민지 British Indian Ocean Territory Инди океанындагы Британ территориясы Indijos Vandenyno Britų Sritis Indijas okeāna Britu teritorija ബ്രിട്ടീഷ് ഇന്ത്യൻ മഹാസമുദ്ര പ്രദേശം Британийн харьяа Энэтхэгийн далай дахь нутаг дэвсгэр Det britiske territoriet i Indiahavet Brits Indische Oceaanterritorium Det britiske territoriet I Indiahavet British Indian Ocean Territory Brytyjskie Terytorium Oceanu Indyjskiego Território Britânico do Oceano Índico Território Britânico do Oceano Índico Teritoriul Britanic din Oceanul Indian Британская территория в Индийском океане Britské indickooceánske územie Britansko ozemlje v Indijskem oceanu Territori Britanik i Oqeanit Indian Британска територија Индијског океана Brittiska territoriet i Indiska oceanen Eneo la Uingereza katika Bahari Hindi บริติชอินเดียนโอเชียนเทร์ริทอรี Britanya Hint Okyanusu Toprakları Британиянең Һинд Океанындагы Территориясе Британська територія в Індійському Океані Britaniyaning Hind okeanidagi hududi Lãnh thổ Ấn Độ Dương thuộc Anh 英属印度洋领地 英屬印度洋領地
114 IQ العراق Ірак Ирак Iraq Irak Iraq Irák Irak Irak Ιράκ Iraq Irako Irak Iraak Irak عراق Irak Irak Irak an Iaráic Ioràc Iraq עיראק Irak Irak Irak Irak Írak Iraq イラク 이라크 Iraq Ирак Irakas Irāka ഇറാഖ് Ирак Irak Irak Irak Iraq Irak Iraque Iraque Irak Ирак Irak Irak Irak Ирак Irak Iraki อิรัก Irak Гыйрак Ірак Iroq Iraq 伊拉克 伊拉克
115 IR إيران Іран Иран Iran Iran Iran Írán Iran Iran Ιράν Iran Irano Irán Iraan Iran ایران Iran Iran Iran an Iaráin Ioràn Irán איראן Iran Irán Iran Iran Íran Iran イラン 이란 Iran Иран Iranas Irāna ഇറാൻ Иран Iran Iran Iran Iran Iran Irã Irã Iran Иран Irán Iran Iran Иран Iran Iran อิหร่าน İran Иран Іран Eron Iran 伊朗 伊朗
116 IS آيسلندا Ісландыя Исландия Island Island Islàndia Island Island Island Ισλανδία Iceland Islando Islandia Island Islandia ایسلند Islanti Islande Islande an Íoslainn Innis Tìle Islandia איסלנד Island Izland Islanda Islandia Ísland Islanda アイスランド 아이슬란드 Iceland Исландия Islandija Islande ഐസ്‌ലാന്റ് Исланд Island IJsland Island Iceland Islandia Islândia Islândia Islanda Исландия Island Islandija Islandë Исланд Island Aisilandi ไอซ์แลนด์ İzlanda Исландия Ісландія Islandiya Iceland 冰岛 冰島
117 IT إيطاليا Італія Италия Italia Italija Itàlia Itálie Italien Italien Ιταλία Italy Italujo Italia Itaalia Italia ایتالیا Italia Italie Italie an Iodáil An Eadailt Italia איטליה Italija Olaszország Italia Italia Ítalía Italia イタリア 이탈리아 Itali Италия Italija Itālija ഇറ്റലി Итали Italia Italië Italia Итали Włochy Itália Itália Italia Италия Taliansko Italija Itali Италија Italien Italia อิตาลี İtalya Италия Італія Italiya Italy 意大利 義大利
118 JE جيرسي Джэрсі Джърси Jerzenez Jersey Jersey Jersey Jersey Jersey Τζέρζι Jersey Jersey Jersey Jersey Jersey جرزی Jersey Jersey Jersey Geirsí Deàrsaidh Jersey ג׳רזי Jersey Jersey Jersey Jersey Jersey Jersey ジャージー 저지 Jersey Жерси Džersis Džērsija ജേഴ്സി Жерси Jersey Jersey Jersey Jersey Jersey Jersey Jersey Jersey Джерси Jersey Jersey Xhersej Џерзи Jersey Jersey เจอร์ซีย์ Jersey Джерси Джерсі Jersi Jersey 泽西岛 澤西島
119 JM جامايكا Ямайка Ямайка Jamaika Jamajka Jamaica Jamajka Jamaica Jamaika Τζαμάικα Jamaica Jamajko Jamaica Jamaica Jamaika جامائیکا Jamaika Jamaïque Jamaïque Iamáice Diameuga Xamaica ג׳מייקה Jamajka Jamaica Jamaica Jamaika Jamaíka Giamaica ジャマイカ 자메이카 Jamaica Ямайка Jamaika Jamaika ജമൈക്ക Ямайка Jamaica Jamaica Jamaica Jamaica Jamajka Jamaica Jamaica Jamaica Ямайка Jamajka Jamajka Xhamajkë Јамајка Jamaica Jamaika จาเมกา Jamaika Ямайка Ямайка Yamayka Jamaica 牙买加 牙買加
120 JO الأردن Іарданія Йордания Jordania Jordan Jordània Jordánsko Jordan Jordanien Ιορδανία Jordan Jordanio Jordania Jordaania Jordania اردن Jordania Jordanie Jordanie an Iordáin Iòrdan Xordania ירדן Jordan Jordánia Jordania Yordania Jórdanía Giordania ヨルダン 요르단 Jordan Иордания Jordanija Jordānija ജോർദ്ദാൻ Йордан Jordan Jordanië Jordan Jordan Jordania Jordânia Jordânia Iordania Иордания Jordánsko Jordanija Jordani Јордан Jordanien Jordan จอร์แดน Ürdün Иордания Йорданія Iordaniya Jordan 约旦 約旦
121 JP اليابان Японія Япония Japan Japan Japó Japonsko Japan Japan Ιαπωνία Japan Japanujo Japón Jaapan Japonia ژاپن Japani Japon Japon an tSeapáin An t-Seapan O Xapón יפן Japan Japán Japon Jepang Japan Giappone 日本 일본 Japan Япония Japonija Japāna ജപ്പാൻ Япон Japan Japan Japan Япон Japonia Japão Japão Japonia Япония Japonsko Japonska Japoni Јапан Japan Japani ญี่ปุ่น Japonya Япония Японія Yaponiya Nhật Bản 日本 日本
122 KE كينيا Кенія Кения Kenya Kenija Kenya Keňa Kenya Kenia Κένυα Kenya Kenjo Kenia Keenia Kenya کنیا Kenia Kenya Kenya an Chéinia Ceinia Kenya קניה Kenija Kenya Kenya Kenya Kenía Kenya ケニア 케냐 Kenya Кения Kenija Kenija കെനിയ Кени Kenya Kenia Kenya Kenya Kenia Quênia Quênia Kenya Кения Keňa Kenija Kenia Кенија Kenya Kenya เคนยา Kenya Кения Кенія Keniya Kenya 肯尼亚 肯亞
123 KG قيرغيزستان Кыргызстан Киргизстан Kyrgyzstan Kirgistan Kirguizistan Kyrgyzstán Kirgisistan Kirgisistan Κιργιστάν Kyrgyzstan Kirgizistano Kirguistán Kõrgõzstan Kirgizistan قرقیزستان Kirgisia Kirghizistan Kirghizistan an Chirgeastáin Cìorgastan Kirguizistán קירגיזסטן Kirgistan Kirgizisztán Kirghizistan Kirgistan Kirgistan Kirghizistan キルギス 키르기스스탄 Kyrgyzstan Кыргызстан Kirgizija Kirgizstāna കിർഗിസ്ഥാൻ Кыргызстан Kirgisistan Kirgizië Kirgisistan Kyrgyzstan Kirgistan Quirguistão Quirguistão Kârgâzstan Киргизия Kirgizsko Kirgizistan Kirgizi Киргистан Kirgizistan Kirigizistani คีร์กีซสถาน Kırgızistan Кыргызстан Киргизстан Qirgʻiziston Kyrgyzstan 吉尔吉斯斯坦 吉爾吉斯
124 KH كمبوديا Камбоджа Камбоджа Kambodja Kambodža Cambodja Kambodža Cambodja Kambodscha Καμπότζη Cambodia Kamboĝo Camboya Kambodža Kanbodia کامبوج Kambodža Cambodge Cambodge an Chambóid Cambuidea Camboxa קמבודיה Kambodža Kambodzsa Cambodgia Kamboja Kambódía Cambogia カンボジア 캄보디아 Cambodia Камбоджа Kambodža Kambodža കംബോഡിയ Камбож Kambodsja Cambodja Kambodsja Cambodia Kambodża Camboja Camboja Cambodgia Камбоджа Kambodža Kambodža Kamboxhia Камбоџа Kambodja Kambodia กัมพูชา Kamboçya Камбоджа Камбоджа Kambodja Campuchia 柬埔寨 柬埔寨
125 KI كيريباتي Кірыбаці Кирибати Kiribati Kiribati Kiribati Kiribati Kiribati Kiribati Κιριμπάτι Kiribati Kiribato Kiribati Kiribati Kiribati کیریباتی Kiribati Kiribati Kiribati Cireabaití Ciribeas Kiribati קיריבאטי Kiribati Kiribati Kiribati Kiribati Kíribatí Kiribati キリバス 키리바시 Kiribati Кирибати Kiribatis Kiribati കിരിബാട്ടി Кирибати Kiribati Kiribati Kiribati Kiribati Kiribati Quiribati Quiribati Kiribati Кирибати Kiribati Kiribati Kiribati Кирибати Kiribati Kiribati คิริบาส Kiribati Кирибати Кірібаті Kiribati Kiribati 基里巴斯 吉里巴斯
126 KM جزر القمر Каморскія астравы Коморски острови Komorez Komori Comores Komory Comorerne Komoren Κομόρες Comoros Komoroj Comoras Komoorid Komoreak کومور Komorit Comores Comores Oileáin Chomóra Comoros Comores קומורו Komori Comore-szigetek Comoros Komoro Kómoreyjar Comore コモロ 코모로 Comoros Коморос Komorai Komoru salas കോമൊറോസ് Коморын арлууд Komorene Comoren Komorane Comoros Komory Comores Comores Comore Коморы Komory Komori Komore Коморска Острва Komorerna Komoro คอโมโรส Komorlar Комор утраулары Комори Komor orollari Comoros 科摩罗 葛摩
127 KN سانت كيتس ونيفيس Сент-Кітс і Невіс Сейнт Китс и Невис Saint Kitts ha Nevis Sveti Kits i Nevis Saint Christopher i Nevis Svatý Kryštof a Nevis Saint Kitts og Nevis St. Kitts und Nevis Σεν Κιτς και Νέβις St. Kitts & Nevis Sent-Kristofo kaj Neviso San Cristóbal y Nieves Saint Kitts ja Nevis Saint Kitts eta Nevis سنت کیتس و نویس Saint Kitts ja Nevis Saint-Christophe-et-Niévès Saint-Christophe-et-Niévès San Críostóir-Nimheas Naomh Crìstean is Nibheis Saint Kitts e Nevis סנט קיטס ונוויס Sveti Kristofor i Nevis Saint Kitts és Nevis Sancte Christophoro e Nevis Saint Kitts dan Nevis Sankti Kitts og Nevis Saint Kitts e Nevis セントクリストファー・ネーヴィス 세인트키츠 네비스 St. Kitts & Nevis Сент-Китс жана Невис Sent Kitsas ir Nevis Sentkitsa un Nevisa സെന്റ് കിറ്റ്‌സും നെവിസും Сент-Киттс ба Невис Saint Kitts og Nevis Saint Kitts en Nevis Saint Kitts og Nevis St. Kitts & Nevis Saint Kitts i Nevis São Cristóvão e Névis São Cristóvão e Névis Saint Kitts și Nevis Сент-Китс и Невис Svätý Krištof a Nevis Saint Kitts in Nevis Shën-Kits dhe Nevis Сент Китс и Невис S:t Kitts och Nevis St. Kitts na Nevis เซนต์คิตส์และเนวิส Saint Kitts ve Nevis Сент-Китс һәм Невис Сент-Кітс і Невіс Sent-Kits va Nevis St. Kitts và Nevis 圣基茨和尼维斯 聖克里斯多福及尼維斯
128 KP كوريا الشمالية Паўночная Карэя Северна Корея Korea an Norzh Sjeverna Koreja Corea del Nord Severní Korea Nordkorea Nordkorea Βόρεια Κορέα North Korea Nord-Koreo Corea del Norte Põhja-Korea Ipar Korea کرهٔ شمالی Pohjois-Korea Corée du Nord Corée du Nord an Chóiré Thuaidh Coirèa a Tuath Corea do Norte קוריאה הצפונית Sjeverna Koreja Észak-Korea Corea del Nord Korea Utara Norður-Kórea Corea del Nord 北朝鮮 북한 North Korea Түндүк Корея Šiaurės Korėja Ziemeļkoreja ഉത്തരകൊറിയ Хойд Солонгос Nord-Korea Noord-Korea Nord-Korea North Korea Korea Północna Coreia do Norte Coreia do Norte Coreea de Nord КНДР Severná Kórea Severna Koreja Kore e Veriut Северна Кореја Nordkorea Korea Kaskazini เกาหลีเหนือ Kuzey Kore Төньяк Корея Північна Корея Shimoliy Koreya Triều Tiên 朝鲜 北韓
129 KR كوريا الجنوبية Паўднёвая Карэя Южна Корея Korea ar Su Južna Koreja Corea del Sud Jižní Korea Sydkorea Südkorea Νότια Κορέα South Korea Sud-Koreo Corea del Sur Lõuna-Korea Hego Korea کرهٔ جنوبی Etelä-Korea Corée du Sud Corée du Sud an Chóiré Theas Coirèa Corea do Sur קוריאה הדרומית Južna Koreja Dél-Korea Corea del Sud Korea Selatan Suður-Kórea Corea del Sud 韓国 대한민국 South Korea Түштүк Корея Pietų Korėja Dienvidkoreja ദക്ഷിണകൊറിയ Өмнөд Солонгос Sør-Korea Zuid-Korea Sør-Korea South Korea Korea Południowa Coreia do Sul Coreia do Sul Coreea de Sud Республика Корея Južná Kórea Južna Koreja Kore e Jugut Јужна Кореја Sydkorea Korea Kusini เกาหลีใต้ Güney Kore South Korea Південна Корея Janubiy Koreya Hàn Quốc 韩国 南韓
130 KW الكويت Кувейт Кувейт Koweit Kuvajt Kuwait Kuvajt Kuwait Kuwait Κουβέιτ Kuwait Kuvajto Kuwait Kuveit Kuwait کویت Kuwait Koweït Koweït Cuáit Cuibhèit Kuwait כווית Kuvajt Kuvait Kuwait Kuwait Kúveit Kuwait クウェート 쿠웨이트 Kuwait Кувейт Kuveitas Kuveita കുവൈറ്റ് Кувейт Kuwait Koeweit Kuwait Kuwait Kuwejt Kuwait Kuwait Kuweit Кувейт Kuvajt Kuvajt Kuvajt Кувајт Kuwait Kuwait คูเวต Kuveyt Күвәйт Кувейт Quvayt Kuwait 科威特 科威特
131 KY جزر كايمان Кайманавы астравы Кайманови острови Inizi Cayman Kajmanska ostrva Illes Caiman Kajmanské ostrovy Caymanøerne Kaimaninseln Νήσοι Κέιμαν Cayman Islands Kejmanoj Islas Caimán Kaimanisaared Kaiman uharteak جزایر کِیمن Caymansaaret Îles Caïmans Îles Caïmans Oileáin Cayman Na h-Eileanan Caimean Illas Caimán איי קיימן Kajmanski otoci Kajmán-szigetek Insulas de Caiman Kepulauan Cayman Caymaneyjar Isole Cayman ケイマン諸島 케이맨 제도 Cayman Islands Кайман аралдары Kaimanų Salos Kaimanu salas കേയ്മാൻ ദ്വീപുകൾ Кайманы арлууд Caymanøyene Kaaimaneilanden Caymanøyane Cayman Islands Kajmany Ilhas Cayman Ilhas Cayman Insulele Cayman Острова Кайман Kajmanie ostrovy Kajmanski otoki Ishujt Kajman Кајманска Острва Caymanöarna Visiwa vya Cayman หมู่เกาะเคย์แมน Cayman Adaları Кайман утраулары Кайманові Острови Kayman orollari Quần đảo Cayman 开曼群岛 開曼群島
132 KZ كازاخستان Казахстан Казахстан Kazakstan Kazahstan Kazakhstan Kazachstán Kasakhstan Kasachstan Καζακστάν Kazakhstan Kazaĥstano Kazajistán Kasahstan Kazakhstan قزاقستان Kazakstan Kazakhstan Kazakhstan an Chasacstáin Casachstàn Kazakistán קזחסטן Kazahstan Kazahsztán Kazakhstan Kazakstan Kasakstan Kazakistan カザフスタン 카자흐스탄 Kazakhstan Казакстан Kazachstanas Kazahstāna കസാഖിസ്ഥാൻ Казахстан Kasakhstan Kazachstan Kasakhstan Kazakhstan Kazachstan Cazaquistão Cazaquistão Kazahstan Казахстан Kazachstan Kazahstan Kazakistan Казахстан Kazakstan Kazakistani คาซัคสถาน Kazakistan Казахстан Казахстан Qozogʻiston Kazakhstan 哈萨克斯坦 哈薩克
133 LA لاوس Лаос Лаос Laos Laos Laos Laos Laos Laos Λάος Laos Laoso Laos Laos Laos لائوس Laos Laos Laos Laos Làthos Laos לאוס Laos Laosz Laos Laos Laos Laos ラオス 라오스 Laos Лаос Laosas Laosa ലാവോസ് Лаос Laos Laos Laos Laos Laos Laos Laos Laos Лаос Laos Laos Laos Лаос Laos Laos ลาว Laos Лаос Лаос Laos Lào 老挝 寮國
134 LB لبنان Ліван Ливан Liban Liban Líban Libanon Libanon Libanon Λίβανος Lebanon Libano Líbano Liibanon Libano لبنان Libanon Liban Liban an Liobáin Leabanon O Líbano לבנון Libanon Libanon Libano Lebanon Líbanon Libano レバノン 레바논 Lebanon Ливан Libanas Libāna ലെബനൻ Ливан Libanon Libanon Libanon Lebanon Liban Líbano Líbano Liban Ливан Libanon Libanon Liban Либан Libanon Lebanon เลบานอน Lübnan Ливан Ліван Livan Li-băng 黎巴嫩 黎巴嫩
135 LC سانت لوسيا Сент-Люсія Сейнт Лусия Saint Lucia Sveta Lucija Saint Lucia Svatá Lucie Saint Lucia St. Lucia Αγία Λουκία St. Lucia Sent-Lucio Santa Lucía Saint Lucia Santa Luzia سنت لوسیا Saint Lucia Sainte-Lucie Sainte-Lucie Saint Lucia Naomh Lùisea Santa Lucía סנט לוסיה Sveta Lucija Saint Lucia Sancte Lucia Saint Lucia Sankti Lúsía Saint Lucia セントルシア 세인트루시아 St. Lucia Сент-Люсия Sent Lusija Sentlūsija സെന്റ് ലൂസിയ Сент Люсиа St. Lucia Saint Lucia St. Lucia St. Lucia Saint Lucia Santa Lúcia Santa Lúcia Sfânta Lucia Сент-Люсия Svätá Lucia Saint Lucia Shën-Luçia Света Луција S:t Lucia St. Lucia เซนต์ลูเซีย Saint Lucia Сент-Люсия Сент-Люсія Sent-Lyusiya St. Lucia 圣卢西亚 聖露西亞
136 LI ليختنشتاين Ліхтэнштэйн Лихтенщайн Liechtenstein Lihtenštajn Liechtenstein Lichtenštejnsko Liechtenstein Liechtenstein Λιχτενστάιν Liechtenstein Liĥtenŝtejno Liechtenstein Liechtenstein Liechtenstein لیختن‌اشتاین Liechtenstein Liechtenstein Liechtenstein Lichtinstéin Lichtenstein Liechtenstein ליכטנשטיין Lihtenštajn Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein リヒテンシュタイン 리히텐슈타인 Liechtenstein Лихтенштейн Lichtenšteinas Lihtenšteina ലിച്ചൺസ്റ്റൈൻ Лихтенштейн Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein Liechtenstein Лихтенштейн Lichtenštajnsko Lihtenštajn Lihtenshtajn Лихтенштајн Liechtenstein Liechtenstein ลิกเตนสไตน์ Liechtenstein Лихтенштейн Ліхтенштейн Lixtenshteyn Liechtenstein 列支敦士登 列支敦斯登
137 LK سريلانكا Шры-Ланка Шри Ланка Sri Lanka Šri Lanka Sri Lanka Srí Lanka Sri Lanka Sri Lanka Σρι Λάνκα Sri Lanka Sri-Lanko Sri Lanka Sri Lanka Sri Lanka سری‌لانکا Sri Lanka Sri Lanka Sri Lanka Srí Lanca Sri Lanca Sri Lanka סרי לנקה Šri Lanka Srí Lanka Sri Lanka Sri Lanka Srí Lanka Sri Lanka スリランカ 스리랑카 Sri Lanka Шри-Ланка Šri Lanka Šrilanka ശ്രീലങ്ക Шри-Ланка Sri Lanka Sri Lanka Sri Lanka Sri Lanka Sri Lanka Sri Lanka Sri Lanka Sri Lanka Шри-Ланка Srí Lanka Šrilanka Sri-Lankë Шри Ланка Sri Lanka Sri Lanka ศรีลังกา Sri Lanka Шри-Ланка Шрі-Ланка Shri-Lanka Sri Lanka 斯里兰卡 斯里蘭卡
138 LR ليبيريا Ліберыя Либерия Liberia Liberija Libèria Libérie Liberia Liberia Λιβερία Liberia Liberio Liberia Libeeria Liberia لیبریا Liberia Libéria Libéria an Libéir Libèir Liberia ליבריה Liberija Libéria Liberia Liberia Líbería Liberia リベリア 라이베리아 Liberia Либерия Liberija Libērija ലൈബീരിയ Либери Liberia Liberia Liberia Liberia Liberia Libéria Libéria Liberia Либерия Libéria Liberija Liberi Либерија Liberia Liberia ไลบีเรีย Liberya Либерия Ліберія Liberiya Liberia 利比里亚 賴比瑞亞
139 LS ليسوتو Лесота Лесото Lesotho Lesoto Lesotho Lesotho Lesotho Lesotho Λεσότο Lesotho Lesoto Lesoto Lesotho Lesotho لسوتو Lesotho Lesotho Lesotho Leosóta Leasoto Lesotho לסוטו Lesoto Lesotho Lesotho Lesotho Lesótó Lesotho レソト 레소토 Lesotho Лесото Lesotas Lesoto ലെസോതോ Лесото Lesotho Lesotho Lesotho Lesotho Lesotho Lesoto Lesoto Lesotho Лесото Lesotho Lesoto Lesoto Лесото Lesotho Lesoto เลโซโท Lesotho Лесото Лесото Lesoto Lesotho 莱索托 賴索托
140 LT ليتوانيا Літва Литва Lituania Litvanija Lituània Litva Litauen Litauen Λιθουανία Lithuania Litovujo Lituania Leedu Lituania لیتوانی Liettua Lituanie Lituanie an Liotuáin An Liotuain Lituania ליטא Litva Litvánia Lituania Lituania Litháen Lituania リトアニア 리투아니아 Lithuania Литва Lietuva Lietuva ലിത്വാനിയ Литва Litauen Litouwen Litauen Lithuania Litwa Lituânia Lituânia Lituania Литва Litva Litva Lituani Литванија Litauen Lithuania ลิทัวเนีย Litvanya Литва Литва Litva Litva 立陶宛 立陶宛
141 LU لوكسمبورغ Люксембург Люксембург Luksembourg Luksemburg Luxemburg Lucembursko Luxembourg Luxemburg Λουξεμβούργο Luxembourg Luksemburgo Luxemburgo Luksemburg Luxenburgo لوکزامبورگ Luxemburg Luxembourg Luxembourg Lucsamburg Lugsamburg Luxemburgo לוקסמבורג Luksemburg Luxemburg Luxemburg Luksemburg Lúxemborg Lussemburgo ルクセンブルク 룩셈부르크 Luxembourg Люксембург Liuksemburgas Luksemburga ലക്സംബർഗ് Люксембург Luxemburg Luxemburg Luxembourg Luxembourg Luksemburg Luxemburgo Luxemburgo Luxemburg Люксембург Luxembursko Luksemburg Luksemburg Луксембург Luxemburg Luxembourg ลักเซมเบิร์ก Lüksemburg Люксембург Люксембурґ Lyuksemburg Luxembourg 卢森堡 盧森堡
142 LV لاتفيا Латвія Латвия Latvia Latvija Letònia Lotyšsko Letland Lettland Λετονία Latvia Latvujo Letonia Läti Letonia لتونی Latvia Lettonie Lettonie an Laitvia An Laitbhe Letonia לטביה Latvija Lettország Lettonia Latvia Lettland Lettonia ラトビア 라트비아 Latvia Латвия Latvija Latvija ലാറ്റ്വിയ Латви Latvia Letland Latvia Latvia Łotwa Letônia Letônia Letonia Латвия Lotyšsko Latvija Letoni Летонија Lettland Latvia ลัตเวีย Letonya Латвия Латвія Latviya Latvia 拉脱维亚 拉脫維亞
143 LY ليبيا Лівія Либия Libia Libija Líbia Libye Libyen Libyen Λιβύη Libya Libio Libia Liibüa Libia لیبی Libya Libye Libye an Libia Libia Libia לוב Libija Líbia Libya Libia Líbía Libia リビア 리비아 Libya Ливия Libija Lībija ലിബിയ Ливи Libya Libië Libya Libya Libia Líbia Líbia Libia Ливия Líbya Libija Libi Либија Libyen Libya ลิเบีย Libya Ливия Лівія Liviya Libya 利比亚 利比亞
144 MA المغرب Марока Мароко Maroko Maroko Marroc Maroko Marokko Marokko Μαρόκο Morocco Maroko Marruecos Maroko Maroko مراکش Marokko Maroc Maroc Maracó Moroco Marrocos מרוקו Maroko Marokkó Marocco Maroko Marokkó Marocco モロッコ 모로코 Morocco Марокко Marokas Maroka മൊറോക്കൊ Морокко Marokko Marokko Marokko Morocco Maroko Marrocos Marrocos Maroc Марокко Maroko Maroko Marok Мароко Marocko Morocco โมร็อกโก Fas Марокко Марокко Marokash Ma-rốc 摩洛哥 摩洛哥
145 MC موناكو Манака Монако Monaco Monako Mònaco Monako Monaco Monaco Μονακό Monaco Monako Mónaco Monaco Monako موناکو Monaco Monaco Monaco Monacó Monaco Mónaco מונקו Monako Monaco Monaco Monako Mónakó Monaco モナコ 모나코 Monaco Монако Monakas Monako മൊണാക്കോ Монако Monaco Monaco Monaco Monaco Monako Mônaco Mônaco Monaco Монако Monako Monako Monako Монако Monaco Monaco โมนาโก Monako Монако Монако Monako Monaco 摩纳哥 摩納哥
146 MD مولدوفا Малдова Молдова Moldova Moldavija Moldàvia Moldavsko Moldova Republik Moldau Μολδαβία Moldova Moldavujo Moldavia Moldova Moldavia مولداوی Moldova Moldavie Moldavie an Mholdóiv A’ Mholdobha Moldavia מולדובה Moldavija Moldova Moldavia Moldova Moldóva Moldavia モルドバ 몰도바 Moldova Молдова Moldova Moldova മൾഡോവ Молдова Moldova Moldavië Moldova Moldova Mołdawia Moldova Moldova Republica Moldova Молдова Moldavsko Moldavija Moldavi Молдавија Moldavien Moldova มอลโดวา Moldova Молдова Молдова Moldova Moldova 摩尔多瓦 摩爾多瓦
147 ME الجبل الأسود Чарнагорыя Черна гора Montenegro Crna Gora Montenegro Černá Hora Montenegro Montenegro Μαυροβούνιο Montenegro Montenegro Montenegro Montenegro Montenegro مونته‌نگرو Montenegro Monténégro Monténégro Montainéagró Am Monadh Neagrach Montenegro מונטנגרו Crna Gora Montenegró Montenegro Montenegro Svartfjallaland Montenegro モンテネグロ 몬테네그로 Montenegro Черногория Juodkalnija Melnkalne മോണ്ടെനെഗ്രോ Монтенегро Montenegro Montenegro Montenegro Montenegro Czarnogóra Montenegro Montenegro Muntenegru Черногория Čierna Hora Črna gora Mal i Zi Црна Гора Montenegro Montenegro มอนเตเนโกร Karadağ Черногория Чорногорія Chernogoriya Montenegro 黑山 蒙特內哥羅
148 MF سان مارتن Сен-Мартэн Сен Мартен Saint Martin Sveti Martin Saint Martin Svatý Martin (Francie) Saint Martin St. Martin Άγιος Μαρτίνος (Γαλλικό τμήμα) St. Martin St. Martin San Martín Saint-Martin San Martin سنت مارتین Saint-Martin Saint-Martin Saint-Martin Saint-Martin Naomh Màrtainn Saint Martin סן מרטן Saint Martin Saint Martin St. Martin Saint Martin Saint-Martin Saint Martin サン・マルタン 생마르탱 St. Martin Сент-Мартин Sen Martenas Senmartēna സെന്റ് മാർട്ടിൻ Сент-Мартин Saint-Martin Saint-Martin Saint Martin St. Martin Saint-Martin São Martinho São Martinho Sfântul Martin Сен-Мартен Svätý Martin (fr.) Saint Martin Sen-Marten Свети Мартин (Француска) Saint-Martin St. Martin เซนต์มาร์ติน Saint Martin Сент-Мартин Сен-Мартен Sent-Martin St. Martin 法属圣马丁 法屬聖馬丁
149 MG مدغشقر Мадагаскар Мадагаскар Madagaskar Madagaskar Madagascar Madagaskar Madagaskar Madagaskar Μαδαγασκάρη Madagascar Madagaskaro Madagascar Madagaskar Madagaskar ماداگاسکار Madagaskar Madagascar Madagascar Madagascar Madagasgar Madagascar מדגסקר Madagaskar Madagaszkár Madagascar Madagaskar Madagaskar Madagascar マダガスカル 마다가스카르 Madagascar Мадагаскар Madagaskaras Madagaskara മഡഗാസ്കർ Мадагаскар Madagaskar Madagaskar Madagaskar Madagascar Madagaskar Madagascar Madagascar Madagascar Мадагаскар Madagaskar Madagaskar Madagaskar Мадагаскар Madagaskar Madagaska มาดากัสการ์ Madagaskar Мадагаскар Мадагаскар Madagaskar Madagascar 马达加斯加 馬達加斯加
150 MH جزر مارشال Маршалавы астравы Маршалови острови Inizi Marshall Maršalova ostrva Illes Marshall Marshallovy ostrovy Marshalløerne Marshallinseln Νήσοι Μάρσαλ Marshall Islands Marŝaloj Islas Marshall Marshalli Saared Marshall Uharteak جزایر مارشال Marshallinsaaret Îles Marshall Îles Marshall Oileáin Marshall Eileanan Mharshall Illas Marshall איי מרשל Maršalovi Otoci Marshall-szigetek Insulas Marshall Kepulauan Marshall Marshalleyjar Isole Marshall マーシャル諸島 마셜 제도 Marshall Islands Маршалл аралдары Maršalo Salos Māršala salas മാർഷൽ ദ്വീപുകൾ Маршаллын арлууд Marshalløyene Marshalleilanden Marshalløyane Marshall Islands Wyspy Marshalla Ilhas Marshall Ilhas Marshall Insulele Marshall Маршалловы Острова Marshallove ostrovy Marshallovi otoki Ishujt Marshall Маршалска Острва Marshallöarna Visiwa vya Marshall หมู่เกาะมาร์แชลล์ Marshall Adaları Маршалл утраулары Маршаллові Острови Marshall orollari Quần đảo Marshall 马绍尔群岛 馬紹爾群島
151 MK مقدونيا الشمالية Паўночная Македонія Северна Македония Makedonia an Norzh Sjeverna Makedonija Macedònia del Nord Severní Makedonie Nordmakedonien Nordmazedonien Βόρεια Μακεδονία North Macedonia North Macedonia Macedonia del Norte Põhja-Makedoonia Ipar Mazedonia مقدونیهٔ شمالی Pohjois-Makedonia Macédoine du Nord Macédoine du Nord an Mhacadóin Thuaidh A’ Mhasadon a Tuath Macedonia do Norte מקדוניה הצפונית Sjeverna Makedonija Észak-Macedónia Macedonia Makedonia Utara Norður-Makedónía Macedonia del Nord 北マケドニア 북마케도니아 North Macedonia Түндүк Македония Šiaurės Makedonija Ziemeļmaķedonija നോർത്ത് മാസിഡോണിയ Хойд Македон Nord-Makedonia Noord-Macedonië Nord-Makedonia North Macedonia Macedonia Północna Macedônia do Norte Macedônia do Norte Macedonia de Nord Северная Македония Severné Macedónsko Severna Makedonija Maqedonia e Veriut Северна Македонија Nordmakedonien Masedonia ya Kaskazini มาซิโดเนียเหนือ Kuzey Makedonya Төньяк Македония Північна Македонія Shimoliy Makedoniya Bắc Macedonia 北马其顿 北馬其頓
152 ML مالي Малі Мали Mali Mali Mali Mali Mali Mali Μάλι Mali Malio Mali Mali Mali مالی Mali Mali Mali Mailí Màili Malí מאלי Mali Mali Mali Mali Malí Mali マリ 말리 Mali Мали Malis Mali മാലി Мали Mali Mali Mali Mali Mali Mali Mali Mali Мали Mali Mali Mali Мали Mali Mali มาลี Mali Мали Малі Mali Mali 马里 馬利
153 MM ميانمار (بورما) М’янма (Бірма) Мианмар (Бирма) Myanmar (Birmania) Mjanmar Myanmar (Birmània) Myanmar (Barma) Myanmar (Burma) Myanmar Μιανμάρ (Βιρμανία) Myanmar (Burma) Mjanmao Myanmar (Birmania) Myanmar (Birma) Myanmar (Birmania) میانمار (برمه) Myanmar (Burma) Myanmar (Birmanie) Myanmar (Birmanie) Maenmar (Burma) Miànmar Myanmar (Birmania) מיאנמר (בורמה) Mjanmar (Burma) Mianmar Birmania/Myanmar Myanmar (Burma) Mjanmar (Búrma) Myanmar (Birmania) ミャンマー (ビルマ) 미얀마 Myanmar (Burma) Мьянма (Бирма) Mianmaras (Birma) Mjanma (Birma) മ്യാൻമാർ (ബർമ്മ) Мьянмар Myanmar (Burma) Myanmar (Birma) Myanmar (Burma) Myanmar (Burma) Mjanma (Birma) Mianmar (Birmânia) Mianmar (Birmânia) Myanmar (Birmania) Мьянма (Бирма) Mjanmarsko Mjanmar (Burma) Mianmar (Burmë) Мијанмар (Бурма) Myanmar (Burma) Myanmar (Burma) เมียนมาร์ (พม่า) Myanmar (Burma) Myanmar (Burma) Мʼянма (Бірма) Myanma (Birma) Myanmar (Miến Điện) 缅甸 緬甸
154 MN منغوليا Манголія Монголия Mongolia Mongolija Mongòlia Mongolsko Mongoliet Mongolei Μογγολία Mongolia Mongolujo Mongolia Mongoolia Mongolia مغولستان Mongolia Mongolie Mongolie an Mhongóil Dùthaich nam Mongol Mongolia מונגוליה Mongolija Mongólia Mongolia Mongolia Mongólía Mongolia モンゴル 몽골 Mongolia Монголия Mongolija Mongolija മംഗോളിയ Монгол Mongolia Mongolië Mongolia Mongolia Mongolia Mongólia Mongólia Mongolia Монголия Mongolsko Mongolija Mongoli Монголија Mongoliet Mongolia มองโกเลีย Moğolistan Монголия Монголія Mongoliya Mông Cổ 蒙古 蒙古
155 MO مكاو Макаа Макао Macau Makao Macau Macao Macao Macau Μακάο Macao Macao Macao Macau Macau ماکائو Macao Macao Macao Macao Macàthu Macau מקאו Makao Makaó Macao Makau Makaó Macao マカオ 마카오 Macao Макау Makao Makao മക്കാവു Макао Macao Macau Macao Macao Makau Macau Macau Macao Макао Macao Macao Makao Макао Macao Makau มาเก๊า Makao Макао Макао Makao Macao 澳门 澳門
156 MP جزر ماريانا الشمالية Паўночныя Марыянскія астравы Северни Мариански острови Inizi Mariana an Norzh Sjeverna Marijanska ostrva Illes Mariannes del Nord Severní Mariany Nordmarianerne Nördliche Marianen Νήσοι Βόρειες Μαριάνες Northern Mariana Islands Nord-Marianoj Islas Marianas del Norte Põhja-Mariaanid Ipar Mariana uharteak جزایر ماریانای شمالی Pohjois-Mariaanit Îles Mariannes du Nord Îles Mariannes du Nord na hOileáin Mháirianacha Thuaidh Na h-Eileanan Mairianach a Tuath Illas Marianas do Norte איי מריאנה הצפוניים Sjevernomarijanski otoci Északi Mariana-szigetek Insulas Marianna del Nord Kepulauan Mariana Utara Norður-Maríanaeyjar Isole Marianne settentrionali 北マリアナ諸島 북마리아나제도 Northern Mariana Islands Түндүк Мариана аралдары Marianos Šiaurinės Salos Ziemeļu Marianas salas ഉത്തര മറിയാനാ ദ്വീപുകൾ Хойд Марианы арлууд Nord-Marianene Noordelijke Marianen Nord-Marianane Northern Mariana Islands Mariany Północne Ilhas Marianas do Norte Ilhas Marianas do Norte Insulele Mariane de Nord Северные Марианские о-ва Severné Mariány Severni Marianski otoki Ishujt e Marianës Veriore Северна Маријанска Острва Nordmarianerna Visiwa vya Mariana vya Kaskazini หมู่เกาะนอร์เทิร์นมาเรียนา Kuzey Mariana Adaları Төньяк Мариана утраулары Північні Маріанські Острови Shimoliy Mariana orollari Quần đảo Bắc Mariana 北马里亚纳群岛 北馬利安納群島
157 MQ جزر المارتينيك Марцініка Мартиника Martinik Martinik Martinica Martinik Martinique Martinique Μαρτινίκα Martinique Martiniko Martinica Martinique Martinika مارتینیک Martinique Martinique Martinique Martinique Mairtinic Martinica מרטיניק Martinique Martinique Martinique Martinik Martiník Martinica マルティニーク 마르티니크 Martinique Мартиника Martinika Martinika മാർട്ടിനിക്ക് Мартиник Martinique Martinique Martinique Martinique Martynika Martinica Martinica Martinica Мартиника Martinik Martinik Martinikë Мартиник Martinique Martinique มาร์ตินีก Martinik Мартиника Мартініка Martinika Martinique 马提尼克 馬丁尼克
158 MR موريتانيا Маўрытанія Мавритания Maouritania Mauritanija Mauritània Mauritánie Mauretanien Mauretanien Μαυριτανία Mauritania Maŭritanujo Mauritania Mauritaania Mauritania موریتانی Mauritania Mauritanie Mauritanie an Mháratáin Moratàinea Mauritania מאוריטניה Mauretanija Mauritánia Mauritania Mauritania Máritanía Mauritania モーリタニア 모리타니 Mauritania Мавритания Mauritanija Mauritānija മൗറിറ്റാനിയ Мавритани Mauritania Mauritanië Mauritania Mauritania Mauretania Mauritânia Mauritânia Mauritania Мавритания Mauritánia Mavretanija Mauritani Мауританија Mauretanien Moritania มอริเตเนีย Moritanya Мавритания Мавританія Mavritaniya Mauritania 毛里塔尼亚 茅利塔尼亞
159 MS مونتسرات Мантсерат Монтсерат Montserrat Monserat Montserrat Montserrat Montserrat Montserrat Μονσεράτ Montserrat Montserrat Montserrat Montserrat Montserrat مونت‌سرات Montserrat Montserrat Montserrat Montsarat Montsarat Montserrat מונסראט Montserrat Montserrat Montserrat Montserrat Montserrat Montserrat モントセラト 몬트세라트 Montserrat Монтсеррат Montseratas Montserrata മൊണ്ടെസരത്ത് Монтсеррат Montserrat Montserrat Montserrat Montserrat Montserrat Montserrat Montserrat Montserrat Монтсеррат Montserrat Montserrat Montserat Монсерат Montserrat Montserrat มอนต์เซอร์รัต Montserrat Монтсеррат Монтсеррат Montserrat Montserrat 蒙特塞拉特 蒙哲臘
160 MT مالطا Мальта Малта Malta Malta Malta Malta Malta Malta Μάλτα Malta Malto Malta Malta Malta مالت Malta Malte Malte Málta Malta Malta מלטה Malta Málta Malta Malta Malta Malta マルタ 몰타 Malta Мальта Malta Malta മാൾട്ട Мальта Malta Malta Malta Malta Malta Malta Malta Malta Мальта Malta Malta Maltë Малта Malta Malta มอลตา Malta Мальта Мальта Malta Malta 马耳他 馬爾他
161 MU موريشيوس Маўрыкій Мавриций Moris Mauricijus Maurici Mauricius Mauritius Mauritius Μαυρίκιος Mauritius Maŭricio Mauricio Mauritius Maurizio موریس Mauritius Maurice Maurice Oileán Mhuirís Na h-Eileanan Mhoiriseas Mauricio מאוריציוס Mauricijus Mauritius Mauritius Mauritius Máritíus Mauritius モーリシャス 모리셔스 Mauritius Маврикий Mauricijus Maurīcija മൗറീഷ്യസ് Маврикий Mauritius Mauritius Mauritius Mauritius Mauritius Maurício Maurício Mauritius Маврикий Maurícius Mauritius Mauritius Маурицијус Mauritius Morisi มอริเชียส Mauritius Маврикий Маврікій Mavrikiy Mauritius 毛里求斯 模里西斯
162 MV جزر المالديف Мальдывы Малдиви Maldivez Maldivi Maldives Maledivy Maldiverne Malediven Μαλδίβες Maldives Maldivoj Maldivas Maldiivid Maldivak مالدیو Malediivit Maldives Maldives Oileáin Mhaildíve Na h-Eileanan Mhaladaibh Maldivas האיים המלדיביים Maldivi Maldív-szigetek Maldives Maladewa Maldíveyjar Maldive モルディブ 몰디브 Maldives Мальдив Maldyvai Maldīvija മാലിദ്വീപ് Мальдив Maldivene Maldiven Maldivane Maldives Malediwy Maldivas Maldivas Maldive Мальдивы Maldivy Maldivi Maldive Малдиви Maldiverna Maldives มัลดีฟส์ Maldivler Мальдив утраулары Мальдіви Maldiv orollari Maldives 马尔代夫 馬爾地夫
163 MW ملاوي Малаві Малави Malawi Malavi Malawi Malawi Malawi Malawi Μαλάουι Malawi Malavio Malaui Malawi Malawi مالاوی Malawi Malawi Malawi an Mhaláiv Malabhaidh Malawi מלאווי Malavi Malawi Malawi Malawi Malaví Malawi マラウイ 말라위 Malawi Малави Malavis Malāvija മലാവി Малави Malawi Malawi Malawi Malawi Malawi Malaui Malaui Malawi Малави Malawi Malavi Malavi Малави Malawi Malawi มาลาวี Malavi Малави Малаві Malavi Malawi 马拉维 馬拉威
164 MX المكسيك Мексіка Мексико Mecʼhiko Meksiko Mèxic Mexiko Mexico Mexiko Μεξικό Mexico Meksiko México Mehhiko Mexiko مکزیک Meksiko Mexique Mexique Meicsiceo Meagsago México מקסיקו Meksiko Mexikó Mexico Meksiko Mexíkó Messico メキシコ 멕시코 Mexico Мексика Meksika Meksika മെക്സിക്കോ Мексик Mexico Mexico Mexico Mexico Meksyk México México Mexic Мексика Mexiko Mehika Meksikë Мексико Mexiko Meksiko เม็กซิโก Meksika Мексика Мексика Meksika Mexico 墨西哥 墨西哥
165 MY ماليزيا Малайзія Малайзия Malaysia Malezija Malàisia Malajsie Malaysia Malaysia Μαλαισία Malaysia Malajzio Malasia Malaisia Malaysia مالزی Malesia Malaisie Malaisie an Mhalaeisia Malaidhsea Malaisia מלזיה Malezija Malajzia Malaysia Malaysia Malasía Malaysia マレーシア 말레이시아 Malaysia Малайзия Malaizija Malaizija മലേഷ്യ Малайз Malaysia Maleisië Malaysia Malaysia Malezja Malásia Malásia Malaysia Малайзия Malajzia Malezija Malajzi Малезија Malaysia Malesia มาเลเซีย Malezya Малайзия Малайзія Malayziya Malaysia 马来西亚 馬來西亞
166 MZ موزمبيق Мазамбік Мозамбик Mozambik Mozambik Moçambic Mosambik Mozambique Mosambik Μοζαμβίκη Mozambique Mozambiko Mozambique Mosambiik Mozambike موزامبیک Mosambik Mozambique Mozambique Mósaimbíc Mòsaimbic Mozambique מוזמביק Mozambik Mozambik Mozambique Mozambik Mósambík Mozambico モザンビーク 모잠비크 Mozambique Мозамбик Mozambikas Mozambika മൊസാംബിക്ക് Мозамбик Mosambik Mozambique Mosambik Mozambique Mozambik Moçambique Moçambique Mozambic Мозамбик Mozambik Mozambik Mozambik Мозамбик Moçambique Msumbiji โมซัมบิก Mozambik Мозамбик Мозамбік Mozambik Mozambique 莫桑比克 莫三比克
167 NA ناميبيا Намібія Намибия Namibia Namibija Namíbia Namibie Namibia Namibia Ναμίμπια Namibia Namibio Namibia Namiibia Namibia نامیبیا Namibia Namibie Namibie an Namaib An Namaib Namibia נמיביה Namibija Namíbia Namibia Namibia Namibía Namibia ナミビア 나미비아 Namibia Намибия Namibija Namībija നമീബിയ Намиби Namibia Namibië Namibia Namibia Namibia Namíbia Namíbia Namibia Намибия Namíbia Namibija Namibi Намибија Namibia Namibia นามิเบีย Namibya Намибия Намібія Namibiya Namibia 纳米比亚 納米比亞
168 NC كاليدونيا الجديدة Новая Каледонія Нова Каледония Kaledonia Nevez Nova Kaledonija Nova Caledònia Nová Kaledonie Ny Kaledonien Neukaledonien Νέα Καληδονία New Caledonia Nov-Kaledonio Nueva Caledonia Uus-Kaledoonia Kaledonia Berria کالدونیای جدید Uusi-Kaledonia Nouvelle-Calédonie Nouvelle-Calédonie an Nua-Chaladóin Cailleann Nuadh Nova Caledonia קלדוניה החדשה Nova Kaledonija Új-Kaledónia Nove Caledonia Kaledonia Baru Nýja-Kaledónía Nuova Caledonia ニューカレドニア 뉴칼레도니아 New Caledonia Жаңы Каледония Naujoji Kaledonija Jaunkaledonija ന്യൂ കാലിഡോണിയ Шинэ Каледони Ny-Caledonia Nieuw-Caledonië Ny-Caledonia New Caledonia Nowa Kaledonia Nova Caledônia Nova Caledônia Noua Caledonie Новая Каледония Nová Kaledónia Nova Kaledonija Kaledoni e Re Нова Каледонија Nya Kaledonien New Caledonia นิวแคลิโดเนีย Yeni Kaledonya Яңа Каледония Нова Каледонія Yangi Kaledoniya New Caledonia 新喀里多尼亚 新喀里多尼亞
169 NE النيجر Нігер Нигер Niger Niger Níger Niger Niger Niger Νίγηρας Niger Niĝero Níger Niger Niger نیجر Niger Niger Niger an Nígir Nìgeir Níxer ניז׳ר Niger Niger Niger Niger Níger Niger ニジェール 니제르 Niger Нигер Nigeris Nigēra നൈജർ Нигер Niger Niger Niger Niger Niger Níger Níger Niger Нигер Niger Niger Niger Нигер Niger Niger ไนเจอร์ Nijer Нигер Нігер Niger Niger 尼日尔 尼日
170 NF جزيرة نورفولك Востраў Норфалк остров Норфолк Enez Norfolk Ostrvo Norfolk Norfolk Norfolk Norfolk Island Norfolkinsel Νήσος Νόρφολκ Norfolk Island Norfolkinsulo Isla Norfolk Norfolk Norfolk uhartea جزیرهٔ نورفولک Norfolkinsaari Île Norfolk Île Norfolk Oileán Norfolk Eilean Norfolk Illa Norfolk האי נורפוק Otok Norfolk Norfolk-sziget Insula Norfolk Kepulauan Norfolk Norfolkeyja Isola Norfolk ノーフォーク島 노퍽섬 Norfolk Island Норфолк аралы Norfolko sala Norfolkas sala നോർഫോക് ദ്വീപ് Норфолк арал Norfolkøya Norfolk Norfolkøya Norfolk Island Norfolk Ilha Norfolk Ilha Norfolk Insula Norfolk о-в Норфолк Norfolk Norfolški otok Ishulli Norfolk Острво Норфок Norfolkön Kisiwa cha Norfolk เกาะนอร์ฟอล์ก Norfolk Adası Норфолк утравы Острів Норфолк Norfolk oroli Đảo Norfolk 诺福克岛 諾福克島
171 NG نيجيريا Нігерыя Нигерия Nigeria Nigerija Nigèria Nigérie Nigeria Nigeria Νιγηρία Nigeria Niĝerio Nigeria Nigeeria Nigeria نیجریه Nigeria Nigéria Nigéria an Nigéir Nigèiria Nixeria ניגריה Nigerija Nigéria Nigeria Nigeria Nígería Nigeria ナイジェリア 나이지리아 Nigeria Нигерия Nigerija Nigērija നൈജീരിയ Нигери Nigeria Nigeria Nigeria Nigeria Nigeria Nigéria Nigéria Nigeria Нигерия Nigéria Nigerija Nigeri Нигерија Nigeria Nigeria ไนจีเรีย Nijerya Нигерия Нігерія Nigeriya Nigeria 尼日利亚 奈及利亞
172 NI نيكاراغوا Нікарагуа Никарагуа Nicaragua Nikaragva Nicaragua Nikaragua Nicaragua Nicaragua Νικαράγουα Nicaragua Nikaragvo Nicaragua Nicaragua Nikaragua نیکاراگوئه Nicaragua Nicaragua Nicaragua Nicearagua Niocaragua Nicaragua ניקרגואה Nikaragva Nicaragua Nicaragua Nikaragua Níkaragva Nicaragua ニカラグア 니카라과 Nicaragua Никарагуа Nikaragva Nikaragva നിക്കരാഗ്വ Никарагуа Nicaragua Nicaragua Nicaragua Nicaragua Nikaragua Nicarágua Nicarágua Nicaragua Никарагуа Nikaragua Nikaragva Nikaragua Никарагва Nicaragua Nikaragwa นิการากัว Nikaragua Никарагуа Нікараґуа Nikaragua Nicaragua 尼加拉瓜 尼加拉瓜
173 NL هولندا Нідэрланды Нидерландия Izelvroioù Holandija Països Baixos Nizozemsko Holland Niederlande Ολλανδία Netherlands Nederlando Países Bajos Holland Herbehereak هلند Alankomaat Pays-Bas Pays-Bas an Ísiltír Na Tìrean Ìsle Países Baixos הולנד Nizozemska Hollandia Nederlandia Belanda Holland Paesi Bassi オランダ 네덜란드 Netherlands Нидерланд Nyderlandai Nīderlande നെതർലാൻഡ്‌സ് Нидерланд Nederland Nederland Nederland Netherlands Holandia Países Baixos Países Baixos Țările de Jos Нидерланды Holandsko Nizozemska Holandë Холандија Nederländerna Uholanzi เนเธอร์แลนด์ Hollanda Нидерланд Нідерланди Niderlandiya Hà Lan 荷兰 荷蘭
174 NO النرويج Нарвегія Норвегия Norvegia Norveška Noruega Norsko Norge Norwegen Νορβηγία Norway Norvegujo Noruega Norra Norvegia نروژ Norja Norvège Norvège an Iorua Nirribhidh Noruega נורווגיה Norveška Norvégia Norvegia Norwegia Noregur Norvegia ノルウェー 노르웨이 Norway Норвегия Norvegija Norvēģija നോർവെ Норвеги Norge Noorwegen Noreg Norway Norwegia Noruega Noruega Norvegia Норвегия Nórsko Norveška Norvegji Норвешка Norge Norway นอร์เวย์ Norveç Норвегия Норвеґія Norvegiya Na Uy 挪威 挪威
175 NP نيبال Непал Непал Nepal Nepal Nepal Nepál Nepal Nepal Νεπάλ Nepal Nepalo Nepal Nepal Nepal نپال Nepal Népal Népal Neipeal Neapàl Nepal נפאל Nepal Nepál Nepal Nepal Nepal Nepal ネパール 네팔 Nepal Непал Nepalas Nepāla നേപ്പാൾ Балба Nepal Nepal Nepal Nepal Nepal Nepal Nepal Nepal Непал Nepál Nepal Nepal Непал Nepal Nepal เนปาล Nepal Непал Непал Nepal Nepal 尼泊尔 尼泊爾
176 NR ناورو Науру Науру Nauru Nauru Nauru Nauru Nauru Nauru Ναουρού Nauru Nauro Nauru Nauru Nauru نائورو Nauru Nauru Nauru Nárú Nabhru Nauru נאורו Nauru Nauru Nauru Nauru Nárú Nauru ナウル 나우루 Nauru Науру Nauru Nauru നൗറു Науру Nauru Nauru Nauru Nauru Nauru Nauru Nauru Nauru Науру Nauru Nauru Nauru Науру Nauru Nauru นาอูรู Nauru Науру Науру Nauru Nauru 瑙鲁 諾魯
177 NU نيوي Ніуэ Ниуе Niue Niue Niue Niue Niue Niue Νιούε Niue Niuo Niue Niue Niue نیوئه Niue Niue Niue Niue Niue Niue ניווה Niue Niue Niue Niue Niue Niue ニウエ 니우에 Niue Ниуэ Niujė Niue ന്യൂയി Ниуэ Niue Niue Niue Niue Niue Niue Niue Niue Ниуэ Niue Niue Niue Ниуе Niue Niue นีอูเอ Niue Ниуэ Ніуе Niue Niue 纽埃 紐埃島
178 NZ نيوزيلندا Новая Зеландыя Нова Зеландия Zeland-Nevez Novi Zeland Nova Zelanda Nový Zéland New Zealand Neuseeland Νέα Ζηλανδία New Zealand Nov-Zelando Nueva Zelanda Uus-Meremaa Zeelanda Berria نیوزیلند Uusi-Seelanti Nouvelle-Zélande Nouvelle-Zélande an Nua-Shéalainn Sealainn Nuadh Nova Zelandia ניו זילנד Novi Zeland Új-Zéland Nove Zelanda Selandia Baru Nýja-Sjáland Nuova Zelanda ニュージーランド 뉴질랜드 New Zealand Жаңы Зеландия Naujoji Zelandija Jaunzēlande ന്യൂസിലാൻറ് Шинэ Зеланд New Zealand Nieuw-Zeeland New Zealand New Zealand Nowa Zelandia Nova Zelândia Nova Zelândia Noua Zeelandă Новая Зеландия Nový Zéland Nova Zelandija Zelandë e Re Нови Зеланд Nya Zeeland Nyuzilandi นิวซีแลนด์ Yeni Zelanda Яңа Зеландия Нова Зеландія Yangi Zelandiya New Zealand 新西兰 紐西蘭
179 OM عُمان Аман Оман Oman Oman Oman Omán Oman Oman Ομάν Oman Omano Omán Omaan Oman عمان Oman Oman Oman Óman Omàn Omán עומאן Oman Omán Oman Oman Óman Oman オマーン 오만 Oman Оман Omanas Omāna ഒമാൻ Оман Oman Oman Oman Oman Oman Omã Omã Oman Оман Omán Oman Oman Оман Oman Oman โอมาน Umman Оман Оман Ummon Oman 阿曼 阿曼
180 PA بنما Панама Панама Panamá Panama Panamà Panama Panama Panama Παναμάς Panama Panamo Panamá Panama Panama پاناما Panama Panama Panama Panama Panama Panamá פנמה Panama Panama Panama Panama Panama Panamá パナマ 파나마 Panama Панама Panama Panama പനാമ Панам Panama Panama Panama Panama Panama Panamá Panamá Panama Панама Panama Panama Panama Панама Panama Panama ปานามา Panama Панама Панама Panama Panama 巴拿马 巴拿馬
181 PE بيرو Перу Перу Perou Peru Perú Peru Peru Peru Περού Peru Peruo Perú Peruu Peru پرو Peru Pérou Pérou Peiriú Pearù O Perú פרו Peru Peru Peru Peru Perú Perù ペルー 페루 Peru Перу Peru Peru പെറു Перу Peru Peru Peru Peru Peru Peru Peru Peru Перу Peru Peru Peru Перу Peru Peru เปรู Peru Перу Перу Peru Peru 秘鲁 秘魯
182 PF بولينيزيا الفرنسية Французская Палінезія Френска Полинезия Polinezia Cʼhall Francuska Polinezija Polinèsia Francesa Francouzská Polynésie Fransk Polynesien Französisch-Polynesien Γαλλική Πολυνησία French Polynesia Franca Polinezio Polinesia Francesa Prantsuse Polüneesia Polinesia Frantsesa پلی‌نزی فرانسه Ranskan Polynesia Polynésie française Polynésie française Polainéis na Fraince Poilinèis na Frainge A Polinesia Francesa פולינזיה הצרפתית Francuska Polinezija Francia Polinézia Polynesia francese Polinesia Prancis Franska Pólýnesía Polinesia francese 仏領ポリネシア 프랑스령 폴리네시아 French Polynesia Полинезия (франциялык) Prancūzijos Polinezija Francijas Polinēzija ഫ്രഞ്ച് പോളിനേഷ്യ Францын Полинез Fransk Polynesia Frans-Polynesië Fransk Polynesia French Polynesia Polinezja Francuska Polinésia Francesa Polinésia Francesa Polinezia Franceză Французская Полинезия Francúzska Polynézia Francoska Polinezija Polinezia Franceze Француска Полинезија Franska Polynesien Polynesia ya Ufaransa เฟรนช์โปลินีเซีย Fransız Polinezyası Француз Полинезиясе Французька Полінезія Fransuz Polineziyasi Polynesia thuộc Pháp 法属波利尼西亚 法屬玻里尼西亞
183 PG بابوا غينيا الجديدة Папуа-Новая Гвінея Папуа-Нова Гвинея Papoua Ginea-Nevez Papua Nova Gvineja Papua Nova Guinea Papua-Nová Guinea Papua Ny Guinea Papua-Neuguinea Παπούα Νέα Γουινέα Papua New Guinea Papuo-Nov-Gvineo Papúa Nueva Guinea Paapua Uus-Guinea Papua Ginea Berria پاپوا گینهٔ نو Papua-Uusi-Guinea Papouasie-Nouvelle-Guinée Papouasie-Nouvelle-Guinée Nua-Ghuine Phapua Gini Nuadh Phaputhach Papúa-Nova Guinea פפואה גינאה החדשה Papua Nova Gvineja Pápua Új-Guinea Papua Nove Guinea Papua Nugini Papúa Nýja-Gínea Papua Nuova Guinea パプアニューギニア 파푸아뉴기니 Papua New Guinea Папуа-Жаңы Гвинея Papua Naujoji Gvinėja Papua-Jaungvineja പാപ്പുവ ന്യൂ ഗിനിയ Папуа Шинэ Гвиней Papua Ny-Guinea Papoea-Nieuw-Guinea Papua Ny-Guinea Papua New Guinea Papua-Nowa Gwinea Papua-Nova Guiné Papua-Nova Guiné Papua-Noua Guinee Папуа — Новая Гвинея Papua-Nová Guinea Papua Nova Gvineja Guineja e Re-Papua Папуа Нова Гвинеја Papua Nya Guinea Papua New Guinea ปาปัวนิวกินี Papua Yeni Gine Папуа - Яңа Гвинея Папуа-Нова Ґвінея Papua – Yangi Gvineya Papua New Guinea 巴布亚新几内亚 巴布亞紐幾內亞
184 PH الفلبين Філіпіны Филипини Filipinez Filipini Filipines Filipíny Filippinerne Philippinen Φιλιππίνες Philippines Filipinoj Filipinas Filipiinid Filipinak فیلیپین Filippiinit Philippines Philippines na hOileáin Fhilipíneacha Na h-Eileanan Filipineach Filipinas הפיליפינים Filipini Fülöp-szigetek Philippinas Filipina Filippseyjar Filippine フィリピン 필리핀 Philippines Филиппин Filipinai Filipīnas ഫിലിപ്പീൻസ് Филиппин Filippinene Filipijnen Filippinane Philippines Filipiny Filipinas Filipinas Filipine Филиппины Filipíny Filipini Filipine Филипини Filippinerna Ufilipino ฟิลิปปินส์ Filipinler Филиппин Філіппіни Filippin Philippines 菲律宾 菲律賓
185 PK باكستان Пакістан Пакистан Pakistan Pakistan Pakistan Pákistán Pakistan Pakistan Πακιστάν Pakistan Pakistano Pakistán Pakistan Pakistan پاکستان Pakistan Pakistan Pakistan an Phacastáin Pagastàn Paquistán פקיסטן Pakistan Pakisztán Pakistan Pakistan Pakistan Pakistan パキスタン 파키스탄 Pakistan Пакистан Pakistanas Pakistāna പാക്കിസ്ഥാൻ Пакистан Pakistan Pakistan Pakistan Pakistan Pakistan Paquistão Paquistão Pakistan Пакистан Pakistan Pakistan Pakistan Пакистан Pakistan Pakistani ปากีสถาน Pakistan Пакистан Пакистан Pokiston Pakistan 巴基斯坦 巴基斯坦
186 PL بولندا Польшча Полша Polonia Poljska Polònia Polsko Polen Polen Πολωνία Poland Pollando Polonia Poola Polonia لهستان Puola Pologne Pologne an Pholainn A’ Phòlainn Polonia פולין Poljska Lengyelország Polonia Polandia Pólland Polonia ポーランド 폴란드 Poland Польша Lenkija Polija പോളണ്ട് Польш Polen Polen Polen Poland Polska Polônia Polônia Polonia Польша Poľsko Poljska Poloni Пољска Polen Poland โปแลนด์ Polonya Польша Польща Polsha Ba Lan 波兰 波蘭
187 PM سان بيير ومكويلون Сен-П’ер і Мікелон Сен Пиер и Микелон Sant-Pêr-ha-Mikelon Sveti Petar i Mikelon Saint-Pierre-et-Miquelon Saint-Pierre a Miquelon Saint Pierre og Miquelon St. Pierre und Miquelon Σεν Πιερ και Μικελόν St. Pierre & Miquelon Sent-Piero kaj Mikelono San Pedro y Miquelón Saint-Pierre ja Miquelon Saint-Pierre eta Mikelune سن پیر و میکلن Saint-Pierre ja Miquelon Saint-Pierre-et-Miquelon Saint-Pierre-et-Miquelon San Pierre agus Miquelon Saint Pierre agus Miquelon Saint Pierre et Miquelon סנט פייר ומיקלון Saint-Pierre-et-Miquelon Saint-Pierre és Miquelon St. Pierre e Miquelon Saint Pierre dan Miquelon Sankti Pierre og Miquelon Saint-Pierre e Miquelon サンピエール島・ミクロン島 생피에르 미클롱 St. Pierre & Miquelon Сен-Пьер жана Микелон Sen Pjeras ir Mikelonas Senpjēra un Mikelona സെന്റ് പിയറി ആൻഡ് മിക്വലൻ Сент-Пьер ба Микело Saint-Pierre-et-Miquelon Saint-Pierre en Miquelon Saint-Pierre-et-Miquelon St. Pierre & Miquelon Saint-Pierre i Miquelon São Pedro e Miquelão São Pedro e Miquelão Saint-Pierre și Miquelon Сен-Пьер и Микелон Saint Pierre a Miquelon Saint Pierre in Miquelon Shën-Pier dhe Mikelon Сен Пјер и Микелон S:t Pierre och Miquelon Santapierre na Miquelon แซงปีแยร์และมีเกอลง Saint Pierre ve Miquelon Сен-Пьер һәм Микелон Сен-Пʼєр і Мікелон Sen-Pyer va Mikelon Saint Pierre và Miquelon 圣皮埃尔和密克隆群岛 聖皮埃與密克隆群島
188 PN جزر بيتكيرن Астравы Піткэрн Острови Питкерн Enez Pitcairn Pitkernska Ostrva Illes Pitcairn Pitcairnovy ostrovy Pitcairn Pitcairninseln Νήσοι Πίτκερν Pitcairn Islands Pitkarna Insulo Islas Pitcairn Pitcairni saared Pitcairn uharteak جزایر پیت‌کرن Pitcairn Îles Pitcairn Îles Pitcairn Oileáin Pitcairn Eileanan Pheit a’ Chàirn Illas Pitcairn איי פיטקרן Otoci Pitcairn Pitcairn-szigetek Pitcairn Islands Kepulauan Pitcairn Pitcairn-eyjar Isole Pitcairn ピトケアン諸島 핏케언 섬 Pitcairn Islands Питкэрн аралдары Pitkerno salos Pitkērnas salas പിറ്റ്‌കെയ്‌ൻ ദ്വീപുകൾ Питкэрн арлууд Pitcairnøyene Pitcairneilanden Pitcairn Pitcairn Islands Pitcairn Ilhas Pitcairn Ilhas Pitcairn Insulele Pitcairn о-ва Питкэрн Pitcairnove ostrovy Pitcairn Ishujt Pitkern Питкерн Pitcairnöarna Visiwa vya Pitcairn หมู่เกาะพิตแคร์น Pitcairn Adaları Питкэрн утраулары Острови Піткерн Pitkern orollari Quần đảo Pitcairn 皮特凯恩群岛 皮特肯群島
189 PR بورتوريكو Пуэрта-Рыка Пуерто Рико Puerto Rico Porto Riko Puerto Rico Portoriko Puerto Rico Puerto Rico Πουέρτο Ρίκο Puerto Rico Puerto-Riko Puerto Rico Puerto Rico Puerto Rico پورتوریکو Puerto Rico Porto Rico Porto Rico Pórtó Ríce Porto Rìceo Porto Rico פוארטו ריקו Portoriko Puerto Rico Puerto Rico Puerto Riko Púertó Ríkó Portorico プエルトリコ 푸에르토리코 Puerto Rico Пуэрто-Рико Puerto Rikas Puertoriko പോർട്ടോ റിക്കോ Пуэрто-Рико Puerto Rico Puerto Rico Puerto Rico Puerto Rico Portoryko Porto Rico Porto Rico Puerto Rico Пуэрто-Рико Portoriko Portoriko Porto-Riko Порторико Puerto Rico Puerto Rico เปอร์โตริโก Porto Riko Пуэрто-Рико Пуерто-Ріко Puerto-Riko Puerto Rico 波多黎各 波多黎各
190 PS فلسطين Палесціна Палестина Palestina Palestina Palestina Palestina Palæstina Palästina Παλαιστίνη Palestine Palestine Palestina Palestiina Palestina فلسطین Palestiina Palestine Palestine an Phalaistín Palastain Palestina פלסטין Palestina Palesztina Palestine Palestina Palestína Palestina パレスチナ 팔레스타인 Palestine Палестина Palestina Palestine പലസ്‌തീൻ Палестин Palestina Palestina Palestina Palestine Palestyna Palestina Palestina Palestina Палестина Palestínska samospráva Palestina Palestinë Палестина Palestina Palestina ปาเลสไตน์ Filistin Palestine Палестина Falastin Palestine 巴勒斯坦 巴勒斯坦
191 PT البرتغال Партугалія Португалия Portugal Portugal Portugal Portugalsko Portugal Portugal Πορτογαλία Portugal Portugalujo Portugal Portugal Portugal پرتغال Portugali Portugal Portugal an Phortaingéil A’ Phortagail Portugal פורטוגל Portugal Portugália Portugal Portugal Portúgal Portogallo ポルトガル 포르투갈 Portugal Португалия Portugalija Portugāle പോർച്ചുഗൽ Португал Portugal Portugal Portugal Portugal Portugalia Portugal Portugal Portugalia Португалия Portugalsko Portugalska Portugali Португалија Portugal Ureno โปรตุเกส Portekiz Португалия Портуґалія Portugaliya Bồ Đào Nha 葡萄牙 葡萄牙
192 PW بالاو Палау Палау Palau Palau Palau Palau Palau Palau Παλάου Palau Belaŭo Palaos Belau Palau پالائو Palau Palaos Palaos Oileáin Palau Palabh Palau פלאו Palau Palau Palau Palau Palá Palau パラオ 팔라우 Palau Палау Palau Palau പലാവു Палау Palau Palau Palau Palau Palau Palau Palau Palau Палау Palau Palau Palau Палау Palau Palau ปาเลา Palau Палау Палау Palau Palau 帕劳 帛琉
193 PY باراغواي Парагвай Парагвай Paraguay Paragvaj Paraguai Paraguay Paraguay Paraguay Παραγουάη Paraguay Paragvajo Paraguay Paraguay Paraguai پاراگوئه Paraguay Paraguay Paraguay Paragua Paraguaidh O Paraguai פרגוואי Paragvaj Paraguay Paraguay Paraguay Paragvæ Paraguay パラグアイ 파라과이 Paraguay Парагвай Paragvajus Paragvaja പരാഗ്വേ Парагвай Paraguay Paraguay Paraguay Paraguay Paragwaj Paraguai Paraguai Paraguay Парагвай Paraguaj Paragvaj Paraguai Парагвај Paraguay Paraguay ปารากวัย Paraguay Парагвай Параґвай Paragvay Paraguay 巴拉圭 巴拉圭
194 QA قطر Катар Катар Qatar Katar Qatar Katar Qatar Katar Κατάρ Qatar Kataro Catar Katar Qatar قطر Qatar Qatar Qatar Catar Catar Qatar קטאר Katar Katar Qatar Qatar Katar Qatar カタール 카타르 Qatar Катар Kataras Katara ഖത്തർ Катар Qatar Qatar Qatar Qatar Katar Catar Catar Qatar Катар Katar Katar Katar Катар Qatar Qatar กาตาร์ Katar Катар Катар Qatar Qatar 卡塔尔 卡達
195 QO أوقيانوسيا النائية Аддаленыя тэрыторыі Акіяніі Отдалечени острови на Океания Oseania diabell Vanjska Okeanija Territoris allunyats d’Oceania vnější Oceánie Ydre Oceanien Äußeres Ozeanien Περιφερειακή Ωκεανία Outlying Oceania Outlying Oceania Territorios alejados de Oceanía Okeaania hajasaared Mugaz kanpoko Ozeania بخش‌های دورافتادهٔ اقیانوسیه ulkomeri régions éloignées de l’Océanie régions éloignées de l’Océanie an Aigéine Imeallach Roinn Iomallach a’ Chuain Sèimh Territorios afastados de Oceanía טריטוריות באוקיאניה Vanjska područja Oceanije Külső-Óceánia Oceania remote Oseania Luar Ytri Eyjaálfa Oceania lontana オセアニア周辺地域 오세아니아 외곽 Outlying Oceania Алыскы Океания Nuošali Okeanija Okeānijas attālās salas ദ്വീപസമൂഹം Номхон далайг тойрсон улс орнууд Ytre Oseania overig Oceanië Ytre Oseania Outlying Oceania Oceania — wyspy dalekie Oceania Remota Oceania Remota Oceania Periferică Внешняя Океания ostatné Tichomorie Ostala oceanija Oqeania e Largët (Lindja e Largët) Океанија (удаљена острва) yttre öar i Oceanien Oceania ya Nje เอาต์ไลอิงโอเชียเนีย Uzak Okyanusya Outlying Oceania Віддалена Океанія Tashqi Okeaniya Vùng xa xôi thuộc Châu Đại Dương 大洋洲边远群岛 大洋洲邊疆群島
196 RE روينيون Рэюньён Реюнион Ar Reünion Reunion Illa de la Reunió Réunion Réunion Réunion Ρεϊνιόν Réunion Reunio Reunión Réunion Reunion رئونیون Réunion La Réunion La Réunion Réunion Réunion Reunión ראוניון Réunion Réunion Réunion Réunion Réunion Riunione レユニオン 리유니온 Réunion Реюньон Reunjonas Reinjona റീയൂണിയൻ Реюнион Réunion Réunion Réunion Réunion Reunion Reunião Reunião Réunion Реюньон Réunion Reunion Reunion Реинион Réunion Reunion เรอูนียง Reunion Реюньон Реюньйон Reyunion Réunion 留尼汪 留尼旺
197 RO رومانيا Румынія Румъния Roumania Rumunija Romania Rumunsko Rumænien Rumänien Ρουμανία Romania Rumanujo Rumanía Rumeenia Errumania رومانی Romania Roumanie Roumanie an Rómáin Romàinia Romanía רומניה Rumunjska Románia Romania Rumania Rúmenía Romania ルーマニア 루마니아 Romania Румыния Rumunija Rumānija റൊമാനിയ Румын Romania Roemenië Romania Romania Rumunia Romênia Romênia România Румыния Rumunsko Romunija Rumani Румунија Rumänien Romania โรมาเนีย Romanya Румыния Румунія Ruminiya Romania 罗马尼亚 羅馬尼亞
198 RS صربيا Сербія Сърбия Serbia Srbija Sèrbia Srbsko Serbien Serbien Σερβία Serbia Serbia Serbia Serbia Serbia صربستان Serbia Serbie Serbie an tSeirbia An t-Sèirb Serbia סרביה Srbija Szerbia Serbia Serbia Serbía Serbia セルビア 세르비아 Serbia Сербия Serbija Serbija സെർബിയ Серби Serbia Servië Serbia Serbia Serbia Sérvia Sérvia Serbia Сербия Srbsko Srbija Serbi Србија Serbien Serbia เซอร์เบีย Sırbistan Сербия Сербія Serbiya Serbia 塞尔维亚 塞爾維亞
199 RU روسيا Расія Русия Rusia Rusija Rússia Rusko Rusland Russland Ρωσία Russia Rusujo Rusia Venemaa Errusia روسیه Venäjä Russie Russie an Rúis An Ruis Rusia רוסיה Rusija Oroszország Russia Rusia Rússland Russia ロシア 러시아 Russi Россия Rusija Krievija റഷ്യ Орос Russland Rusland Russland Уӕрӕсе Rosja Rússia Rússia Rusia Россия Rusko Rusija Rusi Русија Ryssland Urusi รัสเซีย Rusya Россия Росія Rossiya Nga 俄罗斯 俄羅斯
200 RW رواندا Руанда Руанда Rwanda Ruanda Ruanda Rwanda Rwanda Ruanda Ρουάντα Rwanda Ruando Ruanda Rwanda Ruanda رواندا Ruanda Rwanda Rwanda Ruanda Rubhanda Ruanda רואנדה Ruanda Ruanda Ruanda Rwanda Rúanda Ruanda ルワンダ 르완다 Rwanda Руанда Ruanda Ruanda റുവാണ്ട Руанда Rwanda Rwanda Rwanda Rwanda Rwanda Ruanda Ruanda Rwanda Руанда Rwanda Ruanda Ruandë Руанда Rwanda Rwanda รวันดา Ruanda Руанда Руанда Ruanda Rwanda 卢旺达 盧安達
201 SA المملكة العربية السعودية Саудаўская Аравія Саудитска Арабия Arabia Saoudat Saudijska Arabija Aràbia Saudita Saúdská Arábie Saudi-Arabien Saudi-Arabien Σαουδική Αραβία Saudi Arabia Saŭda Arabujo Arabia Saudí Saudi Araabia Saudi Arabia عربستان سعودی Saudi-Arabia Arabie saoudite Arabie saoudite an Araib Shádach Aràibia nan Sabhd Arabia Saudita ערב הסעודית Saudijska Arabija Szaúd-Arábia Arabia Saudita Arab Saudi Sádi-Arabía Arabia Saudita サウジアラビア 사우디아라비아 Saudi Arabia Сауд Арабиясы Saudo Arabija Saūda Arābija സൗദി അറേബ്യ Саудын Араб Saudi-Arabia Saoedi-Arabië Saudi-Arabia Saudi Arabia Arabia Saudyjska Arábia Saudita Arábia Saudita Arabia Saudită Саудовская Аравия Saudská Arábia Saudova Arabija Arabi Saudite Саудијска Арабија Saudiarabien Saudia ซาอุดีอาระเบีย Suudi Arabistan Согуд Гарәбстаны Саудівська Аравія Saudiya Arabistoni Ả Rập Xê-út 沙特阿拉伯 沙烏地阿拉伯
202 SB جزر سليمان Саламонавы астравы Соломонови острови Inizi Salomon Solomonska Ostrva Illes Salomó Šalamounovy ostrovy Salomonøerne Salomonen Νήσοι Σολομώντος Solomon Islands Salomonoj Islas Salomón Saalomoni Saared Salomon Uharteak جزایر سلیمان Salomonsaaret Îles Salomon Îles Salomon Oileáin Sholomón Eileanan Sholaimh Illas Salomón איי שלמה Salomonski Otoci Salamon-szigetek Insulas Solomon Kepulauan Solomon Salómonseyjar Isole Salomone ソロモン諸島 솔로몬 제도 Solomon Islands Соломон аралдары Saliamono Salos Zālamana salas സോളമൻ ദ്വീപുകൾ Соломоны арлууд Salomonøyene Salomonseilanden Salomonøyane Solomon Islands Wyspy Salomona Ilhas Salomão Ilhas Salomão Insulele Solomon Соломоновы Острова Šalamúnove ostrovy Salomonovi otoki Ishujt Solomon Соломонска Острва Salomonöarna Visiwa vya Solomon หมู่เกาะโซโลมอน Solomon Adaları Сөләйман утраулары Соломонові Острови Solomon orollari Quần đảo Solomon 所罗门群岛 索羅門群島
203 SC سيشل Сейшэльскія астравы Сейшели Sechelez Sejšeli Seychelles Seychely Seychellerne Seychellen Σεϋχέλλες Seychelles Sejŝeloj Seychelles Seišellid Seychelleak سیشل Seychellit Seychelles Seychelles na Séiséil Na h-Eileanan Sheiseall Seychelles איי סיישל Sejšeli Seychelle-szigetek Seychelles Seychelles Seychelles-eyjar Seychelles セーシェル 세이셸 Seychelles Сейшел аралдары Seišeliai Seišelu salas സീഷെൽസ് Сейшелийн арлууд Seychellene Seychellen Seychellane Seychelles Seszele Seicheles Seicheles Seychelles Сейшельские Острова Seychely Sejšeli Sejshelle Сејшели Seychellerna Ushelisheli เซเชลส์ Seyşeller Сейшел утраулары Сейшельські Острови Seyshel orollari Seychelles 塞舌尔 塞席爾
204 SD السودان Судан Судан Soudan Sudan Sudan Súdán Sudan Sudan Σουδάν Sudan Sudano Sudán Sudaan Sudan سودان Sudan Soudan Soudan an tSúdáin Sudàn O Sudán סודן Sudan Szudán Sudan Sudan Súdan Sudan スーダン 수단 Sudan Судан Sudanas Sudāna സുഡാൻ Судан Sudan Soedan Sudan Sudan Sudan Sudão Sudão Sudan Судан Sudán Sudan Sudan Судан Sudan Sudan ซูดาน Sudan Судан Судан Sudan Sudan 苏丹 蘇丹
205 SE السويد Швецыя Швеция Sveden Švedska Suècia Švédsko Sverige Schweden Σουηδία Sweden Svedujo Suecia Rootsi Suedia سوئد Ruotsi Suède Suède an tSualainn An t-Suain Suecia שוודיה Švedska Svédország Svedia Swedia Svíþjóð Svezia スウェーデン 스웨덴 Sweden Швеция Švedija Zviedrija സ്വീഡൻ Швед Sverige Zweden Sverige Sweden Szwecja Suécia Suécia Suedia Швеция Švédsko Švedska Suedi Шведска Sverige Uswidi สวีเดน İsveç Швеция Швеція Shvetsiya Thụy Điển 瑞典 瑞典
206 SG سنغافورة Сінгапур Сингапур Singapour Singapur Singapur Singapur Singapore Singapur Σιγκαπούρη Singapore Singapuro Singapur Singapur Singapur سنگاپور Singapore Singapour Singapour Singeapór Singeapòr Singapur סינגפור Singapur Szingapúr Singapore Singapura Singapúr Singapore シンガポール 싱가포르 Singapore Сингапур Singapūras Singapūra സിംഗപ്പൂർ Сингапур Singapore Singapore Singapore Singapore Singapur Singapura Singapura Singapore Сингапур Singapur Singapur Singapor Сингапур Singapore Singapore สิงคโปร์ Singapur Сингапур Сінгапур Singapur Singapore 新加坡 新加坡
207 SH سانت هيلينا Востраў Святой Алены Света Елена Saint-Helena Sveta Helena Saint Helena Svatá Helena St. Helena St. Helena Αγία Ελένη St. Helena Sent-Heleno Santa Elena Saint Helena Santa Helena سنت هلن Saint Helena Sainte-Hélène Sainte-Hélène San Héilin Eilean Naomh Eilidh Santa Helena סנט הלנה Sveta Helena Szent Ilona St. Helena Saint Helena Sankti Helena Sant’Elena セントヘレナ 세인트헬레나 St. Helena Ыйык Елена Šv. Elenos Sala Sv.Helēnas sala സെന്റ് ഹെലീന Сент Хелена St. Helena Sint-Helena Saint Helena St. Helena Wyspa Świętej Heleny Santa Helena Santa Helena Sfânta Elena о-в Св. Елены Svätá Helena Sveta Helena Shën-Elenë Света Јелена S:t Helena St. Helena เซนต์เฮเลนา Saint Helena St. Helena Острів Святої Єлени Muqaddas Yelena oroli St. Helena 圣赫勒拿 聖赫勒拿島
208 SI سلوفينيا Славенія Словения Slovenia Slovenija Eslovènia Slovinsko Slovenien Slowenien Σλοβενία Slovenia Slovenujo Eslovenia Sloveenia Eslovenia اسلوونی Slovenia Slovénie Slovénie an tSlóivéin An t-Slòbhain Eslovenia סלובניה Slovenija Szlovénia Slovenia Slovenia Slóvenía Slovenia スロベニア 슬로베니아 Slovenia Словения Slovėnija Slovēnija സ്ലോവേനിയ Словени Slovenia Slovenië Slovenia Slovenia Słowenia Eslovênia Eslovênia Slovenia Словения Slovinsko Slovenija Slloveni Словенија Slovenien Slovenia สโลวีเนีย Slovenya Словения Словенія Sloveniya Slovenia 斯洛文尼亚 斯洛維尼亞
209 SJ سفالبارد وجان ماين Шпіцберген і Ян-Маен Свалбард и Ян Майен Svalbard Svalbard i Jan Majen Svalbard i Jan Mayen Špicberky a Jan Mayen Svalbard og Jan Mayen Spitzbergen und Jan Mayen Σβάλμπαρντ και Γιαν Μαγιέν Svalbard & Jan Mayen Svalbardo kaj Jan-Majen-insulo Svalbard y Jan Mayen Svalbard ja Jan Mayen Svalbard eta Jan Mayen uharteak سوالبارد و یان ماین Huippuvuoret ja Jan Mayen Svalbard et Jan Mayen Svalbard et Jan Mayen Svalbard agus Jan Mayen Svalbard agus Jan Mayen Svalbard e Jan Mayen סבאלברד ויאן מאיין Svalbard i Jan Mayen Svalbard és Jan Mayen Svalbard e Jan Mayen Kepulauan Svalbard dan Jan Mayen Svalbarði og Jan Mayen Svalbard e Jan Mayen スバールバル諸島・ヤンマイエン島 스발바르제도-얀마웬섬 Svalbard & Jan Mayen Шпицберген жана Ян-Майен Svalbardas ir Janas Majenas Svalbāra un Jana Majena sala സ്വാൽബാഡും ജാൻ മായേനും Свалбард ба Ян Майен Svalbard og Jan Mayen Spitsbergen en Jan Mayen Svalbard og Jan Mayen Svalbard & Jan Mayen Svalbard i Jan Mayen Svalbard e Jan Mayen Svalbard e Jan Mayen Svalbard și Jan Mayen Шпицберген и Ян-Майен Svalbard a Jan Mayen Svalbard in Jan Mayen Svalbard e Jan-Majen Свалбард и Јан Мајен Svalbard och Jan Mayen Svalbard na Jan Mayen สฟาลบาร์และยานไมเอน Svalbard ve Jan Mayen Шпицберген һәм Ян-Майен Шпіцберген та Ян-Маєн Shpitsbergen va Yan-Mayen Svalbard và Jan Mayen 斯瓦尔巴和扬马延 挪威屬斯瓦巴及尖棉
210 SK سلوفاكيا Славакія Словакия Slovakia Slovačka Eslovàquia Slovensko Slovakiet Slowakei Σλοβακία Slovakia Slovakujo Eslovaquia Slovakkia Eslovakia اسلواکی Slovakia Slovaquie Slovaquie an tSlóvaic An t-Slòbhac Eslovaquia סלובקיה Slovačka Szlovákia Slovachia Slovakia Slóvakía Slovacchia スロバキア 슬로바키아 Slovakia Словакия Slovakija Slovākija സ്ലോവാക്യ Словак Slovakia Slowakije Slovakia Slovakia Słowacja Eslováquia Eslováquia Slovacia Словакия Slovensko Slovaška Sllovaki Словачка Slovakien Slovakia สโลวะเกีย Slovakya Словакия Словаччина Slovakiya Slovakia 斯洛伐克 斯洛伐克
211 SL سيراليون Сьера-Леонэ Сиера Леоне Sierra Leone Sijera Leone Sierra Leone Sierra Leone Sierra Leone Sierra Leone Σιέρα Λεόνε Sierra Leone Siera-Leono Sierra Leona Sierra Leone Sierra Leona سیرالئون Sierra Leone Sierra Leone Sierra Leone Siarra Leon Siarra Leòmhann Serra Leoa סיירה לאונה Sijera Leone Sierra Leone Sierra Leone Sierra Leone Síerra Leóne Sierra Leone シエラレオネ 시에라리온 Sierra Leone Сьерра-Леоне Siera Leonė Sjerraleone സിയെറ ലിയോൺ Сьерра-Леоне Sierra Leone Sierra Leone Sierra Leone Sierra Leone Sierra Leone Serra Leoa Serra Leoa Sierra Leone Сьерра-Леоне Sierra Leone Sierra Leone Sierra-Leone Сијера Леоне Sierra Leone Siera Leoni เซียร์ราลีโอน Sierra Leone Сьерра-Леоне Сьєрра-Леоне Syerra-Leone Sierra Leone 塞拉利昂 獅子山
212 SM سان مارينو Сан-Марына Сан Марино San Marino San Marino San Marino San Marino San Marino San Marino Άγιος Μαρίνος San Marino San-Marino San Marino San Marino San Marino سان‌مارینو San Marino Saint-Marin Saint-Marin San Mairíne San Marino San Marino סן מרינו San Marino San Marino San Marino San Marino San Marínó San Marino サンマリノ 산마리노 San Marino Сан Марино San Marinas Sanmarīno സാൻ മറിനോ Сан-Марино San Marino San Marino San Marino San Marino San Marino San Marino San Marino San Marino Сан-Марино San Maríno San Marino San-Marino Сан Марино San Marino San Marino ซานมาริโน San Marino Сан-Марино Сан-Маріно San-Marino San Marino 圣马力诺 聖馬利諾
213 SN السنغال Сенегал Сенегал Senegal Senegal Senegal Senegal Senegal Senegal Σενεγάλη Senegal Senegalo Senegal Senegal Senegal سنگال Senegal Sénégal Sénégal an tSeineagáil Seanagal Senegal סנגל Senegal Szenegál Senegal Senegal Senegal Senegal セネガル 세네갈 Senegal Сенегал Senegalas Senegāla സെനഗൽ Сенегал Senegal Senegal Senegal Senegal Senegal Senegal Senegal Senegal Сенегал Senegal Senegal Senegal Сенегал Senegal Senegali เซเนกัล Senegal Сенегал Сенегал Senegal Senegal 塞内加尔 塞內加爾
214 SO الصومال Самалі Сомалия Somalia Somalija Somàlia Somálsko Somalia Somalia Σομαλία Somalia Somalujo Somalia Somaalia Somalia سومالی Somalia Somalie Somalie an tSomáil Somàilia Somalia סומליה Somalija Szomália Somalia Somalia Sómalía Somalia ソマリア 소말리아 Somalia Сомали Somalis Somālija സോമാലിയ Сомали Somalia Somalië Somalia Somalia Somalia Somália Somália Somalia Сомали Somálsko Somalija Somali Сомалија Somalia Somalia โซมาเลีย Somali Сомали Сомалі Somali Somalia 索马里 索馬利亞
215 SR سورينام Сурынам Суринам Surinam Surinam Surinam Surinam Surinam Suriname Σουρινάμ Suriname Surinamo Surinam Suriname Surinam سورینام Suriname Suriname Suriname Suranam Suranam Suriname סורינאם Surinam Suriname Suriname Suriname Súrínam Suriname スリナム 수리남 Suriname Суринам Surinamas Surinama സുരിനാം Суринам Surinam Suriname Surinam Suriname Surinam Suriname Suriname Suriname Суринам Surinam Surinam Surinami Суринам Surinam Suriname ซูรินาเม Surinam Суринам Сурінам Surinam Suriname 苏里南 蘇利南
216 SS جنوب السودان Паўднёвы Судан Южен Судан Susoudan Južni Sudan Sudan del Sud Jižní Súdán Sydsudan Südsudan Νότιο Σουδάν South Sudan Sud-Sudano Sudán del Sur Lõuna-Sudaan Hego Sudan سودان جنوبی Etelä-Sudan Soudan du Sud Soudan du Sud an tSúdáin Theas Sudàn a Deas O Sudán do Sur דרום סודן Južni Sudan Dél-Szudán Sudan del Sud Sudan Selatan Suður-Súdan Sud Sudan 南スーダン 남수단 South Sudan Түштүк Судан Pietų Sudanas Dienvidsudāna ദക്ഷിണ സുഡാൻ Өмнөд Судан Sør-Sudan Zuid-Soedan Sør-Sudan South Sudan Sudan Południowy Sudão do Sul Sudão do Sul Sudanul de Sud Южный Судан Južný Sudán Južni Sudan Sudani i Jugut Јужни Судан Sydsudan Sudan Kusini ซูดานใต้ Güney Sudan Көньяк Судан Південний Судан Janubiy Sudan Nam Sudan 南苏丹 南蘇丹
217 ST ساو تومي وبرينسيبي Сан-Тамэ і Прынсіпі Сао Томе и Принсипи São Tomé ha Príncipe Sao Tome i Principe São Tomé i Príncipe Svatý Tomáš a Princův ostrov São Tomé og Príncipe São Tomé und Príncipe Σάο Τομέ και Πρίνσιπε São Tomé & Príncipe Sao-Tomeo kaj Principeo Santo Tomé y Príncipe São Tomé ja Príncipe Sao Tome eta Principe سائوتومه و پرینسیپ São Tomé ja Príncipe Sao Tomé-et-Principe Sao Tomé-et-Principe São Tomé agus Príncipe São Tomé agus Príncipe San Tomé e Príncipe סאו טומה ופרינסיפה Sveti Toma i Princip São Tomé és Príncipe São Tomé & Príncipe Sao Tome dan Principe Saó Tóme og Prinsípe São Tomé e Príncipe サントメ・プリンシペ 상투메 프린시페 São Tomé & Príncipe Сан-Томе жана Принсипи San Tomė ir Prinsipė Santome un Prinsipi സാവോ ടോമും പ്രിൻസിപെയും Сан-Томе ба Принсипи São Tomé og Príncipe Sao Tomé en Principe São Tomé og Príncipe São Tomé & Príncipe Wyspy Świętego Tomasza i Książęca São Tomé e Príncipe São Tomé e Príncipe São Tomé și Príncipe Сан-Томе и Принсипи Svätý Tomáš a Princov ostrov Sao Tome in Principe Sao-Tome e Principe Сао Томе и Принципе São Tomé och Príncipe São Tomé na Príncipe เซาตูเมและปรินซิปี Sao Tome ve Principe Сан-Томе һәм Принсипи Сан-Томе і Прінсіпі San-Tome va Prinsipi São Tomé và Príncipe 圣多美和普林西比 聖多美普林西比
218 SV السلفادور Сальвадор Салвадор Salvador Salvador El Salvador Salvador El Salvador El Salvador Ελ Σαλβαδόρ El Salvador Salvadoro El Salvador El Salvador El Salvador السالوادور El Salvador Salvador Salvador an tSalvadóir An Salbhador O Salvador אל סלבדור Salvador Salvador El Salvador El Salvador El Salvador El Salvador エルサルバドル 엘살바도르 El Salvador Эль-Сальвадор Salvadoras Salvadora എൽ സാൽവദോർ Эль Сальвадор El Salvador El Salvador El Salvador El Salvador Salwador El Salvador El Salvador El Salvador Сальвадор Salvádor Salvador Salvador Салвадор El Salvador El Salvador เอลซัลวาดอร์ El Salvador Сальвадор Сальвадор Salvador El Salvador 萨尔瓦多 薩爾瓦多
219 SX سانت مارتن Сінт-Мартэн Синт Мартен Sint Maarten Sint Marten Sint Maarten Svatý Martin (Nizozemsko) Sint Maarten Sint Maarten Άγιος Μαρτίνος (Ολλανδικό τμήμα) Sint Maarten Sint Maarten Sint Maarten Sint Maarten Sint Maarten سنت مارتن Sint Maarten Saint-Martin (partie néerlandaise) Saint-Martin (partie néerlandaise) Sint Maarten Sint Maarten Sint Maarten סנט מארטן Sint Maarten Sint Maarten Sint Maarten Sint Maarten Sankti Martin Sint Maarten シント・マールテン 신트마르턴 Sint Maarten Синт-Мартен Sint Martenas Sintmārtena സിന്റ് മാർട്ടെൻ Синт Мартен Sint Maarten Sint-Maarten Sint Maarten Sint Maarten Sint Maarten Sint Maarten Sint Maarten Sint-Maarten Синт-Мартен Svätý Martin (hol.) Sint Maarten Sint-Marten Свети Мартин (Холандија) Sint Maarten Sint Maarten ซินต์มาร์เทน Sint Maarten Синт-Мартен Сінт-Мартен Sint-Marten Sint Maarten 荷属圣马丁 荷屬聖馬丁
220 SY سوريا Сірыя Сирия Siria Sirija Síria Sýrie Syrien Syrien Συρία Syria Sirio Siria Süüria Siria سوریه Syyria Syrie Syrie an tSiria Siridhea Siria סוריה Sirija Szíria Syria Suriah Sýrland Siria シリア 시리아 Syria Сирия Sirija Sīrija സിറിയ Сири Syria Syrië Syria Syria Syria Síria Síria Siria Сирия Sýria Sirija Siri Сирија Syrien Syria ซีเรีย Suriye Сүрия Сирія Suriya Syria 叙利亚 敘利亞
221 SZ إسواتيني Эсватыні Есватини Eswatini Esvatini eSwatini Svazijsko Eswatini Eswatini Σουαζιλάνδη Eswatini Svazilando Esuatini Svaasimaa Swazilandia اسواتینی Swazimaa Eswatini Eswatini eSuaitíní eSwatini Eswatini אסוואטיני Esvatini Szváziföld Swazilandia eSwatini Svasíland Swaziland エスワティニ 에스와티니 Eswatini Свазиленд Svazilandas Svatini സ്വാസിലാന്റ് Эсватини Eswatini eSwatini Swaziland Eswatini Eswatini Essuatíni Essuatíni eSwatini Эсватини Eswatini Esvatini Esvatini Свазиленд Swaziland Uswazi เอสวาตีนี Esvatini Свазиленд Есватіні Svazilend Swaziland 斯威士兰 史瓦帝尼
222 TA تريستان دا كونا Трыстан-да-Кунья Тристан да Куня Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Τριστάν ντα Κούνια Tristan da Cunha Tristan da Cunha Tristán de Acuña Tristan da Cunha Tristan da Cunha تریستان دا کونا Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristán da Cunha טריסטן דה קונה Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha トリスタン・ダ・クーニャ 트리스탄다쿠나 Tristan da Cunha Тристан-да-Кунья Tristanas da Kunja Tristana da Kuņas salas ട്രിസ്റ്റൻ ഡ കൂന Тристан да Кунъя Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristan da Cunha Tristão da Cunha Tristão da Cunha Tristan da Cunha Тристан-да-Кунья Tristan da Cunha Tristan da Cunha Tristan-da-Kuna Тристан да Куња Tristan da Cunha Tristan da Cunha ทริสตันดาคูนา Tristan da Cunha Tristan da Cunha Трістан-да-Кунья Tristan-da-Kunya Tristan da Cunha 特里斯坦-达库尼亚群岛 特里斯坦達庫尼亞群島
223 TC جزر توركس وكايكوس Астравы Цёркс і Кайкас острови Търкс и Кайкос Inizi Turks ha Caicos Ostrva Turks i Kaikos Illes Turks i Caicos Turks a Caicos Turks- og Caicosøerne Turks- und Caicosinseln Νήσοι Τερκς και Κάικος Turks & Caicos Islands Turks & Caicos Islands Islas Turcas y Caicos Turks ja Caicos Turk eta Caico uharteak جزایر تورکس و کایکوس Turks- ja Caicossaaret Îles Turques-et-Caïques Îles Turques-et-Caïques Oileáin na dTurcach agus Caicos Na h-Eileanan Turcach is Caiceo Illas Turks e Caicos איי טרקס וקייקוס Otoci Turks i Caicos Turks- és Caicos-szigetek Insulas Turcos e Caicos Kepulauan Turks dan Caicos Turks- og Caicoseyjar Isole Turks e Caicos タークス・カイコス諸島 터크스 케이커스 제도 Turks & Caicos Islands Түркс жана Кайкос аралдары Terkso ir Kaikoso Salos Tērksas un Kaikosas salas ടർക്ക്‌സും കെയ്‌ക്കോ ദ്വീപുകളും Турк ба Кайкосын Арлууд Turks- og Caicosøyene Turks- en Caicoseilanden Turks- og Caicosøyane Turks & Caicos Islands Turks i Caicos Ilhas Turcas e Caicos Ilhas Turcas e Caicos Insulele Turks și Caicos о-ва Тёркс и Кайкос Turks a Caicos Otoki Turks in Caicos Ishujt Turks dhe Kaikos Острва Туркс и Каикос Turks- och Caicosöarna Visiwa vya Turks na Caicos หมู่เกาะเติกส์และหมู่เกาะเคคอส Turks ve Caicos Adaları Теркс һәм Кайкос утраулары Острови Теркс і Кайкос Turks va Kaykos orollari Quần đảo Turks và Caicos 特克斯和凯科斯群岛 土克斯及開科斯群島
224 TD تشاد Чад Чад Tchad Čad Txad Čad Tchad Tschad Τσαντ Chad Ĉado Chad Tšaad Txad چاد Tšad Tchad Tchad Sead An t-Seàd Chad צ׳אד Čad Csád Tchad Cad Tsjad Ciad チャド 차드 Chad Чад Čadas Čada ഛാഡ് Чад Tsjad Tsjaad Tsjad Chad Czad Chade Chade Ciad Чад Čad Čad Çad Чад Tchad Chad ชาด Çad Чад Чад Chad Chad 乍得 查德
225 TF الأقاليم الجنوبية الفرنسية Французскія паўднёвыя тэрыторыі Френски южни територии Douaroù aostral Frañs Francuske Južne Teritorije Territoris Australs Francesos Francouzská jižní území De Franske Besiddelser i Det Sydlige Indiske Ocean og Antarktis Französische Süd- und Antarktisgebiete Γαλλικά Νότια Εδάφη French Southern Territories French Southern Territories Territorios Australes Franceses Prantsuse Lõunaalad Hegoaldeko lurralde frantsesak سرزمین‌های جنوب فرانسه Ranskan eteläiset alueet Terres australes françaises Terres australes françaises Críocha Francacha Dheisceart an Domhain Ranntairean a Deas na Frainge Territorios Austrais Franceses הטריטוריות הדרומיות של צרפת Francuski južni i antarktički teritoriji Francia Déli Területek Territorios meridional francese Wilayah Selatan Perancis Frönsku suðlægu landsvæðin Terre australi francesi 仏領極南諸島 프랑스 남부 지방 French Southern Territories Франциянын Түштүктөгү аймактары Prancūzijos Pietų sritys Francijas Dienvidjūru teritorija ഫ്രഞ്ച് ദക്ഷിണ ഭൂപ്രദേശം Францын өмнөд газар нутаг De franske sørterritorier Franse Gebieden in de zuidelijke Indische Oceaan Dei franske sørterritoria French Southern Territories Francuskie Terytoria Południowe i Antarktyczne Territórios Franceses do Sul Territórios Franceses do Sul Teritoriile Australe și Antarctice Franceze Французские Южные территории Francúzske južné a antarktické územia Francosko južno ozemlje Territoret Jugore Franceze Француске Јужне Територије Franska sydterritorierna Himaya za Kusini za Kifaranza เฟรนช์เซาเทิร์นเทร์ริทอรีส์ Fransız Güney Toprakları Франциянең Көньяк Территорияләре Французькі Південні Території Fransuz Janubiy hududlari Lãnh thổ phía Nam Thuộc Pháp 法属南部领地 法屬南部屬地
226 TG توغو Тога Того Togo Togo Togo Togo Togo Togo Τόγκο Togo Togolo Togo Togo Togo توگو Togo Togo Togo Tóga Togo Togo טוגו Togo Togo Togo Togo Tógó Togo トーゴ 토고 Togo Того Togas Togo ടോഗോ Того Togo Togo Togo Togo Togo Togo Togo Togo Того Togo Togo Togo Того Togo Togo โตโก Togo Того Того Togo Togo 多哥 多哥
227 TH تايلاند Тайланд Тайланд Thailand Tajland Tailàndia Thajsko Thailand Thailand Ταϊλάνδη Thailand Tajlando Tailandia Tai Thailandia تایلند Thaimaa Thaïlande Thaïlande an Téalainn Dùthaich nan Tàidh Tailandia תאילנד Tajland Thaiföld Thailandia Thailand Taíland Thailandia タイ 태국 Thailand Тайланд Tailandas Taizeme തായ്‌ലാൻഡ് Тайланд Thailand Thailand Thailand Thailand Tajlandia Tailândia Tailândia Thailanda Таиланд Thajsko Tajska Tajlandë Тајланд Thailand Tailandi ไทย Tayland Тайланд Таїланд Tailand Thái Lan 泰国 泰國
228 TJ طاجيكستان Таджыкістан Таджикистан Tadjikistan Tadžikistan Tadjikistan Tádžikistán Tadsjikistan Tadschikistan Τατζικιστάν Tajikistan Taĝikujo Tayikistán Tadžikistan Tajikistan تاجیکستان Tadžikistan Tadjikistan Tadjikistan an Táidsíceastáin Taidigeastàn Taxiquistán טג׳יקיסטן Tadžikistan Tádzsikisztán Tadzhikistan Tajikistan Tadsjikistan Tagikistan タジキスタン 타지키스탄 Tajikistan Тажикстан Tadžikija Tadžikistāna താജിക്കിസ്ഥാൻ Тажикистан Tadsjikistan Tadzjikistan Tadsjikistan Tajikistan Tadżykistan Tadjiquistão Tadjiquistão Tadjikistan Таджикистан Tadžikistan Tadžikistan Taxhikistan Таџикистан Tadzjikistan Tajikistani ทาจิกิสถาน Tacikistan Таҗикстан Таджикистан Tojikiston Tajikistan 塔吉克斯坦 塔吉克
229 TK توكيلو Такелау Токелау Tokelau Tokelau Tokelau Tokelau Tokelau Tokelau Τοκελάου Tokelau Tokelau Tokelau Tokelau Tokelau توکلائو Tokelau Tokelau Tokelau Tócalá Tokelau Tokelau טוקלאו Tokelau Tokelau Tokelau Tokelau Tókelá Tokelau トケラウ 토켈라우 Tokelau Токелау Tokelau Tokelau ടോക്കെലൂ Токелау Tokelau Tokelau Tokelau Tokelau Tokelau Tokelau Tokelau Tokelau Токелау Tokelau Tokelau Tokelau Токелау Tokelau Tokelau โตเกเลา Tokelau Токелау Токелау Tokelau Tokelau 托克劳 托克勞群島
230 TL تيمور - ليشتي Тымор-Лешці Източен Тимор Timor-Leste Istočni Timor Timor Oriental Východní Timor Timor-Leste Timor-Leste Τιμόρ-Λέστε Timor-Leste Timor-Leste Timor-Leste Ida-Timor Ekialdeko Timor تیمور-لسته Itä-Timor Timor oriental Timor oriental Tíomór Thoir Timor-Leste Timor Leste טימור-לסטה Timor-Leste Kelet-Timor Timor del Est Timor Leste Tímor-Leste Timor Est 東ティモール 동티모르 Timor-Leste Тимор-Лесте Rytų Timoras Austrumtimora തിമോർ-ലെസ്റ്റെ Тимор-Лесте Øst-Timor Oost-Timor Timor-Leste (Aust-Timor) Timor-Leste Timor Wschodni Timor-Leste Timor-Leste Timor-Leste Восточный Тимор Východný Timor Timor-Leste Timor-Leste Тимор-Лесте (Источни Тимор) Östtimor Timor-Leste ติมอร์-เลสเต Timor-Leste Тимор-Лесте Тімор-Лешті Timor-Leste Timor-Leste 东帝汶 東帝汶
231 TM تركمانستان Туркменістан Туркменистан Turkmenistan Turkmenistan Turkmenistan Turkmenistán Turkmenistan Turkmenistan Τουρκμενιστάν Turkmenistan Turkmenujo Turkmenistán Türkmenistan Turkmenistan ترکمنستان Turkmenistan Turkménistan Turkménistan an Tuircméanastáin Turcmanastàn Turkmenistán טורקמניסטן Turkmenistan Türkmenisztán Turkmenistan Turkimenistan Túrkmenistan Turkmenistan トルクメニスタン 투르크메니스탄 Turkmenistan Түркмөнстан Turkmėnistanas Turkmenistāna തുർക്ക്മെനിസ്ഥാൻ Туркменистан Turkmenistan Turkmenistan Turkmenistan Turkmenistan Turkmenistan Turcomenistão Turcomenistão Turkmenistan Туркменистан Turkménsko Turkmenistan Turkmenistan Туркменистан Turkmenistan Turkmenistan เติร์กเมนิสถาน Türkmenistan Төркмәнстан Туркменістан Turkmaniston Turkmenistan 土库曼斯坦 土庫曼
232 TN تونس Туніс Тунис Tunizia Tunis Tunísia Tunisko Tunesien Tunesien Τυνησία Tunisia Tunizio Túnez Tuneesia Tunisia تونس Tunisia Tunisie Tunisie an Túinéis Tuinisea Tunisia תוניסיה Tunis Tunézia Tunisia Tunisia Túnis Tunisia チュニジア 튀니지 Tunisia Тунис Tunisas Tunisija ടുണീഷ്യ Тунис Tunisia Tunesië Tunisia Tunisia Tunezja Tunísia Tunísia Tunisia Тунис Tunisko Tunizija Tunizi Тунис Tunisien Tunisia ตูนิเซีย Tunus Тунис Туніс Tunis Tunisia 突尼斯 突尼西亞
233 TO تونغا Тонга Тонга Tonga Tonga Tonga Tonga Tonga Tonga Τόνγκα Tonga Tongo Tonga Tonga Tonga تونگا Tonga Tonga Tonga Tonga Tonga Tonga טונגה Tonga Tonga Tonga Tonga Tonga Tonga トンガ 통가 Tonga Тонга Tonga Tonga ടോംഗ Тонга Tonga Tonga Tonga Tonga Tonga Tonga Tonga Tonga Тонга Tonga Tonga Tonga Тонга Tonga Tonga ตองกา Tonga Тонга Тонґа Tonga Tonga 汤加 東加
234 TR تركيا Турцыя Турция Turkia Turska Turquia Turecko Tyrkiet Türkei Τουρκία Turkey Turkujo Turquía Türgi Turkia ترکیه Turkki Turquie Turquie an Tuirc An Tuirc Turquía טורקיה Turska Törökország Turchia Turki Tyrkland Turchia トルコ 터키 Turkey Түркия Turkija Turcija തുർക്കി Турк Tyrkia Turkije Tyrkia Turkey Turcja Turquia Turquia Turcia Турция Turecko Turčija Turqi Турска Turkiet Uturuki ตุรกี Türkiye Төркия Туреччина Turkiya Thổ Nhĩ Kỳ 土耳其 土耳其
235 TT ترينيداد وتوباغو Трынідад і Табага Тринидад и Тобаго Trinidad ha Tobago Trinidad i Tobago Trinitat i Tobago Trinidad a Tobago Trinidad og Tobago Trinidad und Tobago Τρινιντάντ και Τομπάγκο Trinidad & Tobago Trinidado kaj Tobago Trinidad y Tobago Trinidad ja Tobago Trinidad eta Tobago ترینیداد و توباگو Trinidad ja Tobago Trinité-et-Tobago Trinité-et-Tobago Oileán na Tríonóide agus Tobága Trianaid agus Tobago Trinidad e Tobago טרינידד וטובגו Trinidad i Tobago Trinidad és Tobago Trinidad e Tobago Trinidad dan Tobago Trínidad og Tóbagó Trinidad e Tobago トリニダード・トバゴ 트리니다드 토바고 Trinidad & Tobago Тринидад жана Тобаго Trinidadas ir Tobagas Trinidāda un Tobāgo ട്രിനിഡാഡും ടുബാഗോയും Тринидад ба Тобаго Trinidad og Tobago Trinidad en Tobago Trinidad og Tobago Trinidad & Tobago Trynidad i Tobago Trinidad e Tobago Trinidad e Tobago Trinidad și Tobago Тринидад и Тобаго Trinidad a Tobago Trinidad in Tobago Trinidad e Tobago Тринидад и Тобаго Trinidad och Tobago Trinidad na Tobago ตรินิแดดและโตเบโก Trinidad ve Tobago Тринидад һәм Тобаго Трінідад і Тобаґо Trinidad va Tobago Trinidad và Tobago 特立尼达和多巴哥 千里達及托巴哥
236 TV توفالو Тувалу Тувалу Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Τουβαλού Tuvalu Tuvalo Tuvalu Tuvalu Tuvalu تووالو Tuvalu Tuvalu Tuvalu Tuvalu Tubhalu Tuvalu טובאלו Tuvalu Tuvalu Tuvalu Tuvalu Túvalú Tuvalu ツバル 투발루 Tuvalu Тувалу Tuvalu Tuvalu ടുവാലു Тувалу Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Tuvalu Тувалу Tuvalu Tuvalu Tuvalu Тувалу Tuvalu Tuvalu ตูวาลู Tuvalu Тувалу Тувалу Tuvalu Tuvalu 图瓦卢 吐瓦魯
237 TW تايوان Тайвань Тайван Taiwan Tajvan Taiwan Tchaj-wan Taiwan Taiwan Ταϊβάν Taiwan Tajvano Taiwán Taiwan Taiwan تایوان Taiwan Taïwan Taïwan an Téaváin Taidh-Bhàn Taiwán טייוואן Tajvan Tajvan Taiwan Taiwan Taívan Taiwan 台湾 대만 Taiwan Тайвань Taivanas Taivāna തായ്‌വാൻ Тайвань Taiwan Taiwan Taiwan Taiwan Tajwan Taiwan Taiwan Taiwan Тайвань Taiwan Tajvan Tajvan Тајван Taiwan Taiwan ไต้หวัน Tayvan Тайвань Тайвань Tayvan Đài Loan 台湾 台灣
238 TZ تنزانيا Танзанія Танзания Tanzania Tanzanija Tanzània Tanzanie Tanzania Tansania Τανζανία Tanzania Tanzanio Tanzania Tansaania Tanzania تانزانیا Tansania Tanzanie Tanzanie an Tansáin An Tansan Tanzania טנזניה Tanzanija Tanzánia Tanzania Tanzania Tansanía Tanzania タンザニア 탄자니아 Tanzania Танзания Tanzanija Tanzānija ടാൻസാനിയ Танзани Tanzania Tanzania Tanzania Tanzania Tanzania Tanzânia Tanzânia Tanzania Танзания Tanzánia Tanzanija Tanzani Танзанија Tanzania Tanzania แทนซาเนีย Tanzanya Танзания Танзанія Tanzaniya Tanzania 坦桑尼亚 坦尚尼亞
239 UA أوكرانيا Украіна Украйна Ukraina Ukrajina Ucraïna Ukrajina Ukraine Ukraine Ουκρανία Ukraine Ukrajno Ucrania Ukraina Ukraina اوکراین Ukraina Ukraine Ukraine an Úcráin An Ucràin Ucraína אוקראינה Ukrajina Ukrajna Ukraina Ukraina Úkraína Ucraina ウクライナ 우크라이나 Ukraine Украина Ukraina Ukraina ഉക്രെയ്‌ൻ Украин Ukraina Oekraïne Ukraina Ukraine Ukraina Ucrânia Ucrânia Ucraina Украина Ukrajina Ukrajina Ukrainë Украјина Ukraina Ukraine ยูเครน Ukrayna Украина Україна Ukraina Ukraina 乌克兰 烏克蘭
240 UG أوغندا Уганда Уганда Ouganda Uganda Uganda Uganda Uganda Uganda Ουγκάντα Uganda Ugando Uganda Uganda Uganda اوگاندا Uganda Ouganda Ouganda Uganda Uganda Uganda אוגנדה Uganda Uganda Uganda Uganda Úganda Uganda ウガンダ 우간다 Uganda Уганда Uganda Uganda ഉഗാണ്ട Уганда Uganda Oeganda Uganda Uganda Uganda Uganda Uganda Uganda Уганда Uganda Uganda Ugandë Уганда Uganda Uganda ยูกันดา Uganda Уганда Уганда Uganda Uganda 乌干达 烏干達
241 UM جزر الولايات المتحدة النائية Малыя Аддаленыя астравы ЗША Отдалечени острови на САЩ Inizi diabell ar Stadoù-Unanet Američka Vanjska Ostrva Illes Perifèriques Menors dels EUA Menší odlehlé ostrovy USA Amerikanske oversøiske øer Amerikanische Überseeinseln Απομακρυσμένες Νησίδες ΗΠΑ U.S. Outlying Islands Usonaj malgrandaj insuloj Islas menores alejadas de EE. UU. Ühendriikide hajasaared Ameriketako Estatu Batuetako Kanpoaldeko Uharte Txikiak جزایر دورافتادهٔ ایالات متحده Yhdysvaltain erillissaaret Îles mineures éloignées des États-Unis Îles mineures éloignées des États-Unis Oileáin Imeallacha S.A.M. Meanbh-Eileanan Iomallach nan SA Illas Menores Distantes dos Estados Unidos האיים המרוחקים הקטנים של ארה״ב Mali udaljeni otoci SAD-a Az USA lakatlan külbirtokai U.S. Outlying Islands Kepulauan Terluar A.S. Smáeyjar Bandaríkjanna Altre isole americane del Pacifico 合衆国領有小離島 미국령 해외 제도 U.S. Outlying Islands АКШнын сырткы аралдары Jungtinių Valstijų Mažosios Tolimosios Salos ASV Mazās Aizjūras salas യു.എസ്. ദ്വീപസമൂഹങ്ങൾ Америкийн Нэгдсэн Улсын бага арлууд USAs ytre øyer Kleine afgelegen eilanden van de Verenigde Staten USAs ytre småøyar U.S. Outlying Islands Dalekie Wyspy Mniejsze Stanów Zjednoczonych Ilhas Menores Distantes dos EUA Ilhas Menores Distantes dos EUA Insulele Îndepărtate ale S.U.A. Внешние малые о-ва (США) Menšie odľahlé ostrovy USA Stranski zunanji otoki Združenih držav Ishujt Periferikë të SHBA-së Удаљена острва САД USA:s yttre öar Visiwa Vidogo vya Nje vya Marekani หมู่เกาะรอบนอกของสหรัฐอเมริกา ABD Küçük Harici Adaları АКШ Кече Читтәге утраулары Віддалені острови США AQSH yondosh orollari Các tiểu đảo xa của Hoa Kỳ 美国本土外小岛屿 美國本土外小島嶼
242 US الولايات المتحدة Злучаныя Штаты Съединени щати Stadoù-Unanet Sjedinjene Države Estats Units Spojené státy USA Vereinigte Staaten Ηνωμένες Πολιτείες United States Usono Estados Unidos Ameerika Ühendriigid Ameriketako Estatu Batuak ایالات متحده Yhdysvallat États-Unis États-Unis Stáit Aontaithe Mheiriceá Na Stàitean Aonaichte Os Estados Unidos ארצות הברית Sjedinjene Američke Države Egyesült Államok Statos Unite Amerika Serikat Bandaríkin Stati Uniti アメリカ合衆国 미국 Statys Unys Кошмо Штаттар Jungtinės Valstijos Amerikas Savienotās Valstis അമേരിക്കൻ ഐക്യനാടുകൾ Америкийн Нэгдсэн Улс USA Verenigde Staten USA АИШ Stany Zjednoczone Estados Unidos Estados Unidos Statele Unite ale Americii Соединенные Штаты Spojené štáty Združene države Amerike SHBA Сједињене Државе USA Marekani สหรัฐอเมริกา Amerika Birleşik Devletleri АКШ Сполучені Штати Amerika Qo‘shma Shtatlari Hoa Kỳ 美国 美國
243 UY أورغواي Уругвай Уругвай Uruguay Urugvaj Uruguai Uruguay Uruguay Uruguay Ουρουγουάη Uruguay Urugvajo Uruguay Uruguay Uruguai اروگوئه Uruguay Uruguay Uruguay Uragua Uruguaidh O Uruguai אורוגוואי Urugvaj Uruguay Uruguay Uruguay Úrúgvæ Uruguay ウルグアイ 우루과이 Uruguay Уругвай Urugvajus Urugvaja ഉറുഗ്വേ Уругвай Uruguay Uruguay Uruguay Uruguay Urugwaj Uruguai Uruguai Uruguay Уругвай Uruguaj Urugvaj Uruguai Уругвај Uruguay Uruguay อุรุกวัย Uruguay Уругвай Уруґвай Urugvay Uruguay 乌拉圭 烏拉圭
244 UZ أوزبكستان Узбекістан Узбекистан Ouzbekistan Uzbekistan Uzbekistan Uzbekistán Usbekistan Usbekistan Ουζμπεκιστάν Uzbekistan Uzbekujo Uzbekistán Usbekistan Uzbekistan ازبکستان Uzbekistan Ouzbékistan Ouzbékistan an Úisbéiceastáin Usbagastàn Uzbekistán אוזבקיסטן Uzbekistan Üzbegisztán Uzbekistan Uzbekistan Úsbekistan Uzbekistan ウズベキスタン 우즈베키스탄 Uzbekistan Өзбекстан Uzbekistanas Uzbekistāna ഉസ്‌ബെക്കിസ്ഥാൻ Узбекистан Usbekistan Oezbekistan Usbekistan Uzbekistan Uzbekistan Uzbequistão Uzbequistão Uzbekistan Узбекистан Uzbekistan Uzbekistan Uzbekistan Узбекистан Uzbekistan Uzibekistani อุซเบกิสถาน Özbekistan Үзбәкстан Узбекистан Oʻzbekiston Uzbekistan 乌兹别克斯坦 烏茲別克
245 VA الفاتيكان Ватыкан Ватикан Vatikan Vatikan Ciutat del Vaticà Vatikán Vatikanstaten Vatikanstadt Βατικανό Vatican City Vatikano Ciudad del Vaticano Vatikan Vatikano Hiria واتیکان Vatikaani État de la Cité du Vatican État de la Cité du Vatican Cathair na Vatacáine Cathair na Bhatacain Cidade do Vaticano הוותיקן Vatikanski Grad Vatikán Citate del Vaticano Vatikan Vatíkanið Città del Vaticano バチカン市国 바티칸 시국 Vatican City Ватикан Vatikano Miesto Valstybė Vatikāns വത്തിക്കാൻ Ватикан хот улс Vatikanstaten Vaticaanstad Vatikanstaten Vatican City Watykan Cidade do Vaticano Cidade do Vaticano Statul Cetății Vaticanului Ватикан Vatikán Vatikan Vatikan Ватикан Vatikanstaten Mji wa Vatican นครวาติกัน Vatikan Vatican City Ватикан Vatikan Thành Vatican 梵蒂冈 梵蒂岡
246 VC سانت فنسنت وجزر غرينادين Сент-Вінсент і Грэнадзіны Сейнт Винсънт и Гренадини Sant Visant hag ar Grenadinez Sveti Vinsent i Grenadin Saint Vincent i les Grenadines Svatý Vincenc a Grenadiny Saint Vincent og Grenadinerne St. Vincent und die Grenadinen Άγιος Βικέντιος και Γρεναδίνες St. Vincent & Grenadines Sent-Vincento kaj la Grenadinoj San Vicente y las Granadinas Saint Vincent ja Grenadiinid Saint Vincent eta Grenadinak سنت وینسنت و گرنادین Saint Vincent ja Grenadiinit Saint-Vincent-et-les-Grenadines Saint-Vincent-et-les-Grenadines San Uinseann agus na Greanáidíní Naomh Bhionsant agus Eileanan Greanadach San Vicente e As Granadinas סנט וינסנט והגרנדינים Sveti Vincent i Grenadini Saint Vincent és a Grenadine-szigetek Sancte Vincente e le Grenadinas Saint Vincent dan Grenadine Sankti Vinsent og Grenadíneyjar Saint Vincent e Grenadine セントビンセント及びグレナディーン諸島 세인트빈센트그레나딘 St. Vincent & Grenadines Сент-Винсент жана Гренадиндер Šventasis Vincentas ir Grenadinai Sentvinsenta un Grenadīnas സെന്റ് വിൻസെന്റും ഗ്രനെഡൈൻസും Сент-Винсент ба Гренадин St. Vincent og Grenadinene Saint Vincent en de Grenadines St. Vincent og Grenadinane St. Vincent & Grenadines Saint Vincent i Grenadyny São Vicente e Granadinas São Vicente e Granadinas Saint Vincent și Grenadinele Сент-Винсент и Гренадины Svätý Vincent a Grenadíny Saint Vincent in Grenadine Shën-Vincent dhe Grenadine Сент Винсент и Гренадини S:t Vincent och Grenadinerna St. Vincent na Grenadines เซนต์วินเซนต์และเกรนาดีนส์ Saint Vincent ve Grenadinler Сент-Винсент һәм Гренадин Сент-Вінсент і Ґренадіни Sent-Vinsent va Grenadin St. Vincent và Grenadines 圣文森特和格林纳丁斯 聖文森及格瑞那丁
247 VE فنزويلا Венесуэла Венецуела Venezuela Venecuela Veneçuela Venezuela Venezuela Venezuela Βενεζουέλα Venezuela Venezuelo Venezuela Venezuela Venezuela ونزوئلا Venezuela Venezuela Venezuela Veiniséala A’ Bheiniseala Venezuela ונצואלה Venezuela Venezuela Venezuela Venezuela Venesúela Venezuela ベネズエラ 베네수엘라 Venezuela Венесуэла Venesuela Venecuēla വെനിസ്വേല Венесуэл Venezuela Venezuela Venezuela Venezuela Wenezuela Venezuela Venezuela Venezuela Венесуэла Venezuela Venezuela Venezuelë Венецуела Venezuela Venezuela เวเนซุเอลา Venezuela Венесуэла Венесуела Venesuela Venezuela 委内瑞拉 委內瑞拉
248 VG جزر فيرجن البريطانية Брытанскія Віргінскія астравы Британски Вирджински острови Inizi Gwercʼh Breizh-Veur Britanska Djevičanska ostrva Illes Verges Britàniques Britské Panenské ostrovy De Britiske Jomfruøer Britische Jungferninseln Βρετανικές Παρθένες Νήσοι British Virgin Islands Britaj Virgulininsuloj Islas Vírgenes Británicas Briti Neitsisaared Birjina uharte britainiarrak جزایر ویرجین بریتانیا Brittiläiset Neitsytsaaret Îles Vierges britanniques Îles Vierges britanniques Oileáin Bhriotanacha na Maighdean Eileanan Breatannach na Maighdinn Illas Virxes Británicas איי הבתולה הבריטיים Britanski Djevičanski otoci Brit Virgin-szigetek British Virgin Islands Kepulauan Virgin Britania Raya Bresku Jómfrúaeyjar Isole Vergini Britanniche 英領ヴァージン諸島 영국령 버진아일랜드 British Virgin Islands Виргин аралдары (Британия) Didžiosios Britanijos Mergelių Salos Britu Virdžīnas ബ്രിട്ടീഷ് വെർജിൻ ദ്വീപുകൾ Британийн Виржиний арлууд De britiske jomfruøyene Britse Maagdeneilanden Dei britiske Jomfruøyane British Virgin Islands Brytyjskie Wyspy Dziewicze Ilhas Virgens Britânicas Ilhas Virgens Britânicas Insulele Virgine Britanice Виргинские о-ва (Великобритания) Britské Panenské ostrovy Britanski Deviški otoki Ishujt e Virgjër Britanikë Британска Девичанска Острва Brittiska Jungfruöarna Visiwa vya Virgin, Uingereza หมู่เกาะบริติชเวอร์จิน Britanya Virjin Adaları Британия Виргин утраулары Британські Віргінські острови Britaniya Virgin orollari Quần đảo Virgin thuộc Anh 英属维尔京群岛 英屬維京群島
249 VI جزر فيرجن التابعة للولايات المتحدة Амерыканскія Віргінскія астравы Американски Вирджински острови Inizi Gwercʼh ar Stadoù-Unanet Američka Djevičanska ostrva Illes Verges Nord-americanes Americké Panenské ostrovy De Amerikanske Jomfruøer Amerikanische Jungferninseln Αμερικανικές Παρθένες Νήσοι U.S. Virgin Islands Usonaj Virgulininsuloj Islas Vírgenes de EE. UU. USA Neitsisaared Birjina uharte amerikarrak جزایر ویرجین ایالات متحده Yhdysvaltain Neitsytsaaret Îles Vierges des États-Unis Îles Vierges des États-Unis Oileáin Mheiriceánacha na Maighdean Eileanan na Maighdinn aig na SA Illas Virxes Estadounidenses איי הבתולה של ארצות הברית Američki Djevičanski otoci Amerikai Virgin-szigetek U.S. Virgin Islands Kepulauan Virgin Amerika Serikat Bandarísku Jómfrúaeyjar Isole Vergini Americane 米領ヴァージン諸島 미국령 버진아일랜드 U.S. Virgin Islands Виргин аралдары (АКШ) Jungtinių Valstijų Mergelių Salos ASV Virdžīnas യു.എസ്. വെർജിൻ ദ്വീപുകൾ АНУ-ын Виржиний арлууд De amerikanske jomfruøyene Amerikaanse Maagdeneilanden Dei amerikanske Jomfruøyane U.S. Virgin Islands Wyspy Dziewicze Stanów Zjednoczonych Ilhas Virgens Americanas Ilhas Virgens Americanas Insulele Virgine Americane Виргинские о-ва (США) Americké Panenské ostrovy Ameriški Deviški otoki Ishujt e Virgjër të SHBA-së Америчка Девичанска Острва Amerikanska Jungfruöarna Visiwa vya Virgin, Marekani หมู่เกาะเวอร์จินของสหรัฐอเมริกา ABD Virjin Adaları АКШ Виргин утраулары Віргінські острови, США AQSH Virgin orollari Quần đảo Virgin thuộc Mỹ 美属维尔京群岛 美屬維京群島
250 VN فيتنام В’етнам Виетнам Viêt Nam Vijetnam Vietnam Vietnam Vietnam Vietnam Βιετνάμ Vietnam Vjetnamo Vietnam Vietnam Vietnam ویتنام Vietnam Vietnam Vietnam Vítneam Bhiet-Nam Vietnam וייטנאם Vijetnam Vietnám Vietnam Vietnam Víetnam Vietnam ベトナム 베트남 Vietnam Вьетнам Vietnamas Vjetnama വിയറ്റ്നാം Вьетнам Vietnam Vietnam Vietnam Vietnam Wietnam Vietnã Vietnã Vietnam Вьетнам Vietnam Vietnam Vietnam Вијетнам Vietnam Vietnam เวียดนาม Vietnam Вьетнам Вʼєтнам Vyetnam Việt Nam 越南 越南
251 VU فانواتو Вануату Вануату Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Βανουάτου Vanuatu Vanuatuo Vanuatu Vanuatu Vanuatu وانواتو Vanuatu Vanuatu Vanuatu Vanuatú Vanuatu Vanuatu ונואטו Vanuatu Vanuatu Vanuatu Vanuatu Vanúatú Vanuatu バヌアツ 바누아투 Vanuatu Вануату Vanuatu Vanuatu വന്വാതു Вануату Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Vanuatu Вануату Vanuatu Vanuatu Vanuatu Вануату Vanuatu Vanuatu วานูอาตู Vanuatu Вануату Вануату Vanuatu Vanuatu 瓦努阿图 萬那杜
252 WF جزر والس وفوتونا Уоліс і Футуна Уолис и Футуна Wallis ha Futuna Ostrva Valis i Futuna Wallis i Futuna Wallis a Futuna Wallis og Futuna Wallis und Futuna Γουάλις και Φουτούνα Wallis & Futuna Valiso kaj Futuno Wallis y Futuna Wallis ja Futuna Wallis eta Futuna والیس و فوتونا Wallis ja Futuna Wallis-et-Futuna Wallis-et-Futuna Vailís agus Futúna Uallas agus Futuna Wallis e Futuna איי ווליס ופוטונה Wallis i Futuna Wallis és Futuna Wallis & Futuna Kepulauan Wallis dan Futuna Wallis- og Fútúnaeyjar Wallis e Futuna ウォリス・フツナ 왈리스-푸투나 제도 Wallis & Futuna Уоллис жана Футуна Volisas ir Futūna Volisa un Futunas salas വാലിസ് ആന്റ് ഫ്യൂച്യുന Уоллис ба Футуна Wallis og Futuna Wallis en Futuna Wallis og Futuna Wallis & Futuna Wallis i Futuna Wallis e Futuna Wallis e Futuna Wallis și Futuna Уоллис и Футуна Wallis a Futuna Wallis in Futuna Uollis e Futuna Валис и Футуна Wallis- och Futunaöarna Wallis na Futuna วาลลิสและฟุตูนา Wallis ve Futuna Уоллис һәм Футуна Уолліс і Футуна Uollis va Futuna Wallis và Futuna 瓦利斯和富图纳 瓦利斯群島和富圖那群島
253 WS ساموا Самоа Самоа Samoa Samoa Samoa Samoa Samoa Samoa Σαμόα Samoa Samoo Samoa Samoa Samoa ساموآ Samoa Samoa Samoa Samó Samotha Samoa סמואה Samoa Szamoa Samoa Samoa Samóa Samoa サモア 사모아 Samoa Самоа Samoa Samoa സമോവ Самоа Samoa Samoa Samoa Samoa Samoa Samoa Samoa Samoa Самоа Samoa Samoa Samoa Самоа Samoa Samoa ซามัว Samoa Самоа Самоа Samoa Samoa 萨摩亚 薩摩亞
254 XK كوسوفو Косава Косово Kosovo Kosovo Kosovo Kosovo Kosovo Kosovo Κοσσυφοπέδιο Kosovo Kosovo Kosovo Kosovo Kosovo کوزوو Kosovo Kosovo Kosovo an Chosaiv A’ Chosobho Kosovo קוסובו Kosovo Koszovó Kosovo Kosovo Kósóvó Kosovo コソボ 코소보 Kosovo Косово Kosovas Kosova കൊസോവൊ Косово Kosovo Kosovo Kosovo Kosovo Kosowo Kosovo Kosovo Kosovo Косово Kosovo Kosovo Kosovë Косово Kosovo Kosovo โคโซโว Kosova Косово Косово Kosovo Kosovo 科索沃 科索沃
255 YE اليمن Емен Йемен Yemen Jemen Iemen Jemen Yemen Jemen Υεμένη Yemen Jemeno Yemen Jeemen Yemen یمن Jemen Yémen Yémen Éimin An Eaman O Iemen תימן Jemen Jemen Yemen Yaman Jemen Yemen イエメン 예멘 Yemen Йемен Jemenas Jemena യെമൻ Йемен Jemen Jemen Jemen Yemen Jemen Iêmen Iêmen Yemen Йемен Jemen Jemen Jemen Јемен Jemen Yemeni เยเมน Yemen Йәмән Ємен Yaman Yemen 也门 葉門
256 YT مايوت Маёта Майот Mayotte Majote Mayotte Mayotte Mayotte Mayotte Μαγιότ Mayotte Majoto Mayotte Mayotte Mayotte مایوت Mayotte Mayotte Mayotte Mayotte Mayotte Mayotte מאיוט Mayotte Mayotte Mayotte Mayotte Mayotte Mayotte マヨット 마요트 Mayotte Майотта Majotas Majota മയോട്ടി Майотта Mayotte Mayotte Mayotte Mayotte Majotta Mayotte Mayotte Mayotte Майотта Mayotte Mayotte Majotë Мајот Mayotte Mayotte มายอต Mayotte Майотта Майотта Mayotta Mayotte 马约特 馬約特島
257 ZA جنوب أفريقيا Паўднёва-Афрыканская Рэспубліка Южна Африка Suafrika Južnoafrička Republika República de Sud-àfrica Jihoafrická republika Sydafrika Südafrika Νότια Αφρική South Africa Sud-Afriko Sudáfrica Lõuna-Aafrika Vabariik Hegoafrika افریقای جنوبی Etelä-Afrikka Afrique du Sud Afrique du Sud an Afraic Theas Afraga a Deas Suráfrica דרום אפריקה Južnoafrička Republika Dél-afrikai Köztársaság Sudafrica Afrika Selatan Suður-Afríka Sudafrica 南アフリカ 남아프리카 South Africa Түштүк-Африка Республикасы Pietų Afrika Dienvidāfrikas Republika ദക്ഷിണാഫ്രിക്ക Өмнөд Африк Sør-Afrika Zuid-Afrika Sør-Afrika South Africa Republika Południowej Afryki África do Sul África do Sul Africa de Sud Южно-Африканская Республика Južná Afrika Južnoafriška republika Afrika e Jugut Јужноафричка Република Sydafrika Afrika Kusini แอฟริกาใต้ Güney Afrika Көньяк Африка Південно-Африканська Республіка Janubiy Afrika Respublikasi Nam Phi 南非 南非
258 ZM زامبيا Замбія Замбия Zambia Zambija Zàmbia Zambie Zambia Sambia Ζάμπια Zambia Zambio Zambia Sambia Zambia زامبیا Sambia Zambie Zambie an tSaimbia Sàimbia Zambia זמביה Zambija Zambia Zambia Zambia Sambía Zambia ザンビア 잠비아 Zambia Замбия Zambija Zambija സാംബിയ Замби Zambia Zambia Zambia Zambia Zambia Zâmbia Zâmbia Zambia Замбия Zambia Zambija Zambi Замбија Zambia Zambia แซมเบีย Zambiya Замбия Замбія Zambiya Zambia 赞比亚 尚比亞
259 ZW زيمبابوي Зімбабвэ Зимбабве Zimbabwe Zimbabve Zimbàbue Zimbabwe Zimbabwe Simbabwe Ζιμπάμπουε Zimbabwe Zimbabvo Zimbabue Zimbabwe Zimbabwe زیمبابوه Zimbabwe Zimbabwe Zimbabwe an tSiombáib An t-Sìombab Zimbabwe זימבבואה Zimbabve Zimbabwe Zimbabwe Zimbabwe Simbabve Zimbabwe ジンバブエ 짐바브웨 Zimbabwe Зимбабве Zimbabvė Zimbabve സിംബാബ്‌വേ Зимбабве Zimbabwe Zimbabwe Zimbabwe Zimbabwe Zimbabwe Zimbábue Zimbábue Zimbabwe Зимбабве Zimbabwe Zimbabve Zimbabve Зимбабве Zimbabwe Zimbabwe ซิมบับเว Zimbabve Зимбабве Зімбабве Zimbabve Zimbabwe 津巴布韦 辛巴威

40
data/emoji_used.txt Normal file
View File

@@ -0,0 +1,40 @@
# List of emojis separated with newline used in on-screen keyboard
# Only top 38 will be used
🎉
👀
✌️
👉
👌
👍
👎
👏
❤️
💔
💯
🔥
😁
😂
😄
😅
😉
☺️
😋
🤔
😍
😎
😏
😑
😒
😔
😕
😘
😜
😞
😢
😩
😪
😭
😳
😴
🙌
🙏

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -23,7 +23,7 @@
<size min="0.10"
max="0.30" />
<color min="40 40 255"
<color min="40 255 40"
max="255 255 255" />
<wind flips="Y" />

View File

@@ -23,7 +23,7 @@
<size min="0.10"
max="0.30" />
<color min="40 40 255"
<color min="40 255 40"
max="255 255 255" />
<wind flips="Y" />

View File

@@ -23,7 +23,7 @@
<size min="0.40"
max="0.60" />
<color min="40 40 255"
<color min="40 255 40"
max="255 255 255" />
<wind flips="Y" />

View File

@@ -25,7 +25,7 @@
x-increase-factor="1.6"
y-increase-factor="1.6" />
<color min="40 40 255"
<color min="40 255 40"
max="255 255 255" />
</particles>

View File

@@ -23,7 +23,7 @@
<size min="0.2"
max="0.3" />
<color min="40 40 255"
<color min="40 255 40"
max="255 255 255" />
</particles>

View File

@@ -25,7 +25,7 @@
x-increase-factor="2.6"
y-increase-factor="2.6" />
<color min="40 40 255"
<color min="40 255 40"
max="255 255 255" />
</particles>

View File

@@ -25,7 +25,7 @@
x-increase-factor="1.2"
y-increase-factor="1.3" />
<color min="40 40 255"
<color min="40 255 40"
max="255 255 255" />
</particles>

View File

@@ -23,7 +23,7 @@
<size min="0.2"
max="0.3" />
<color min="40 40 255"
<color min="40 255 40"
max="255 255 255" />
</particles>

View File

@@ -24,7 +24,7 @@
y-increase-factor="5"
/>
<color min="255 255 255"
max="0 0 0" />
<color min="0 0 0"
max="255 255 255" />
</particles>

View File

@@ -23,7 +23,7 @@
<size min="0.17"
max="0.17" />
<color min="255 50 255"
max="255 150 255" />
<color min="255 255 50"
max="255 255 150" />
</particles>

View File

@@ -26,17 +26,23 @@
<card contains="Gallium" os="linux" version="<11.2" disable="GeometryShader"/>
<card contains="Gallium" os="linux" version="<11.2" disable="TextureCompressionS3TC"/>
<card vendor="nouveau" os="linux" version=">=17.2" disable="TextureBufferObject"/>
<card contains="AMD" os="linux" disable="Correct10bitNormalization"/>
<!-- On osx radeon appears to have different version numbers, e.g.
1.32.20 -->
<card contains="Radeon" os="linux" version="<14.300" disable="DriverRecentEnough"/>
<card contains="Radeon" os="windows" version="<14.300" disable="DriverRecentEnough"/>
<card contains="ATI" os="windows" version="<14.300" disable="DriverRecentEnough"/>
<card contains="ATI" os="windows" version="<=3.1.8787" disable="ForceLegacyDevice"/>
<card contains="ATI" os="windows" version="=3.1.8787" disable="ForceLegacyDevice"/>
<card os="android" disable="TextureFormatBGRA8888"/>
<card os="android" disable="ColorBufferFloat"/>
<card os="android" disable="TextureCompressionS3TC"/>
<card contains="Adreno" os="android" version="<=19" disable="VertexIdWorking"/>
<card contains="Android Emulator" os="android" disable="ForceLegacyDevice"/>
<card contains="Android Emulator" os="android" disable="NpotTextures"/>
<card contains="Apple Software Renderer" os="ios" disable="ForceLegacyDevice"/>
<card contains="Apple Software Renderer" os="ios" disable="NpotTextures"/>
<card vendor="Broadcom" os="linux" disable="HighDefinitionTextures256"/>
<card contains="PowerVR SGX 520" disable="NpotTextures"/>
<card contains="PowerVR SGX 530" disable="NpotTextures"/>
<card contains="PowerVR SGX 531" disable="NpotTextures"/>
<card contains="PowerVR SGX 535" disable="NpotTextures"/>
<card contains="PowerVR SGX 540" disable="NpotTextures"/>
<card contains="PowerVR SGX 545" disable="NpotTextures"/>
</graphical-restrictions>

View File

@@ -14,9 +14,7 @@
<label id="size" width="100%" text="" />
<label id="revision" width="100%" text="" />
</div>
<div width="50%" height="32" layout="vertical-row">
<ratingbar id="rating" height="64" width="100%" />
</div>
<ratingbar id="rating" height="1f" width="100%" />
</div>
<spacer height="10"/>
<label id="flags" width="100%" text="" word_wrap="true" />
@@ -24,7 +22,12 @@
</div>
<bubble word_wrap="true" id="description" height="100%" width="90%" proportion="5" align="center" />
<div width="80%" proportion="5" align="center">
<spacer proportion="1" />
<progressbar id="progress" x="0" y="20%" width="100%" height="2f" />
<spacer proportion="2" />
<div width="80%" proportion="4" align="center">
<buttonbar id="actions" x="0" y="0" height="100%" width="100%" align="center">
<icon-button id="install" width="128" height="128"
icon="gui/icons/package-update.png"
@@ -36,7 +39,6 @@
icon="gui/icons/back.png"
I18N="Add-on screen action" text="Back" />
</buttonbar>
<progressbar id="progress" x="0" y="20%" width="100%" height="30%" />
</div>
</div>
</stkgui>

View File

@@ -2,30 +2,36 @@
<stkgui>
<div x="2%" y="2%" width="96%" height="96%" layout="vertical-row" >
<box width="100%" height="80%" padding="10" layout="vertical-row">
<bright width="100%" text="Select a type of control that you prefer" align="center" text_align="left" word_wrap="true"/>
<box width="100%" height="75%" padding="10" layout="vertical-row">
<header width="100%" text="Select a type of control that you prefer" align="center" text_align="center" word_wrap="true"/>
<spacer height="7%" width="10"/>
<ribbon id="control_type" proportion="1" width="100%" align="center">
<icon-button id="accelerometer" width="fit" height="fit" icon="gui/icons/difficulty_medium.png"
I18N="Control type" text="Accelerometer"/>
<icon-button id="gyroscope" width="fit" height="fit" icon="gui/icons/difficulty_best.png"
I18N="Control type" text="Gyroscope"/>
<icon-button id="steering_wheel" width="fit" height="fit" icon="gui/icons/difficulty_hard.png"
I18N="Control type" text="Steering wheel"/>
<icon-button id="accelerometer" width="128" height="128"
icon="gui/icons/android/accelerator_icon.png" I18N="Control type" text="Accelerometer"/>
<icon-button id="gyroscope" width="128" height="128"
icon="gui/icons/android/gyroscope_icon.png" I18N="Control type" text="Gyroscope"/>
<icon-button id="steering_wheel" width="128" height="128"
icon="gui/icons/android/steering_wheel.png" I18N="Control type" text="Steering wheel"/>
</ribbon>
<spacer height="12%" width="10"/>
<spacer height="6%" width="10"/>
<div width="100%" height="16%" align="center" layout="horizontal-row">
<label align="center" text_align="left" text="Auto acceleration"/>
<spacer width="10"/>
<checkbox width="7%" height="100%" id="auto_acceleration"/>
</div>
<label width="100%" text="You can change it later in touch device settings." text_align="left" word_wrap="true"/>
</box>
<spacer height="7%" width="10"/>
<div width="25%" height="10%" layout="horizontal-row" align="center">
<button id="close" text="Apply" width="100%" height="100%" align="center"/>
</div>
<spacer height="6%" width="10"/>
<button id="close" text="Apply" align="center"/>
</div>
</stkgui>

View File

@@ -31,6 +31,14 @@
</div>
</div>
<div width="75%" layout="horizontal-row" proportion="1">
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Auto acceleration"/>
<div proportion="1" align="center" height="fit" layout="horizontal-row" >
<spacer width="40" height="10" />
<checkbox id="auto_acceleration"/>
</div>
</div>
<div width="75%" layout="horizontal-row" proportion="1">
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Accelerometer"/>
<div proportion="1" align="center" height="fit" layout="horizontal-row" >

View File

@@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="10%" width="96%" height="80%" layout="vertical-row" >
<label id="title" width="100%" text_align="top" word_wrap="true" proportion="1" />
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<label height="65%" id="title" width="100%" text_align="top" word_wrap="true"/>
<spacer height="25" width="10" />
<spacer height="5%" width="10" />
<buttonbar id="buttons" height="30%" width="30%" align="center">
<buttonbar id="buttons" height="30%" width="70%" align="center">
<icon-button id="confirm" icon="gui/icons/green_check.png" I18N="In a 'are you sure?' dialog"
text="Yes" align="center"/>
<icon-button id="confirm" width="128" height="128" icon="gui/icons/green_check.png"
I18N="In a 'are you sure?' dialog" text="Yes" align="center"/>
<icon-button id="cancel" icon="gui/icons/remove.png" I18N="In a 'are you sure?' dialog"
text="Cancel" align="center"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/remove.png"
I18N="In a 'are you sure?' dialog" text="Cancel" align="center"/>
</buttonbar>
<spacer height="10" width="10" />
<spacer width="20" height="1f" />
</div>
</stkgui>

View File

@@ -3,16 +3,16 @@
<div x="2%" y="10%" width="96%" height="80%" layout="vertical-row" >
<label id="title" width="100%" text_align="center" word_wrap="true" proportion="1" />
<spacer height="25" width="10" />
<spacer height="5%" width="10" />
<button id="accept" I18N="In the 'confirm resolution' dialog, that's shown when switching resoluton"
text="Keep this resolution" align="center"/>
<buttonbar id="buttons" height="30%" width="30%" align="center">
<spacer height="15" width="10" />
<icon-button id="accept" width="128" height="128" icon="gui/icons/green_check.png"
I18N="In the 'confirm resolution' dialog, that's shown when switching resoluton" text="Accept" align="center"/>
<button id="cancel" I18N="In the 'confirm resolution' dialog, that's shown when switching resoluton"
text="Cancel" align="center"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/restart.png"
I18N="In the 'confirm resolution' dialog, that's shown when switching resoluton" text="Revert" align="center"/>
<spacer height="10" width="10" />
</buttonbar>
</div>
</stkgui>

View File

@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="1%" width="96%" height="98%" layout="vertical-row" >
<header id="title" width="100%" height="fit" text_align="center" word_wrap="true" text="Camera Settings" />
<spacer width="100%" height="3%"/>
<div width="100%" height="91%" layout="vertical-row" >
<label id="camera_name" width="100%" I18N="In the ui/camera settings" text="Player camera"/>
<spacer width="5" height="1%"/>
<div width="100%" height="fit" layout="horizontal-row">
<spacer width="3%" height="100%" />
<div proportion="1" height="fit" layout="horizontal-row" >
<label width="35%" height="100%" text_align="left" I18N="In the ui/camera screen" text="FOV"/>
<gauge id="fov" proportion="1"/>
</div>
</div>
<spacer height="2%" width="100%" />
<div width="100%" height="fit" layout="horizontal-row">
<spacer width="3%" height="100%" />
<div proportion="1" height="fit" layout="horizontal-row" >
<label width="35%" height="100%" text_align="left" I18N="In the ui/camera screen" text="Distance"/>
<gauge id="camera_distance" proportion="1"/>
</div>
</div>
<spacer height="2%" width="100%" />
<div width="100%" height="fit" layout="horizontal-row">
<spacer width="3%" height="100%" />
<div proportion="1" height="fit" layout="horizontal-row" >
<label width="35%" height="100%" text_align="left" I18N="In the ui/camera screen" text="Angle"/>
<gauge id="camera_angle" proportion="1"/>
</div>
</div>
<spacer height="2%" width="100%" />
<div width="100%" height="fit" layout="horizontal-row">
<spacer width="3%" height="100%" />
<div proportion="1" height="fit" layout="horizontal-row" >
<checkbox id="camera_smoothing"/>
<spacer width="1%" height="100%" />
<label height="100%" text_align="left" I18N="In the ui/camera screen" text="Smooth camera"/>
</div>
</div>
<spacer width="5" height="2%"/>
<label width="100%" I18N="In the ui/camera settings" text="Backward camera"/>
<spacer height="2%" width="100%" />
<div width="100%" height="fit" layout="horizontal-row">
<spacer width="3%" height="100%" />
<label width="fit" height="100%" text_align="left" I18N="In the ui/camera screen" text="Distance"/>
<gauge id="backward_camera_distance" width="35%"/>
<spacer width="2%" height="100%" />
<label width="fit" height="100%" text_align="left" I18N="In the ui/camera screen" text="Angle"/>
<gauge id="backward_camera_angle" width="35%"/>
</div>
<spacer height="2%" width="100%" />
<div width="100%" height="fit" layout="horizontal-row">
<spacer width="3%" height="100%" />
<div proportion="1" height="fit" layout="horizontal-row" >
<checkbox id="use_soccer_camera"/>
<spacer width="1%" height="100%" />
<label height="100%" text_align="left" I18N="In the ui/camera screen" text="Follow ball in soccer mode"/>
</div>
</div>
<spacer height="2%" width="100%" />
<buttonbar id="buttons" height="20%" width="90%" align="center">
<icon-button id="apply" width="128" height="128" icon="gui/icons/green_check.png"
I18N="In the ui/camera screen" text="Apply" align="center"/>
<icon-button id="reset" width="128" height="128" icon="gui/icons/restart.png"
I18N="In the ui/camera screen" text="Reset" align="center"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/main_quit.png"
I18N="In the ui/camera screen" text="Cancel" align="center"/>
</buttonbar>
</div>
</div>
</stkgui>

View File

@@ -171,8 +171,13 @@
<label text="* Restart STK to apply new settings" width="100%" text_align="center" I18N="Video settings"/>
<spacer proportion="1"/>
<spacer height="4" width="10"/>
<button id="close" text="Apply" align="center"/>
<buttonbar id="buttons" height="15%" width="30%" align="center">
<icon-button id="apply" width="128" height="128" icon="gui/icons/green_check.png"
I18N="Video settings" text="Apply" align="center"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/main_quit.png"
I18N="Video settings" text="Cancel" align="center"/>
</buttonbar>
</div>
</stkgui>

View File

@@ -1,40 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="10%" width="96%" height="80%" layout="vertical-row" >
<div x="2%" y="6%" width="96%" height="88%" layout="vertical-row" >
<div proportion="1" width="100%" layout="horizontal-row">
<label id="Red" raw_text="Red" width="200"/>
<spacer width="25"/>
<label id="Red" raw_text="Red" width="7f"/>
<gauge id="red_slider" min_value="0" max_value="100" proportion="1"/>
</div>
<div proportion="1" width="100%" layout="horizontal-row">
<label id="Green" raw_text="Green" width="200"/>
<spacer width="25"/>
<label id="Green" raw_text="Green" width="7f"/>
<gauge id="green_slider" min_value="0" max_value="100" proportion="1"/>
</div>
<div proportion="1" width="100%" layout="horizontal-row">
<label id="Blue" raw_text="Blue" width="200"/>
<spacer width="25"/>
<label id="Blue" raw_text="Blue" width="7f"/>
<gauge id="blue_slider" min_value="0" max_value="100" proportion="1"/>
</div>
<div proportion="1" width="100%" layout="horizontal-row">
<label id="SSAO radius" raw_text="SSAO Radius" width="200"/>
<spacer width="50"/>
<label id="SSAO radius" raw_text="SSAO Radius" width="7f"/>
<gauge id="ssao_radius" min_value="0" max_value="100" proportion="1" />
</div>
<div proportion="1" width="100%" layout="horizontal-row">
<label id="SSAO k" raw_text="SSAO K" width="200"/>
<spacer width="25"/>
<label id="SSAO k" raw_text="SSAO K" width="7f"/>
<gauge id="ssao_k" min_value="0" max_value="100" proportion="1"/>
</div>
<div proportion="1" width="100%" layout="horizontal-row">
<label id="SSAO Sigma" raw_text="SSAO sigma" width="200"/>
<spacer width="50"/>
<label id="SSAO Sigma" raw_text="SSAO sigma" width="7f"/>
<gauge id="ssao_sigma" min_value="0" max_value="100" proportion="1"/>
</div>
<spacer height="1%"/>
<button id="close" text="Close" align="center"/>
</div>
</stkgui>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="2%" width="96%" height="50%" layout="vertical-row">
<label id="title" raw_text="Text" width="100%" height="36%"/>
<list id="list_history" x="0" y="37%" width="96%" height="63%" word_wrap="true" />
</div>
<div x="2%" y="70%" width="96%" height="30%" layout="vertical-row" >
<spacer height="7%" width="10" />
<textbox id="textfield" width="75%" align="center" />
<spacer height="9%" width="10" />
<buttonbar id="buttons" height="50%" width="54%" align="center">
<icon-button id="ok" width="128" height="128" icon="gui/icons/green_check.png"
I18N="In the enter address dialog" text="OK" align="center"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/remove.png"
I18N="In the enter address dialog" text="Cancel" align="center"/>
</buttonbar>
<spacer height="1f" width="20" />
</div>
</stkgui>

View File

@@ -1,15 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="10%" width="96%" height="80%" layout="vertical-row" >
<label id="title" raw_text="Text" proportion="1"/>
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<label id="title" raw_text="Text" width="100%" height="36%"/>
<spacer height="7%" width="10" />
<textbox id="textfield" width="75%" align="center"/>
<spacer height="9%" width="10" />
<spacer height="7%" width="20" />
<button id="ok" I18N="In the general textfield dialog" text="OK" align="center" proportion="1"/>
<buttonbar id="buttons" height="36%" width="30%" align="center">
<spacer height="5%" width="20" />
<button id="cancel" I18N="In the general textfield dialog" text="Cancel" align="center" proportion="1"/>
<icon-button id="ok" width="128" height="128" icon="gui/icons/green_check.png"
I18N="In the general textfield dialog" text="OK" align="center"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/remove.png"
I18N="In the general textfield dialog" text="Cancel" align="center"/>
</buttonbar>
<spacer height="1f" width="20" />
</div>
</stkgui>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="1%" y="2%" width="98%" height="96%" layout="vertical-row">
<div x="1%" y="4%" width="98%" height="92%" layout="vertical-row">
<div width="100%" height="40%" layout="vertical-row">
<div width="100%" height="25%" layout="vertical-row" >
@@ -21,17 +21,17 @@
<div width="95%" align="center" layout="vertical-row" height="50%">
<div width="100%" height="fit" layout="horizontal-row" >
<checkbox width="fit" id="record-race" I18N="Ghost replay info action" text_align="left"/>
<spacer width="10"/>
<spacer width="1%"/>
<label proportion="1" id="record-race-text" height="100%" text_align="left" I18N="Ghost replay info action" text="Record the race for ghost replay"/>
</div>
<div width="100%" height="fit" layout="horizontal-row" >
<checkbox width="fit" id="watch-only" I18N="Ghost replay info action" text_align="left"/>
<spacer width="10"/>
<spacer width="1%"/>
<label proportion="1" id="watch-only-text" height="100%" text_align="left" I18N="Ghost replay info action" text="Watch replay only"/>
</div>
<div width="100%" height="fit" layout="horizontal-row" >
<checkbox width="fit" id="compare-ghost" I18N="Ghost replay info action" text_align="left"/>
<spacer width="10"/>
<spacer width="1%"/>
<label proportion="1" id="compare-ghost-text" height="100%" text_align="left" I18N="Ghost replay info action" text="Compare to another ghost"/>
</div>
</div>

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="1%" y="4%" width="98%" height="92%" layout="vertical-row">
<div width="100%" height="58%" layout="vertical-row">
<div width="100%" height="15%" align="center" layout="vertical-row" >
<header id="name" width="100%" text_align="center"/>
</div>
<!-- This is filled in programmatically -->
<div width="100%" height="85%" layout="horizontal-row">
<box width="50%" height="100%" layout="vertical-row" padding="1">
<list id="high_score_list" x="0" y="0" width="100%" height="100%"/>
</box>
<spacer width="10" height="10%"/>
<div width="50%" height="100%" layout="vertical-row">
<spacer width="10" height="5%"/>
<label id="track-name" width="100%" text_align="left"/>
<spacer width="10" height="5%"/>
<label id="difficulty" width="100%" text_align="left"/>
<spacer width="10" height="5%"/>
<label id="num-karts" width="100%" text_align="left"/>
<spacer width="10" height="5%"/>
<label id="num-laps" width="100%" text_align="left"/>
<spacer width="10" height="5%"/>
<label id="reverse" width="100%" text_align="left"/>
</div>
</div>
</div>
<div width="100%" height="42%" layout="horizontal-row">
<div width="40%" height="100%" layout="vertical-row">
<spacer width="10" height="5%"/>
<icon-button proportion="1" width="100%" height="100%" id="track_screenshot" custom_ratio="1.33333"/>
</div>
<div width="60%" height="50%" layout="vertical-row">
<spacer width="5" height="45%"/>
<div width="95%" height="100%" align="center">
<buttonbar id="actions" x="0" y="0" height="100%" width="100%" align="center">
<icon-button id="start" width="128" height="128"
icon="gui/icons/green_check.png"
I18N="High score info screen action" text="Start Race" word_wrap="true" />
<icon-button id="remove" width="128" height="128"
icon="gui/icons/remove.png"
I18N="High score info screen action" text="Remove" word_wrap="true" />
<icon-button id="back" width="128" height="128"
icon="gui/icons/back.png"
I18N="High score info screen action" text="Back" word_wrap="true" />
</buttonbar>
</div>
<spacer width="10" height="10%"/>
</div>
</div>
</div>
</stkgui>

View File

@@ -1,20 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="0%" width="96%" height="95%" layout="vertical-row">
<spacer height="20" width="10"/>
<div id="kart-screen" layout="horizontal-row" width="100%" proportion="1" align="center">
<model id="model" width="100%" layout="horizontal-row" height="100%">
</model>
</div>
<div width="100%" height="fit" text-align="left" layout="horizontal-row" >
<spacer height="30" width="15%"/>
<spacer height="10" width="15%"/>
<spinner id="toggle-slider" width="70%" min_value="0" max_value="1" wrap_around="true"/>
<spacer height="30" width="15%"/>
<spacer height="20" width="15%"/>
</div>
<spacer height="30" width="10"/>
<spacer height="20" width="10"/>
<div height="fit" width="100%" layout="horizontal-row">
<gauge id="color-slider" min_value="1" max_value="100" proportion="1" wrap_around="true"/>
<gauge id="color-slider" min_value="1" max_value="100" proportion="1" wrap_around="true" color_slider="true"/>
</div>
<spacer height="30" width="10"/>
<button id="close" text="Apply" align="center"/>
<spacer height="10" width="10"/>
<buttonbar id="buttons" height="20%" width="30%" align="center">
<icon-button id="apply" width="128" height="128" icon="gui/icons/green_check.png"
I18N="In the kart color slider dialog" text="Apply" align="center"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/main_quit.png"
I18N="In the kart color slider dialog" text="Cancel" align="center"/>
</buttonbar>
</div>
</stkgui>

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<div x="1%" width="98%" height="fit" layout="horizontal-row">
<textbox id="chat" proportion="1"/>
<spacer width="3%" height="10"/>
<button id="send" width="20%" height="fit" align="center" I18N="In the network lobby" text="Send"/>
</div>
<spacer width="20" height="2%" />
<buttonbar id="backbtnribbon" proportion="4" width="100%" align="center">
<icon-button id="backbtn" width="128" height="128" align="center" icon="gui/icons/back.png"
extend_label="200" I18N="Race paused button" text="Back to Race"/>
</buttonbar>
<spacer width="20" height="8%" />
<buttonbar id="choiceribbon" proportion="4" width="100%" align="center">
<icon-button id="newrace" width="128" height="128" icon="gui/icons/main_race.png"
I18N="Show in network ingame dialog to allow user to go back to lobby to end spectating (for example)"
text="Back to lobby" word_wrap="true"/>
<icon-button id="restart" width="128" height="128" icon="gui/icons/restart.png"
I18N="Race paused button" text="Restart Race" word_wrap="true"/>
<icon-button id="endrace" width="128" height="128" icon="gui/icons/race_giveup.png"
I18N="Race paused button" text="Give Up Race" word_wrap="true"/>
<icon-button id="options" width="128" height="128" icon="gui/icons/main_options.png"
I18N="Race paused button" text="Options" word_wrap="true"/>
<icon-button id="help" width="128" height="128" icon="gui/icons/main_help.png"
I18N="Race paused button" text="Help" word_wrap="true"/>
<icon-button id="exit" width="128" height="128" icon="gui/icons/main_quit.png"
I18N="Race paused button" text="Exit Race" word_wrap="true"/>
</buttonbar>
<spacer width="20" height="35" />
</div>
</stkgui>

View File

@@ -39,6 +39,6 @@
icon="gui/icons/green_check.png" text="OK"
label_location="bottom"/>
</buttonbar>
<spacer width="20" height="3%" />
<spacer height="1f" width="20"/>
</div>
</stkgui>

View File

@@ -2,10 +2,10 @@
<stkgui>
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<header id="title" width="96%" height="fit" text_align="center" word_wrap="true"
I18N="In the change password dialog" text="Password Change"/>
<header id="title" width="100%" height="fit" text_align="center" word_wrap="true"
I18N="In the change password dialog" text="Password Change"/>
<spacer height="40" width="50"/>
<spacer height="4%" width="50"/>
<div width="80%" align="center" layout="vertical-row" height="fit" >
<div width="100%" height="fit" layout="horizontal-row" >
@@ -13,14 +13,14 @@
<textbox proportion="2" height="fit" id="current_password" I18N="In the change password dialog"/>
</div>
<spacer height="20" width="20"/>
<spacer height="12%" width="20"/>
<div width="100%" height="fit" layout="horizontal-row" >
<label proportion="1" height="100%" text_align="left" I18N="In the change password dialog" text="New Password"/>
<textbox proportion="2" height="fit" id="new_password1" I18N="In the change password dialog"/>
</div>
<spacer height="20" width="20"/>
<spacer height="12%" width="20"/>
<div width="100%" height="fit" layout="horizontal-row" >
<label proportion="1" height="100%" text_align="left" I18N="In the change password dialog" text="Confirm"/>
@@ -28,11 +28,11 @@
</div>
</div>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<label id="info" proportion="1" width="90%" align="center" text_align="center" word_wrap="true" text=""/>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<buttonbar id="options" width="90%" height="16%" align="center">
<icon-button id="submit" width="64" height="64" icon="gui/icons/green_check.png"
@@ -40,5 +40,6 @@
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"
I18N="In the change password dialog" text="Close" label_location="bottom"/>
</buttonbar>
<spacer height="1f" width="20"/>
</div>
</stkgui>

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<div x="1%" width="98%" height="fit" layout="horizontal-row">
<textbox id="chat" proportion="1"/>
<spacer width="2%" height="10"/>
<button id="team" width="7%" height="fit" align="center" text=""/>
<spacer id="team_space" width="1%" height="10"/>
<button id="send" width="7%" height="fit" align="center" text=""/>
<spacer width="1%" height="10"/>
<button id="emoji" width="7%" height="fit" align="center" text=""/>
</div>
<spacer width="20" height="2%" />
<buttonbar id="backbtnribbon" proportion="4" width="100%" align="center">
<icon-button id="backbtn" width="128" height="128" align="center" icon="gui/icons/back.png"
extend_label="200" I18N="Race paused button" text="Back to Race"/>
<icon-button id="touch_device" width="128" height="128" align="center" icon="gui/icons/android/gyroscope_icon.png"
extend_label="200" I18N="Race paused button" text="Gyroscope"/>
</buttonbar>
<spacer width="20" height="8%" />
<buttonbar id="choiceribbon" proportion="4" width="100%" align="center">
<icon-button id="newrace" width="128" height="128" icon="gui/icons/main_race.png"
I18N="Show in network ingame dialog to allow user to go back to lobby to end spectating (for example)"
text="Back to lobby" word_wrap="true"/>
<icon-button id="restart" width="128" height="128" icon="gui/icons/restart.png"
I18N="Race paused button" text="Restart Race" word_wrap="true"/>
<icon-button id="endrace" width="128" height="128" icon="gui/icons/race_giveup.png"
I18N="Race paused button" text="Give Up Race" word_wrap="true"/>
<icon-button id="options" width="128" height="128" icon="gui/icons/main_options.png"
I18N="Race paused button" text="Options" word_wrap="true"/>
<icon-button id="help" width="128" height="128" icon="gui/icons/main_help.png"
I18N="Race paused button" text="Help" word_wrap="true"/>
<icon-button id="exit" width="128" height="128" icon="gui/icons/main_quit.png"
I18N="Race paused button" text="Quit Server" word_wrap="true"/>
</buttonbar>
<spacer width="20" height="5%" />
</div>
</stkgui>

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="5%" width="96%" height="85%" layout="vertical-row" >
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<label id="info" proportion="1" width="90%" align="center" text_align="center" word_wrap="true" text=""/>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<buttonbar id="options" width="90%" height="30%" align="center">
<icon-button id="view" width="64" height="64" icon="gui/icons/difficulty_medium.png"
@@ -12,5 +12,6 @@
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"
I18N="User info dialog" text="Close" label_location="bottom"/>
</buttonbar>
<spacer height="1f" width="20"/>
</div>
</stkgui>

View File

@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="2%" width="100%" height="96%" layout="vertical-row">
<header id="title" width="96%" height="fit" text_align="center"
<div x="2%" y="2%" width="96%" height="96%" layout="vertical-row">
<header id="title" width="100%" height="fit" text_align="center"
word_wrap="true" I18N="In player rankings dialog"
text="Top 10 players"/>
<spacer height="1%" width="20" />
<box x="2%" width="90%" height="60%" align="center" layout="vertical-row"
padding="6">
@@ -12,15 +14,17 @@
<label id="cur-rank" proportion="1" width="90%" align="center"
text_align="center" word_wrap="true" text=""/>
<spacer height="1%" width="20" />
<buttonbar id="options" width="90%" height="10%" align="center">
<icon-button id="ok" width="16" height="16"
<buttonbar id="options" width="90%" height="14%" align="center">
<icon-button id="ok" width="128" height="128"
icon="gui/icons/green_check.png" text="OK"
label_location="bottom"/>
<icon-button id="refresh" width="16" height="16"
<icon-button id="refresh" width="128" height="128"
icon="gui/icons/restart.png"
text="Refresh" label_location="bottom"/>
</buttonbar>
<spacer width="20" height="2%" />
<spacer height="1f" width="20"/>
</div>
</stkgui>

View File

@@ -4,16 +4,17 @@
<header id="title" width="96%" height="fit" text_align="center" word_wrap="true"
I18N="In the recovery dialog" text="Account Recovery"/>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<label id="info" proportion="1" width="90%" align="center" text_align="center" word_wrap="true" I18N="In the recovery dialog"
text="You will receive an email with further instructions on how to reset your password. Please be patient and be sure to check your spam folder." />
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<buttonbar id="options" width="25%" height="15%" align="center">
<icon-button id="cancel" width="64" height="64" icon="gui/icons/green_check.png"
I18N="In the recovery dialog" text="Close" label_location="none"/>
</buttonbar>
<spacer width="20" height="1f" />
</div>
</stkgui>

View File

@@ -4,12 +4,12 @@
<header id="title" width="96%" height="fit" text_align="center" word_wrap="true"
I18N="In the recovery dialog" text="Account Recovery"/>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<label id="message" proportion="2" width="90%" align="center" text_align="left" word_wrap="true"
text="Fill in the username and email address you supplied at registration to be able to reset your password."/>
<spacer height="40" width="50"/>
<spacer height="4%" width="50"/>
<div width="80%" align="center" layout="vertical-row" height="fit">
<div width="100%" height="fit" layout="horizontal-row" >
@@ -17,7 +17,7 @@
<textbox proportion="2" id="username" I18N="In the recovery dialog"/>
</div>
<spacer height="20" width="20"/>
<spacer height="10%" width="20"/>
<div width="100%" height="fit" layout="horizontal-row" >
<label proportion="1" text_align="left" I18N="In the recovery dialog" text="Email"/>
@@ -26,12 +26,12 @@
</div>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<label id="info" proportion="1" width="90%" align="center" text_align="center" word_wrap="true"
I18N="In the recovery dialog" text=""/>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<buttonbar id="options" width="25%" proportion="1" align="center">
<icon-button id="submit" width="64" height="64" icon="gui/icons/green_check.png"
@@ -39,5 +39,6 @@
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"
I18N="In the recovery dialog" text="Cancel" label_location="none"/>
</buttonbar>
<spacer height="1f" width="20"/>
</div>
</stkgui>

View File

@@ -4,7 +4,7 @@
<header id="title" width="96%" height="fit" text_align="center" word_wrap="true"
I18N="In the registration dialog" text="Terms and Agreement"/>
<spacer height="25" width="50"/>
<spacer height="3%" width="50"/>
<box proportion="5" width="90%" align="center" layout="vertical-row" padding="8">
<label word_wrap="true" id="terms" x="0" y="0" width="100%" height="100%"/>
@@ -15,12 +15,12 @@
text="I agree to the above terms and am 13 years or older. "/>
</div>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<label id="info" proportion="1" width="90%" align="center" text_align="center" word_wrap="true"
I18N="In the registration dialog" text=""/>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<buttonbar id="options" width="45%" height="14%" align="center">
<icon-button id="accept" width="64" height="64" icon="gui/icons/green_check.png"
@@ -28,5 +28,6 @@
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"
I18N="In the registration dialog" text="Cancel" label_location="bottom"/>
</buttonbar>
<spacer height="1f" width="5"/>
</div>
</stkgui>

View File

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="0" y="0" width="100%" height="100%" layout="vertical-row" >
<div x="2%" y="2%" width="96%" height="96%" layout="vertical-row" >
<header id="title" text_align="center" width="80%" align="center" I18N="In the server configuration screen" text="Server Configuration"/>
<spacer height="1%" width="20"/>
<box proportion="1" width="90%" layout="vertical-row" align="center">
<label width="100%" height="8%" text_align="left" I18N="In the server configuration screen" text="Difficulty"/>
@@ -24,7 +25,7 @@
I18N="Multiplayer game mode" text="Normal Race"/>
<icon-button id="timetrial" width="128" height="128" icon="gui/icons/mode_tt.png"
I18N="Multiplayer game mode" text="Time Trial"/>
<icon-button id="3strikes" width="128" height="128" icon="gui/icons/weapons.png"
<icon-button id="3strikes" width="128" height="128" icon="gui/icons/mode_weapons.png"
I18N="Multiplayer game mode" text="Battle"/>
<icon-button id="soccer" width="128" height="128" icon="gui/icons/mode_soccer.png"
I18N="Multiplayer game mode" text="Soccer"/>
@@ -46,7 +47,7 @@
I18N="In the server configuration screen" text="Cancel" label_location="bottom"/>
</buttonbar>
<spacer height="3%" width="20"/>
<spacer height="1f" width="20"/>
</box>
</div>
</stkgui>

View File

@@ -1,9 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="0%" width="96%" height="100%" layout="vertical-row" >
<header id="title" width="96%" proportion="4" text_align="center" word_wrap="true"/>
<div x="2%" y="2%" width="96%" height="96%" layout="vertical-row" >
<header id="title" width="100%" proportion="3" text_align="center" word_wrap="true"/>
<spacer height="1%" width="5"/>
<label id="server-info" width="90%" proportion="4" align="left" text_align="left" text=""/>
<div width="100%" proportion="3" layout="horizontal-row" >
<div width="48%" height="100%" layout="vertical-row" >
<label id="server-info-1" text_align="left" width="100%" text=""/>
<label id="server-info-2" text_align="left" width="100%" text=""/>
</div>
<spacer width="2%"/>
<div width="48%" height="100%" layout="vertical-row" >
<label id="server-info-3" text_align="left" width="100%" text=""/>
<label id="server-info-4" text_align="left" width="100%" text=""/>
</div>
</div>
<spacer height="1%"/>
<box x="0%" width="90%" proportion="12" align="center" layout="vertical-row">
<list id="player-list" x="0" y="0" width="100%" height="100%"
@@ -18,9 +29,11 @@
<buttonbar id="options" width="90%" proportion="4" align="center">
<icon-button id="join" width="128" height="128" icon="gui/icons/green_check.png"
I18N="In the server info dialog" text="Join" label_location="bottom"/>
<icon-button id="bookmark" width="128" height="128" icon="gui/icons/story_mode_book.png"
I18N="In the server info dialog" text="Bookmark this server" label_location="bottom"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/main_quit.png"
I18N="In the server info dialog" text="Cancel" label_location="bottom"/>
</buttonbar>
<spacer height="3%" width="5"/>
<spacer height="1f" width="5"/>
</div>
</stkgui>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="5%" width="96%" height="85%" layout="vertical-row" >
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<header id="title" width="96%" height="fit" text_align="center" word_wrap="true"
I18N="Splitscreen player in network" text="Add player"/>
@@ -54,6 +54,6 @@
I18N="Splitscreen player in network" text="Clear players" label_location="bottom"/>
</buttonbar>
<spacer height="2%" width="10"/>
<spacer height="1f" width="10"/>
</div>
</stkgui>

View File

@@ -1,28 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="5%" width="96%" height="85%" layout="vertical-row" >
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<header id="title" width="96%" height="fit" text_align="center" word_wrap="true"
I18N="User info dialog' dialog" text="User Info"/>
I18N="User info dialog" text="User Info"/>
<spacer height="20" width="50"/>
<spacer height="1f" width="50"/>
<div width="80%" align="center" layout="vertical-row" height="fit" >
<div width="100%" height="fit" layout="horizontal-row" >
<label proportion="1" text_align="left" I18N="User info dialog" text="Name"/>
<label id="name" proportion="2" text_align="left" text=""/>
<div width="80%" align="center" layout="vertical-row" height="20%" >
<div width="100%" height="100%" layout="horizontal-row">
<label id="desc" width="100%" height="100%" text_align="left" word_wrap="true" text=""/>
</div>
</div>
<spacer height="20" width="50"/>
<spacer height="3%" width="50"/>
<label id="info" proportion="1" width="90%" align="center" text_align="center" word_wrap="true" text=""/>
<spacer height="20" width="50"/>
<spacer height="3%" width="50"/>
<buttonbar id="options" width="90%" height="20%" align="center">
<icon-button id="remove" width="64" height="64" icon="gui/icons/package-uninstall.png"
I18N="User info dialog" text="Remove" label_location="bottom"/>
<icon-button id="friend" width="64" height="64" icon="gui/icons/main_help.png"
<icon-button id="friend" width="64" height="64" icon="gui/icons/blue_plus.png"
I18N="User info dialog" text="Add Friend" label_location="bottom"/>
<icon-button id="accept" width="64" height="64" icon="gui/icons/green_check.png"
I18N="User info dialog" text="Accept" label_location="bottom"/>
@@ -33,5 +32,7 @@
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"
I18N="User info dialog" text="Close" label_location="bottom"/>
</buttonbar>
<spacer height="1f" width="20"/>
</div>
</stkgui>

View File

@@ -1,24 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<header id="title" width="96%" height="fit" text_align="center" word_wrap="true"
<header id="title" width="100%" height="fit" text_align="center" word_wrap="true"
I18N="In the vote dialog" text="Vote"/>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<label id="info" proportion="1" width="90%" align="center" text_align="center" word_wrap="true" text=""/>
<spacer height="20" width="50"/>
<spacer height="2%" width="50"/>
<div width="90%" height="64" align="center" layout="vertical-row" >
<ratingbar id="rating" align="center" height="64" width="192"/>
</div>
<ratingbar id="rating" align="center" height="1f" width="3f"/>
<spacer height="40" width="50"/>
<spacer height="4%" width="50"/>
<buttonbar id="options" width="25%" height="20%" align="center">
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"
I18N="Vote dialog" text="Close" label_location="none"/>
</buttonbar>
<spacer height="1f" width="10"/>
</div>
</stkgui>

View File

@@ -8,6 +8,8 @@
<buttonbar id="backbtnribbon" proportion="4" width="100%" align="center">
<icon-button id="backbtn" width="128" height="128" align="center" icon="gui/icons/back.png"
extend_label="200" I18N="In the in-game dialog" text="Back to Game"/>
<icon-button id="touch_device" width="128" height="128" align="center" icon="gui/icons/android/gyroscope_icon.png"
extend_label="200" I18N="Race paused button" text="Gyroscope"/>
</buttonbar>
<spacer width="20" height="8%" />

View File

@@ -2,15 +2,19 @@
<stkgui>
<div x="2%" y="10%" width="96%" height="80%" layout="vertical-row" >
<spacer proportion="1" />
<label id="title" width="100%" text_align="center" text="Press fully and release..." proportion="1" I18N="When changing input configurations" word_wrap="true"/>
<spacer height="25" width="10" />
<button id="assignEsc" I18N="When configuring input" text="Assign to ESC key" align="center"/>
<spacer height="10" width="10" />
<button id="assignNone" I18N="When configuring input" text="Assign nothing" align="center"/>
<spacer height="10" width="10" />
<button id="cancel" I18N="When configuring input" text="Press ESC to cancel" align="center"/>
<spacer proportion="1" />
<buttonbar id="buttons" height="45%" width="100%" align="center">
<icon-button id="assignEsc" width="128" height="128" icon="gui/icons/back.png"
I18N="When configuring input" text="Assign to ESC key" align="center"/>
<icon-button id="assignNone" width="128" height="128" icon="gui/icons/remove.png"
I18N="When configuring input" text="Assign nothing" align="center"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/main_quit.png"
I18N="When configuring input" text="Cancel" align="center"/>
</buttonbar>
</div>
</stkgui>

View File

@@ -7,7 +7,9 @@
<buttonbar id="backbtnribbon" proportion="4" width="100%" align="center">
<icon-button id="backbtn" width="128" height="128" align="center" icon="gui/icons/back.png"
extend_label="200" I18N="Race paused button" text="Back to Race"/>
extend_label="200" I18N="Race paused button" raw_text="Text"/>
<icon-button id="touch_device" width="128" height="128" align="center" icon="gui/icons/android/gyroscope_icon.png"
extend_label="200" I18N="Race paused button" text="Gyroscope"/>
</buttonbar>
<spacer width="20" height="8%" />
@@ -15,10 +17,10 @@
<buttonbar id="choiceribbon" proportion="4" width="100%" align="center">
<icon-button id="newrace" width="128" height="128" icon="gui/icons/main_race.png"
I18N="Race paused button" text="Setup New Race" word_wrap="true"/>
I18N="Race paused button" raw_text="Text" word_wrap="true"/>
<icon-button id="restart" width="128" height="128" icon="gui/icons/restart.png"
I18N="Race paused button" text="Restart Race" word_wrap="true"/>
I18N="Race paused button" raw_text="Text" word_wrap="true"/>
<icon-button id="endrace" width="128" height="128" icon="gui/icons/race_giveup.png"
I18N="Race paused button" text="Give Up Race" word_wrap="true"/>
@@ -30,10 +32,10 @@
I18N="Race paused button" text="Help" word_wrap="true"/>
<icon-button id="exit" width="128" height="128" icon="gui/icons/main_quit.png"
I18N="Race paused button" text="Exit Race" word_wrap="true"/>
I18N="Race paused button" raw_text="Text" word_wrap="true"/>
</buttonbar>
<spacer width="20" height="35" />
<spacer width="20" height="5%" />
</div>
</stkgui>

View File

@@ -2,59 +2,33 @@
<stkgui>
<div x="5%" y="5%" width="90%" height="90%" layout="vertical-row" >
<div width="100%" layout="horizontal-row" height="12%">
<icon-button id="back" width="12%" align="left" icon="gui/icons/back.png"/>
<header id="title" height="10%" width="100%" text="Race Setup" align="center" text_align="center" />
<header id="title" width="80%" text="Race Setup" align="center" text_align="center" />
<spacer height="3%" width="1"/>
<spacer height="1" width="12%"/>
</div>
<spacer height="2%" width="1"/>
<div width="100%" layout="horizontal-row" height="fit">
<label id="race_type" text="Type:" I18N="Type of race, in a challenge"/>
<spacer width="5" height="1"/>
<label id="race_type_val" proportion="1"/>
</div>
<spacer height="2%" width="1"/>
<div width="100%" proportion="1" layout="horizontal-row">
<ribbon id="difficulty" height="25%" width="80%" align="center">
<icon-button id="novice" icon="gui/icons/difficulty_easy.png"
I18N="Difficulty" text="Novice" height="100%"/>
<spacer width="5%" height="1"/>
<label id="novice_label" proportion="1" height="100%"/>
</div>
<spacer height="6%" width="1"/>
<div width="100%" proportion="1" layout="horizontal-row">
width="128" height="128" I18N="Difficulty" text="Novice"/>
<icon-button id="intermediate" icon="gui/icons/difficulty_medium.png"
I18N="Difficulty" text="Intermediate" height="100%"/>
<spacer width="5%" height="1"/>
<label id="intermediate_label" proportion="1" height="100%"/>
</div>
<spacer height="6%" width="1"/>
<div width="100%" proportion="1" layout="horizontal-row">
width="128" height="128" I18N="Difficulty" text="Intermediate"/>
<icon-button id="expert" icon="gui/icons/difficulty_hard.png"
I18N="Difficulty" text="Expert" height="100%"/>
<spacer width="5%" height="1"/>
<label id="difficult_label" proportion="1" height="100%"/>
</div>
<spacer height="6%" width="1"/>
<div width="100%" proportion="1" layout="horizontal-row">
width="128" height="128" I18N="Difficulty" text="Expert"/>
<icon-button id="supertux" icon="gui/icons/difficulty_best.png"
I18N="Difficulty" text="SuperTux" height="100%"/>
<spacer width="5%" height="1"/>
<label id="supertux_label" proportion="1" height="100%"/>
</div>
width="128" height="128" I18N="Difficulty" text="SuperTux"/>
</ribbon>
<spacer height="2%" width="1"/>
<spacer height="3%" width="1"/>
<label id="challenge_info" height="35%" width="100%" text_align="center"/>
<spacer height="3%" width="1"/>
<buttonbar id="actions" height="20%" width="30%" align="center">
<icon-button id="start" icon="gui/icons/green_check.png"
width="128" height="128" text="Start Race"/>
<icon-button id="back" icon="gui/icons/back.png"
width="128" height="128" text="Back"/>
</buttonbar>
</div>
</stkgui>

View File

@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="5%" y="5%" width="90%" height="90%" layout="vertical-row" >
<div width="100%" layout="horizontal-row" height="12%">
<icon-button id="back" width="12%" align="left" icon="gui/icons/back.png"/>
<header id="title" width="80%" text="Race Setup" align="center" text_align="center" />
<spacer height="1" width="12%"/>
</div>
<spacer height="2%" width="1"/>
<div width="100%" layout="horizontal-row" height="fit">
<label id="race_type" text="Type:" I18N="Type of race, in a challenge"/>
<spacer width="5" height="1"/>
<label id="race_type_val" proportion="1"/>
</div>
<spacer height="2%" width="1"/>
<div width="100%" proportion="1" layout="horizontal-row">
<icon-button id="novice" icon="gui/icons/difficulty_easy.png"
I18N="Difficulty" text="Novice" height="100%"/>
<spacer width="5%" height="1"/>
<label id="novice_label" proportion="1" height="100%"/>
</div>
<spacer height="8%" width="1"/>
<div width="100%" proportion="1" layout="horizontal-row">
<icon-button id="intermediate" icon="gui/icons/difficulty_medium.png"
I18N="Difficulty" text="Intermediate" height="100%"/>
<spacer width="5%" height="1"/>
<label id="intermediate_label" proportion="1" height="100%"/>
</div>
<spacer height="8%" width="1"/>
<div width="100%" proportion="1" layout="horizontal-row">
<icon-button id="expert" icon="gui/icons/difficulty_hard.png"
I18N="Difficulty" text="Expert" height="100%"/>
<spacer width="5%" height="1"/>
<label id="difficult_label" proportion="1" height="100%"/>
</div>
<spacer height="8%" width="1"/>
</div>
</stkgui>

View File

@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="10%" width="96%" height="80%" layout="vertical-row" >
<label id="title" width="100%" text_align="left" word_wrap="true" proportion="1" />
<div x="2%" y="10%" width="96%" height="88%" layout="vertical-row" >
<label id="title" width="100%" height="100%" text_align="left" word_wrap="true" proportion="1" />
<spacer height="10" width="10" />
<button id="continue" I18N="Button in tutorial" text="Continue" align="right"/>
<button id="continue" I18N="Button in tutorial" text="Continue" align="center"/>
</div>
</stkgui>

View File

@@ -1,53 +0,0 @@
All icons come from Open Game Art (art by onyum.com, comissionned by Bart Kelsey)
released under CC-BY-SA 3+
* options_players & random_kart were tweaked by Marianne Gagnon
Except :
main_*.png icons, hourglass, back, back_addons, next_addons, package.png
released under Creative-Commons BY-SA 3, By yeKcim (Anthony Carré)
mode_tt, released under Creative-Commons BY-SA 3, incorporatings artwork from yeKcim and onyum.com,
modified by Totoplus62
mode_easter, mode_ftl, mode_soccer, mode_normal, race_giveup: by Totoplus62, released under CC-BY-SA 3.0
soccer balls released under CC-BY-SA 3.0 by Néd J. Édoire
tutorial.png by Totoplus62, released under CC-BY-SA 3.0
Logo and Logo_slim : under CC-BY-SA 3.0+ by 'rastapax'
difficulty_*.png icons, released under Creative-Commons BY-SA 3, By Conso (Constantin Pelikan)
title_font, by Marianne Gagnon (Auria), released under CC-BY-SA 3+
screen*.png, by Marianne Gagnon (Auria), including elements from the public domain Tango icon set
speed.png by Alayan, with elements by Totoplus62, released under CC-BY-SA 3
speed*.png by Alayan, released under CC-0
gauge*.png by Alayan, released under CC-0
menu_story by tavariz91, released under CC-0
mass.png by Auria, released under CC-0
power.png by Auria, based on https://openclipart.org/detail/193925/check-engine and https://openclipart.org/detail/144799/power-icon, released under CC-0
crown.png by glitch, from https://openclipart.org/detail/210257/misc-game-crown, released under public domain
ghost_plus.png by Alayan, based on https://openclipart.org/detail/17847/cartoon-ghost by lemmling, released under CC-O
options_language.png by Alayan, based on http://www.languageicon.org/, released under CC-BY-SA 3+
options_general.png by Alayan, released under CC-BY-SA 4
blue_flag.png, heart.png and red_flag.png by Benau, released under CC-BY-SA 4
lap_flag.png, modified by Alayan, original by Alina Oleynik from The Noun Project, under CC-BY 3.0
====
Glass Skin by Auria, under CC-BY-SA 3+
except background, under CC-BY-SA, by 'elisee'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Some files were not shown because too many files have changed in this diff Show More