From: Adrien Plazas Date: Fri, 29 Jul 2016 22:59:47 +0000 (+0200) Subject: libretro: Fix key passing of update_controller_port_device() X-Git-Tag: r24l~845^2~1 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a06f5a7008c19fb65c037f539439c029834026b3;p=pcsx_rearmed.git libretro: Fix key passing of update_controller_port_device() Change the way the key of the controler type variables is passed to one which doesn't crash. --- diff --git a/frontend/libretro.c b/frontend/libretro.c index d6c1ab8f..b812d912 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -382,17 +382,36 @@ static void update_controller_port_device(unsigned port, unsigned device) if (port >= PORTS_NUMBER) return; - static const char **CONTROLLER_VARIABLE = { - "pcsx_rearmed_pad1type", "pcsx_rearmed_pad2type", - "pcsx_rearmed_pad3type", "pcsx_rearmed_pad4type", - "pcsx_rearmed_pad5type", "pcsx_rearmed_pad6type", - "pcsx_rearmed_pad7type", "pcsx_rearmed_pad8type", - }; - struct retro_variable var; var.value = NULL; - var.key = CONTROLLER_VARIABLE[port]; + switch (port) { + case 0: + var.key = "pcsx_rearmed_pad1type"; + break; + case 1: + var.key = "pcsx_rearmed_pad2type"; + break; + case 2: + var.key = "pcsx_rearmed_pad3type"; + break; + case 3: + var.key = "pcsx_rearmed_pad4type"; + break; + case 4: + var.key = "pcsx_rearmed_pad5type"; + break; + case 5: + var.key = "pcsx_rearmed_pad6type"; + break; + case 6: + var.key = "pcsx_rearmed_pad7type"; + break; + case 7: + var.key = "pcsx_rearmed_pad8type"; + break; + } + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value) { if (strcmp(var.value, "standard") == 0)