Siema
Mam problem odnoście structów za pomocą enuma i stringów w ich wnętrzu. W niektórych przypadkach nie mogę się normalnie dostać za pomocą wartości enum do oczekiwanej wartości. Dzieje się to w przypadku wystąpienia stringa. Po prostu jakby znak 0 na końcu stringa niszczył mi strukturę, a kolejny string pojawia się od razu za poprzednim zamiast w odpowiednim miejscu.
PRZYKŁAD
Mam sobie takie 2 enumy:
enum _:WeaponModelData { VModelPath[128], PModelPath[128], WModelPath[128] }
enum _:BoxingTeamData { BoxingTeamName[64], BoxingTeamGlovesModelData[WeaponModelData] }
Przykładowa tablica, która implementuje te strukty:
new boxingTeams[][BoxingTeamData] = { { "team_1", { "v_sciezk1.mdl", "p_sciezk1.mdl", "w_sciezk1.mdl" } }, { "team_2", { "v_sciezk2.mdl", "p_sciezk2.mdl", "w_sciezk2.mdl" } } }
Tutaj przykładowy problem:
public plugin_precache() { for(new i = 0; i < sizeof(boxingTeams); i++) { precache_model(boxingTeams[i][BoxingTeamGlovesModelData][VModelPath]); precache_model(boxingTeams[i][BoxingTeamGlovesModelData][PModelPath]); precache_model(boxingTeams[i][BoxingTeamGlovesModelData][WModelPath]); } }
Nawet przy zwykłej próbie precachu za pomocą pętli mam problem. Po prostu w miejscu 2 linijki pętli (precache_model(boxingTeams[i][BoxingTeamGlovesModelData][PModelPath]) mam już praktycznie pustego stringa i cały struct się jebie.
Ogólnie zauważyłem też, że przy korzystaniu tylko z pierwszego structa problem nie występuje. Jakby BoxingTeamName[64] mieszał wszystko za nim. To niżej w teorii działa jak testowałem.
new prisonerKnifeWeaponModelData[WeaponModelData] = { "v_skin.mdl", "p_skin.mdl", "w_skin.mdl" };
Wie ktoś jak to robić poprawnie? Może ja coś źle robię w przypadku próby wydobycia stringa w takich strukturach?
Pozdrawiam