/*!

	配列に対して何かしようとする関数群です。

*/
#if defined HELPER_ARRAY_INCLUDED___
  #endinput
#endif
#define HELPER_ARRAY_INCLUDED___

#include <all.inc>


//////////////////////////////////////////////////////////////////////////////////
/*!
	配列内のオブジェクトを隠します。
*/
stock ArrayHideObject(obj:target[], length = sizeof target) {
	for (new i = 0; i < length; i++) {
		Hide(target[i]);
	}
}

//////////////////////////////////////////////////////////////////////////////////
/*!
	配列内のオブジェクトを表示します。
*/
stock ArrayShowObject(obj:target[], length = sizeof target) {
	for (new i = 0; i < length; i++) {
		Show(target[i]);
	}
}

//////////////////////////////////////////////////////////////////////////////////
/*!
	配列内のオブジェクトを削除します
*/
stock ArrayDestroyObject(obj:target[], length = sizeof target) {
	for (new i = 0; i < length; i++) {
		SafeDestroyObject(target[i]);
	}
}

//////////////////////////////////////////////////////////////////////////////////
/*!
	配列内のテクスチャをリリースします

*/
stock ArrayReleaseTexture(texture:target[], length = sizeof target) {
	for (new i = 0; i < length; i++) {
		imgReleaseTex(target[i]);
	}
}

//////////////////////////////////////////////////////////////////////////////////
/*!
	配列内のオブジェクトの表示位置を設定します。
*/
stock ArraySetPosObject(obj:target[], float:x, float:y, float:w, length = sizeof target) {

	new float:tmp_x, float:tmp_y, float:tmp_z;

	for (new i = 0; i < length; i++) {
		GetPos(target[i], tmp_x, tmp_y, tmp_z);
		SetPos(target[i], x + (w * i), y, tmp_z);
	}
}

//////////////////////////////////////////////////////////////////////////////////
/*!
	配列内のオブジェクトの色を設定します。
*/
stock ArraySetColorObject(obj:target[], float:r = 1.0, float:g = 1.0, float:b = 1.0, float:a = 1.0, length = sizeof target) {
	for (new i = 0; i < length; i++) {
		SetColor(target[i], r, g, b, a);
	}
}
stock ArrayAnimColorObject(obj:target[], float:r = 1.0, float:g = 1.0, float:b = 1.0, float:a = 1.0, float: frame, length = sizeof target) {
	for (new i = 0; i < length; i++) {
		AnimColor(target[i], r, g, b, a, frame);
	}
}

//////////////////////////////////////////////////////////////////////////////////
/*!
	配列内のオブジェクトの色を設定します。
*/
stock ArrayTimerDie(obj:target[], const frame, length = sizeof target) {
	for (new i = 0; i < length; i++) {
		TimerDie(target[i], frame);
	}
}
