here's your problem!
Code:
.
	if (v_selected_wpn == 1)
	{
		STRING* str_selected_number = "2";
	}
	if (v_selected_wpn == 0)
	{
		STRING* str_selected_number = "1";
	}

you're not changing str_selected_number just creating a new local variable, use
Code:
str_cpy(str_selected_number, "1");



also, if you've only two weapons
Code:
v_selected_wpn += 1;
v_selected_wpn %= 2;

would be better written as
Code:
v_selected_wpn = 1 - v_selected_wpn;