Registrarse

[Dis - Código] Errores al editar ItemId_GetName (Para nombres de objetos más largos)

Estado
Cerrado para nuevas respuestas.

RandomSponge

Usuario de oro
No se si alguien aquí ha intentado editar pokefirered o pokeemerald para tener nombres de objetos más largos (el límite normal es de 13-14), pero al intentarlo en pokefirered me quede con estos errores.
Error.png


Los archivos que cambie son los siguientes.

En include/constants/global.h : (el cuatro y números siguientes al principio de los códigos son los números de las líneas remplazadas)
Código:
4 #define ITEM_NAME_LENGTH 20

En include/item.h :
Código:
10 const u16 *name[ITEM_NAME_LENGTH];
Código:
47 const u16 *ItemId_GetName(u16 itemId);

En src/item.c :

Código:
619 const u16 * ItemId_GetName(u16 itemId)
Creo que vale la pena mencionar que ya aplicando estos cambios, no te saltan errores relacionados/causados por poner un nombre de entre 15-20 letras/caracteres a un objeto, cosa que se hace en src/data/items.json (eso no significa que todo esto esté libre de otros errores después de compilar, pero agcc está tratando las advertencias como errores así que no puedo comprobar nada más).

Se que los errores son causados por estos cambios, pero cómo no sé mucho de C no me queda muy claro que cambiar en src/quest_log_events.c para arreglarlo, o cual seria una mejor manera de tener nombres más largos para los objetos.

Gracias por leer, y agradecería mucho su ayuda si pueden ofrecerla. :)
 

Eaas

Profesional de WaH
No se si alguien aquí ha intentado editar pokefirered o pokeemerald para tener nombres de objetos más largos (el límite normal es de 13-14), pero al intentarlo en pokefirered me quede con estos errores.
Ver el archivo adjunto 6821

Los archivos que cambie son los siguientes.

En include/constants/global.h : (el cuatro y números siguientes al principio de los códigos son los números de las líneas remplazadas)
Código:
4 #define ITEM_NAME_LENGTH 20

En include/item.h :
Código:
10 const u16 *name[ITEM_NAME_LENGTH];
Código:
47 const u16 *ItemId_GetName(u16 itemId);

En src/item.c :

Código:
619 const u16 * ItemId_GetName(u16 itemId)
Creo que vale la pena mencionar que ya aplicando estos cambios, no te saltan errores relacionados/causados por poner un nombre de entre 15-20 letras/caracteres a un objeto, cosa que se hace en src/data/items.json (eso no significa que todo esto esté libre de otros errores después de compilar, pero agcc está tratando las advertencias como errores así que no puedo comprobar nada más).

Se que los errores son causados por estos cambios, pero cómo no sé mucho de C no me queda muy claro que cambiar en src/quest_log_events.c para arreglarlo, o cual seria una mejor manera de tener nombres más largos para los objetos.

Gracias por leer, y agradecería mucho su ayuda si pueden ofrecerla. :)
Por que no intentas cambiar uno,despues otro y así?
De esa manera sabrás cuáles son los que te dan errores.
 

RandomSponge

Usuario de oro
Pues la verdad no sabría que cambiar exactamente 😅
Además, en todas esas líneas marcan el mismo error, así que en teoría solo haría falta probar en una línea.
 
Última edición:

Eaas

Profesional de WaH
Pues la verdad no sabría que cambiar exactamente 😅
Además, en todas esas líneas marcan el mismo error, así que en teoría solo haría falta probar en una línea.
Cambia #define ITEM_NAME_LENGTH 20
Y mira el error que te da el compilador, y vas siguiéndole la corriente.

Igual supongo que se necesite cambiar más cosas para lograr eso.
 

RandomSponge

Usuario de oro
Ya he intentado cambiar #define ITEM_NAME_LENGTH varias veces (por defecto tiene valor de 14), y al parecer cambiarlo por si solo no causa errores, los errores solo aparecen cuando aplicas los demás cambios que mencioné en el post o cuando el nombre de uno o más objetos es superior al número en #define ITEM_NAME_LENGTH (aunque hacer esto ultimo causa errores distintos, y en src/data/item.h en vez de src/quest_log_events.c ).
 

Eaas

Profesional de WaH
Ya he intentado cambiar #define ITEM_NAME_LENGTH varias veces (por defecto tiene valor de 14), y al parecer cambiarlo por si solo no causa errores, los errores solo aparecen cuando aplicas los demás cambios que mencioné en el post o cuando el nombre de uno o más objetos es superior al número en #define ITEM_NAME_LENGTH (aunque hacer esto ultimo causa errores distintos, y en src/data/item.h en vez de src/quest_log_events.c ).
Pq no preguntas en el discord de Wah, o en el de Pokeco.
Estan más activos que aquí.
 

RandomSponge

Usuario de oro
Después de probar un rato más, me di cuenta de que la solución era muy simple ._.
Con solo cambiar #define ITEM_NAME_LENGTH a un digito más del número de caracteres que quieres usar (ósea, si quieres nombres de 16 letras pondrías 17, si quieres 18 pones 19 y así) y mantenerse en ese límite el juego se compila y todo funciona. (Aunque bueno, en algunos menús hay errores gráficos, pero eso ya sería para resolver por mi cuenta/para otro tema)
Bueno, al menos esto sirve a futuro por si alguien más quiere cambiar ese límite 😅
 
Estado
Cerrado para nuevas respuestas.
Arriba