Code:
if(Num==3){
_ArtSetUp_ *artsetup;
v2=-1; Apply(&v2,4,Mp,0);
if((v2<0)||(v2>=ARTNUM)){ MError("\"!!UN:A\"-wrong artifact number (internal)."); RETURN(0) }
artsetup=&GetArtBase()[v2];
v=0; Apply(&v,4,Mp,1);
switch(v){
case 1: // cost
v=artsetup->Cost; Apply(&v,4,Mp,2); artsetup->Cost=(Dword)v;
break;
case 2: // position
v=artsetup->Position; Apply(&v,4,Mp,2); artsetup->Position=v;
break;
case 3: // type
v=artsetup->Type; Apply(&v,4,Mp,2); artsetup->Type=v;
break;
case 4: // SuperNumber
v=artsetup->SuperN; Apply(&v,4,Mp,2); artsetup->SuperN=v;
break;
case 5: // Part of Super
v=artsetup->PartOfSuperN; Apply(&v,4,Mp,2); artsetup->PartOfSuperN=v;
break;
case 7: // Disable;
v=artsetup->Disable; Apply(&v,4,Mp,2); artsetup->Disable=(Byte)v;
break;
case 8: // NewSpell;
v=artsetup->NewSpell; Apply(&v,4,Mp,2); artsetup->NewSpell=(Byte)v;
break;
case 9: // Name 2 z
v=ArtNames[v2].NameVar; if(Apply(&v,4,Mp,2)) break; ArtNames[v2].NameVar=v;
if(v!=0){
if((v<1)||(v>1000)){ MError("\"UN:A\"-wrong z var index (1...1000)."); RETURN(0) }
artsetup->Name=ERMString[v-1];
}else{ artsetup->Name=ArtSetUpBack[v2].Name; }
break;
case 10: // Descr 2 z
v=ArtNames[v2].DescVar; if(Apply(&v,4,Mp,2)) break; ArtNames[v2].DescVar=v;
if(v!=0){
if((v<1)||(v>1000)){ MError("\"UN:A\"-wrong z var index (1...1000)."); RETURN(0) }
artsetup->Description=ERMString[v-1];
}else{ artsetup->Description=ArtSetUpBack[v2].Description; }
break;
default: //0
MError("\"UN:A\"-wrong syntax (A$/$/$)."); RETURN(0)
}
break;