Fix compiling the secondary library, Begin prefs integration
This commit is contained in:
parent
0567e8a117
commit
6a757bb43e
|
@ -64,12 +64,6 @@ LOCAL_ARM_MODE := arm
|
|||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
$(call import-module,android/native_app_glue)
|
||||
|
||||
LOCAL_CERTIFICATE := shared
|
||||
|
||||
LOCAL_PATH:= $(call my-dir)/..
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := sexplay
|
||||
|
|
|
@ -41,6 +41,7 @@ import android.widget.TextView;
|
|||
import android.widget.Toast;
|
||||
|
||||
import com.android.util.FileUtils;
|
||||
import com.reicast.emulator.config.Config;
|
||||
import com.reicast.emulator.emu.JNIdc;
|
||||
|
||||
public class FileBrowser extends Fragment {
|
||||
|
@ -62,8 +63,8 @@ public class FileBrowser extends Fragment {
|
|||
super.onCreate(savedInstanceState);
|
||||
|
||||
mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
home_directory = mPrefs.getString("home_directory", home_directory);
|
||||
game_directory = mPrefs.getString("game_directory", game_directory);
|
||||
home_directory = mPrefs.getString(Config.pref_home, home_directory);
|
||||
game_directory = mPrefs.getString(Config.pref_games, game_directory);
|
||||
|
||||
Bundle b = getArguments();
|
||||
if (b != null) {
|
||||
|
@ -413,12 +414,12 @@ public class FileBrowser extends Fragment {
|
|||
if (games) {
|
||||
game_directory = heading;
|
||||
mPrefs.edit()
|
||||
.putString("game_directory",
|
||||
.putString(Config.pref_games,
|
||||
heading).commit();
|
||||
} else {
|
||||
home_directory = heading;
|
||||
mPrefs.edit()
|
||||
.putString("home_directory",
|
||||
.putString(Config.pref_home,
|
||||
heading).commit();
|
||||
File data_directory = new File(heading,
|
||||
"data");
|
||||
|
|
|
@ -82,13 +82,13 @@ public class GL2JNIActivity extends Activity {
|
|||
|
||||
// Populate device descriptor-to-player-map from preferences
|
||||
pad.deviceDescriptor_PlayerNum.put(
|
||||
prefs.getString("device_descriptor_player_1", null), 0);
|
||||
prefs.getString(Gamepad.pref_player1, null), 0);
|
||||
pad.deviceDescriptor_PlayerNum.put(
|
||||
prefs.getString("device_descriptor_player_2", null), 1);
|
||||
prefs.getString(Gamepad.pref_player2, null), 1);
|
||||
pad.deviceDescriptor_PlayerNum.put(
|
||||
prefs.getString("device_descriptor_player_3", null), 2);
|
||||
prefs.getString(Gamepad.pref_player3, null), 2);
|
||||
pad.deviceDescriptor_PlayerNum.put(
|
||||
prefs.getString("device_descriptor_player_4", null), 3);
|
||||
prefs.getString(Gamepad.pref_player4, null), 3);
|
||||
pad.deviceDescriptor_PlayerNum.remove(null);
|
||||
|
||||
moga.onCreate(this, pad);
|
||||
|
@ -144,23 +144,23 @@ public class GL2JNIActivity extends Activity {
|
|||
|
||||
if (playerNum != null) {
|
||||
String id = pad.portId[playerNum];
|
||||
pad.custom[playerNum] = prefs.getBoolean("modified_key_layout" + id, false);
|
||||
pad.compat[playerNum] = prefs.getBoolean("controller_compat" + id, false);
|
||||
pad.joystick[playerNum] = prefs.getBoolean("separate_joystick" + id, true);
|
||||
pad.custom[playerNum] = prefs.getBoolean(Gamepad.pref_js_modified + id, false);
|
||||
pad.compat[playerNum] = prefs.getBoolean(Gamepad.pref_js_compat + id, false);
|
||||
pad.joystick[playerNum] = prefs.getBoolean(Gamepad.pref_js_separate + id, true);
|
||||
if (!pad.compat[playerNum]) {
|
||||
if (pad.custom[playerNum]) {
|
||||
pad.map[playerNum] = pad.setModifiedKeys(id, playerNum, prefs);
|
||||
} else if (InputDevice.getDevice(joy).getName()
|
||||
.equals("Sony PLAYSTATION(R)3 Controller")) {
|
||||
.equals(Gamepad.controllers_sony)) {
|
||||
pad.map[playerNum] = pad.getConsoleController();
|
||||
} else if (InputDevice.getDevice(joy).getName()
|
||||
.equals("Microsoft X-Box 360 pad")) {
|
||||
.equals(Gamepad.controllers_xbox)) {
|
||||
pad.map[playerNum] = pad.getConsoleController();
|
||||
} else if (InputDevice.getDevice(joy).getName()
|
||||
.contains("NVIDIA Corporation NVIDIA Controller")) {
|
||||
.contains(Gamepad.controllers_shield)) {
|
||||
pad.map[playerNum] = pad.getConsoleController();
|
||||
} else if (InputDevice.getDevice(joy).getName()
|
||||
.contains("keypad-zeus")) {
|
||||
.contains(Gamepad.controllers_play)) {
|
||||
pad.map[playerNum] = pad.getXPlayController();
|
||||
} else if (!pad.isActiveMoga[playerNum]) { // Ouya controller
|
||||
pad.map[playerNum] = pad.getOUYAController();
|
||||
|
|
|
@ -81,13 +81,13 @@ public class GL2JNINative extends NativeActivity {
|
|||
|
||||
// Populate device descriptor-to-player-map from preferences
|
||||
pad.deviceDescriptor_PlayerNum.put(
|
||||
prefs.getString("device_descriptor_player_1", null), 0);
|
||||
prefs.getString(Gamepad.pref_player1, null), 0);
|
||||
pad.deviceDescriptor_PlayerNum.put(
|
||||
prefs.getString("device_descriptor_player_2", null), 1);
|
||||
prefs.getString(Gamepad.pref_player2, null), 1);
|
||||
pad.deviceDescriptor_PlayerNum.put(
|
||||
prefs.getString("device_descriptor_player_3", null), 2);
|
||||
prefs.getString(Gamepad.pref_player3, null), 2);
|
||||
pad.deviceDescriptor_PlayerNum.put(
|
||||
prefs.getString("device_descriptor_player_4", null), 3);
|
||||
prefs.getString(Gamepad.pref_player4, null), 3);
|
||||
pad.deviceDescriptor_PlayerNum.remove(null);
|
||||
|
||||
moga.onCreate(this, pad);
|
||||
|
@ -135,7 +135,7 @@ public class GL2JNINative extends NativeActivity {
|
|||
+ InputDevice.getDevice(joy).getName());
|
||||
if (pad.isXperiaPlay) {
|
||||
if (InputDevice.getDevice(joy).getName()
|
||||
.contains("keypad-game-zeus")) {
|
||||
.contains(Gamepad.controllers_play_gp)) {
|
||||
pad.keypadZeus.add(joy);
|
||||
}
|
||||
if (InputDevice.getDevice(joy).getName()
|
||||
|
@ -154,11 +154,11 @@ public class GL2JNINative extends NativeActivity {
|
|||
|
||||
if (playerNum != null) {
|
||||
String id = pad.portId[playerNum];
|
||||
pad.custom[playerNum] = prefs.getBoolean("modified_key_layout" + id, false);
|
||||
pad.compat[playerNum] = prefs.getBoolean("controller_compat" + id, false);
|
||||
pad.joystick[playerNum] = prefs.getBoolean("separate_joystick" + id, false);
|
||||
pad.custom[playerNum] = prefs.getBoolean(Gamepad.pref_js_modified + id, false);
|
||||
pad.compat[playerNum] = prefs.getBoolean(Gamepad.pref_js_compat + id, false);
|
||||
pad.joystick[playerNum] = prefs.getBoolean(Gamepad.pref_js_separate + id, false);
|
||||
if (InputDevice.getDevice(joy).getName()
|
||||
.contains("keypad-zeus")) {
|
||||
.contains(Gamepad.controllers_play)) {
|
||||
pad.playerNumX.put(joy, playerNum);
|
||||
for (int keys : pad.keypadZeus) {
|
||||
pad.playerNumX.put(keys, playerNum);
|
||||
|
@ -173,13 +173,13 @@ public class GL2JNINative extends NativeActivity {
|
|||
if (pad.custom[playerNum]) {
|
||||
setCustomMapping(id, playerNum);
|
||||
} else if (InputDevice.getDevice(joy).getName()
|
||||
.equals("Sony PLAYSTATION(R)3 Controller")) {
|
||||
.equals(Gamepad.controllers_sony)) {
|
||||
pad.map[playerNum] = pad.getConsoleController();
|
||||
} else if (InputDevice.getDevice(joy).getName()
|
||||
.equals("Microsoft X-Box 360 pad")) {
|
||||
.equals(Gamepad.controllers_xbox)) {
|
||||
pad.map[playerNum] = pad.getConsoleController();
|
||||
} else if (InputDevice.getDevice(joy).getName()
|
||||
.contains("NVIDIA Corporation NVIDIA Controller")) {
|
||||
.contains(Gamepad.controllers_shield)) {
|
||||
pad.map[playerNum] = pad.getConsoleController();
|
||||
} else if (!pad.isActiveMoga[playerNum]) { // Ouya controller
|
||||
pad.map[playerNum] = pad.getOUYAController();
|
||||
|
|
|
@ -23,9 +23,27 @@ import com.reicast.emulator.emu.JNIdc;
|
|||
|
||||
public class Config {
|
||||
|
||||
public static final String pref_native = "enable_native";
|
||||
public static final String pref_dynarec = "dynarec_opt";
|
||||
public static final String pref_home = "home_directory";
|
||||
public static final String pref_games = "game_directory";
|
||||
|
||||
public static final String pref_nativeact = "enable_native";
|
||||
public static final String pref_dynarecopt = "dynarec_opt";
|
||||
public static final String pref_unstable = "unstable_opt";
|
||||
public static final String pref_cable = "dc_cable";
|
||||
public static final String pref_dcregion = "dc_region";
|
||||
public static final String pref_broadcast = "dc_broadcast";
|
||||
public static final String pref_limitfps = "limit_fps";
|
||||
public static final String pref_nosound = "sound_disabled";
|
||||
public static final String pref_mipmaps = "use_mipmaps";
|
||||
public static final String pref_widescreen = "stretch_view";
|
||||
public static final String pref_frameskip = "frame_skip";
|
||||
public static final String pref_pvrrender = "pvr_render";
|
||||
public static final String pref_cheatdisk = "cheat_disk";
|
||||
|
||||
public static final String pref_showfps = "show_fps";
|
||||
public static final String pref_forcegpu = "force_gpu";
|
||||
public static final String pref_rendertype = "render_type";
|
||||
public static final String pref_renderdepth = "depth_render";
|
||||
|
||||
public static boolean dynarecopt = true;
|
||||
public static boolean idleskip = true;
|
||||
|
@ -55,19 +73,19 @@ public class Config {
|
|||
*
|
||||
*/
|
||||
public void getConfigurationPrefs() {
|
||||
Config.dynarecopt = mPrefs.getBoolean(pref_dynarec, dynarecopt);
|
||||
Config.dynarecopt = mPrefs.getBoolean(pref_dynarecopt, dynarecopt);
|
||||
Config.unstableopt = mPrefs.getBoolean(pref_unstable, unstableopt);
|
||||
Config.cable = mPrefs.getInt("dc_cable", cable);
|
||||
Config.dcregion = mPrefs.getInt("dc_region", dcregion);
|
||||
Config.broadcast = mPrefs.getInt("dc_broadcast", broadcast);
|
||||
Config.limitfps = mPrefs.getBoolean("limit_fps", limitfps);
|
||||
Config.nosound = mPrefs.getBoolean("sound_disabled", nosound);
|
||||
Config.mipmaps = mPrefs.getBoolean("use_mipmaps", mipmaps);
|
||||
Config.widescreen = mPrefs.getBoolean("stretch_view", widescreen);
|
||||
Config.frameskip = mPrefs.getInt("frame_skip", frameskip);
|
||||
Config.pvrrender = mPrefs.getBoolean("pvr_render", pvrrender);
|
||||
Config.cheatdisk = mPrefs.getString("cheat_disk", cheatdisk);
|
||||
Config.nativeact = mPrefs.getBoolean(pref_native, nativeact);
|
||||
Config.cable = mPrefs.getInt(pref_cable, cable);
|
||||
Config.dcregion = mPrefs.getInt(pref_dcregion, dcregion);
|
||||
Config.broadcast = mPrefs.getInt(pref_broadcast, broadcast);
|
||||
Config.limitfps = mPrefs.getBoolean(pref_limitfps, limitfps);
|
||||
Config.nosound = mPrefs.getBoolean(pref_nosound, nosound);
|
||||
Config.mipmaps = mPrefs.getBoolean(pref_mipmaps, mipmaps);
|
||||
Config.widescreen = mPrefs.getBoolean(pref_widescreen, widescreen);
|
||||
Config.frameskip = mPrefs.getInt(pref_frameskip, frameskip);
|
||||
Config.pvrrender = mPrefs.getBoolean(pref_pvrrender, pvrrender);
|
||||
Config.cheatdisk = mPrefs.getString(pref_cheatdisk, cheatdisk);
|
||||
Config.nativeact = mPrefs.getBoolean(pref_nativeact, nativeact);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -76,7 +76,7 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putBoolean(Config.pref_native, isChecked).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_nativeact, isChecked).commit();
|
||||
Config.nativeact = isChecked;
|
||||
}
|
||||
};
|
||||
|
@ -89,7 +89,7 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putBoolean(Config.pref_dynarec, isChecked).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_dynarecopt, isChecked).commit();
|
||||
Config.dynarecopt = isChecked;
|
||||
}
|
||||
};
|
||||
|
@ -115,8 +115,9 @@ public class ConfigureFragment extends Fragment {
|
|||
}
|
||||
unstable_opt.setOnCheckedChangeListener(unstable_option);
|
||||
|
||||
String[] regions = parentActivity.getResources().getStringArray(
|
||||
R.array.region);
|
||||
String[] regions = parentActivity.getResources()
|
||||
.getStringArray(R.array.region);
|
||||
|
||||
Spinner region_spnr = (Spinner) getView().findViewById(
|
||||
R.id.region_spinner);
|
||||
ArrayAdapter<String> regionAdapter = new ArrayAdapter<String>(
|
||||
|
@ -131,7 +132,7 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onItemSelected(AdapterView<?> parent, View view,
|
||||
int pos, long id) {
|
||||
mPrefs.edit().putInt("dc_region", pos).commit();
|
||||
mPrefs.edit().putInt(Config.pref_dcregion, pos).commit();
|
||||
Config.dcregion = pos;
|
||||
|
||||
}
|
||||
|
@ -167,7 +168,7 @@ public class ConfigureFragment extends Fragment {
|
|||
String item = parent.getItemAtPosition(pos).toString();
|
||||
String selection = item.substring(0, item.indexOf(" - "));
|
||||
mPrefs.edit()
|
||||
.putInt("dc_broadcast", Integer.valueOf(selection))
|
||||
.putInt(Config.pref_broadcast, Integer.valueOf(selection))
|
||||
.commit();
|
||||
Config.broadcast = Integer.valueOf(selection);
|
||||
|
||||
|
@ -183,7 +184,7 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putBoolean("limit_fps", isChecked).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_limitfps, isChecked).commit();
|
||||
Config.limitfps = isChecked;
|
||||
}
|
||||
};
|
||||
|
@ -196,7 +197,7 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putBoolean("use_mipmaps", isChecked).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_mipmaps, isChecked).commit();
|
||||
Config.mipmaps = isChecked;
|
||||
}
|
||||
};
|
||||
|
@ -209,7 +210,7 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putBoolean("stretch_view", isChecked).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_widescreen, isChecked).commit();
|
||||
Config.widescreen = isChecked;
|
||||
}
|
||||
};
|
||||
|
@ -237,7 +238,7 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
int progress = seekBar.getProgress();
|
||||
mPrefs.edit().putInt("frame_skip", progress).commit();
|
||||
mPrefs.edit().putInt(Config.pref_frameskip, progress).commit();
|
||||
Config.frameskip = progress;
|
||||
}
|
||||
});
|
||||
|
@ -246,7 +247,7 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putBoolean("pvr_render", isChecked).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_pvrrender, isChecked).commit();
|
||||
Config.pvrrender = isChecked;
|
||||
}
|
||||
};
|
||||
|
@ -274,7 +275,7 @@ public class ConfigureFragment extends Fragment {
|
|||
} else {
|
||||
cheatEdit.setText(disk);
|
||||
}
|
||||
mPrefs.edit().putString("cheat_disk", disk).commit();
|
||||
mPrefs.edit().putString(Config.pref_cheatdisk, disk).commit();
|
||||
Config.cheatdisk = disk;
|
||||
}
|
||||
}
|
||||
|
@ -293,10 +294,10 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putBoolean("show_fps", isChecked).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_showfps, isChecked).commit();
|
||||
}
|
||||
};
|
||||
boolean counter = mPrefs.getBoolean("show_fps", false);
|
||||
boolean counter = mPrefs.getBoolean(Config.pref_showfps, false);
|
||||
fps_opt.setChecked(counter);
|
||||
fps_opt.setOnCheckedChangeListener(fps_options);
|
||||
|
||||
|
@ -307,10 +308,10 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putBoolean("force_gpu", isChecked).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_forcegpu, isChecked).commit();
|
||||
}
|
||||
};
|
||||
boolean enhanced = mPrefs.getBoolean("force_gpu", true);
|
||||
boolean enhanced = mPrefs.getBoolean(Config.pref_forcegpu, true);
|
||||
force_gpu_opt.setChecked(enhanced);
|
||||
force_gpu_opt.setOnCheckedChangeListener(force_gpu_options);
|
||||
} else {
|
||||
|
@ -323,18 +324,18 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putInt("render_type", isChecked ? 1 : 2).commit();
|
||||
mPrefs.edit().putInt(Config.pref_rendertype, isChecked ? 1 : 2).commit();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (isChecked) {
|
||||
force_gpu_opt.setEnabled(false);
|
||||
mPrefs.edit().putBoolean("force_gpu", false).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_forcegpu, false).commit();
|
||||
} else {
|
||||
force_gpu_opt.setEnabled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
int software = mPrefs.getInt("render_type",
|
||||
int software = mPrefs.getInt(Config.pref_rendertype,
|
||||
GL2JNIView.LAYER_TYPE_HARDWARE);
|
||||
force_software_opt
|
||||
.setChecked(software == GL2JNIView.LAYER_TYPE_SOFTWARE);
|
||||
|
@ -345,11 +346,11 @@ public class ConfigureFragment extends Fragment {
|
|||
|
||||
public void onCheckedChanged(CompoundButton buttonView,
|
||||
boolean isChecked) {
|
||||
mPrefs.edit().putBoolean("sound_disabled", isChecked).commit();
|
||||
mPrefs.edit().putBoolean(Config.pref_nosound, isChecked).commit();
|
||||
Config.nosound = isChecked;
|
||||
}
|
||||
};
|
||||
boolean sound = mPrefs.getBoolean("sound_disabled", false);
|
||||
boolean sound = mPrefs.getBoolean(Config.pref_nosound, false);
|
||||
sound_opt.setChecked(sound);
|
||||
sound_opt.setOnCheckedChangeListener(emu_sound);
|
||||
|
||||
|
@ -364,7 +365,7 @@ public class ConfigureFragment extends Fragment {
|
|||
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
depth_spnr.setAdapter(depthAdapter);
|
||||
|
||||
String depth = String.valueOf(mPrefs.getInt("depth_render", 24));
|
||||
String depth = String.valueOf(mPrefs.getInt(Config.pref_renderdepth, 24));
|
||||
depth_spnr.setSelection(depthAdapter.getPosition(depth), true);
|
||||
|
||||
depth_spnr.setOnItemSelectedListener(new OnItemSelectedListener() {
|
||||
|
@ -373,7 +374,7 @@ public class ConfigureFragment extends Fragment {
|
|||
int pos, long id) {
|
||||
int render = Integer.valueOf(parent.getItemAtPosition(pos)
|
||||
.toString());
|
||||
mPrefs.edit().putInt("depth_render", render).commit();
|
||||
mPrefs.edit().putInt(Config.pref_renderdepth, render).commit();
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,21 @@ import android.view.KeyEvent;
|
|||
|
||||
public class Gamepad {
|
||||
|
||||
public static final String pref_player1 = "device_descriptor_player_1";
|
||||
public static final String pref_player2 = "device_descriptor_player_2";
|
||||
public static final String pref_player3 = "device_descriptor_player_3";
|
||||
public static final String pref_player4 = "device_descriptor_player_4";
|
||||
|
||||
public static final String pref_js_modified = "modified_key_layout";
|
||||
public static final String pref_js_compat = "controller_compat";
|
||||
public static final String pref_js_separate = "separate_joystick";
|
||||
|
||||
public static final String controllers_sony = "Sony PLAYSTATION(R)3 Controller";
|
||||
public static final String controllers_xbox = "Microsoft X-Box 360 pad";
|
||||
public static final String controllers_shield = "NVIDIA Corporation NVIDIA Controller";
|
||||
public static final String controllers_play = "keypad-zeus";
|
||||
public static final String controllers_play_gp = "keypad-game-zeus";
|
||||
|
||||
public String[] portId = { "_A", "_B", "_C", "_D" };
|
||||
public boolean[] compat = { false, false, false, false };
|
||||
public boolean[] custom = { false, false, false, false };
|
||||
|
|
Loading…
Reference in New Issue