REFSKRIPT
;! Aufruf kp_move_copy.rexx <kp> <ncopys> <dx> <dy> <dz> <name>*/

GET_N_PARAMS
GET_RESULT np
IF_EQUAL_GOTO np 6 w1
RETURN 0
>w1:
GET_PARAM_NR 1
GET_RESULT kp
GET_PARAM_NR 2
GET_RESULT ncopys
GET_PARAM_NR 3
GET_RESULT dx
GET_PARAM_NR 4
GET_RESULT dy
GET_PARAM_NR 5
GET_RESULT dz 
GET_PARAM_NR 6
GET_RESULT name

IF_LESS_GOTO ncopys 2 w2
GOTO w3
>w2:
RETURN 0
>w3:
; schauen, ob es kp ALLES ist, dann müssen wir zuerst
; ein neues Objekt schaffen
IF_STR_NOT_EQUAL_GOTO kp ALLES w2b
CALL neukpnam.skr ALLES
GET_RESULT kp1
KP_ADDNEU kp kp1
ADD_STR kp1
GET_RESULT kp
>w2b:
ADD_STR kp
GET_RESULT old
GET_NOBJEKTE
GET_RESULT nobj

SET_VAR i 2
>do_loop:
;DO i=2 to ncopys
   CALL neukpnam.skr tmp
   GET_RESULT new1
   ADD_STR1 new1 i
   GET_RESULT new
   KP_DOPPELN old new
   KP_BEWEGE new dx dy dz
   IF_EQUAL_GOTO i 2 w4
   KP_LOESCHEN old
>w4:
   ADD_STR new
   GET_RESULT old
   ADD i 1
   GET_RESULT i
   IF_GREATER_GOTO i ncopys fert
   GOTO do_loop
>fert:
KP_EXIST new
GET_RESULT res
IF_STR_EQUAL_GOTO res NEIN w5
KP_LOESCHEN new
>w5:
GET_NOBJEKTE
GET_RESULT nobj1
SUB nobj1 1
GET_RESULT nobj1
KP_NEU name
KP_OBJ_VONBIS nobj nobj1
KP_FERTIG

KP_ADD name kp

RETURN 1
