diff ps2util.c @ 91:cb6c6de125dc

halfway
author Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
date Thu, 26 May 2011 14:44:03 +0900
parents
children b0249b856488
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ps2util.c	Thu May 26 14:44:03 2011 +0900
@@ -0,0 +1,246 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "libps2.h"
+#include "ps2util.h"
+
+
+/*
+  たぶん、本当は読み込んだ xml file から情報を取得するとかそんなんだと思う
+  どんな処理か分からないので、とりあえず、初期化している。
+*/
+
+OBJECT *ps2util_obj_Create_fromXML(char *filename)
+{
+  OBJECT *body;
+  /*
+  body->xyz = {0,0,0,0};
+  body->angle = {0,0,0,0};
+  body->transfer = { {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0} };
+  body->*name = filename;
+  body->*free_me = NULL;
+  */
+  return body;
+}
+
+
+
+void ps2util_obj_Set_effect(OBJECT *body, int def)
+{
+  //none
+}
+
+
+void ps2_vu0_copy_vector(FVECTOR directionA, FVECTOR directionB)
+{
+  //none
+}
+
+
+void ps2util_obj_Renew_transMatrix(OBJECT *car){
+  //none
+}
+
+
+/*
+  ps2 内の texture.c から
+*/
+TEXTURE* read_png_file(char *texname)
+{
+  //とりあえず戻り値を返してエラーをどうにか
+  TEXTURE* tex;
+  return tex;
+}
+
+
+
+void ps2util_tex_Set(TEXTURE* tex)
+{
+  //none
+}
+
+
+void ps2util_obj_Set_texture(OBJECT* car_body, TEXTURE *tex)
+{
+  //none
+}
+
+void ps2_vu0_unit_matrix(FMATRIX rot)
+{
+  //none
+}
+
+void ps2_vu0_rot_matrix_y(FMATRIX rot1, FMATRIX rot2, float radian)
+{
+  //none
+}
+
+
+void ps2_vu0_apply_matrix(FVECTOR direction, FMATRIX rot, FVECTOR v)
+{
+  //none
+}
+
+
+void ps2_vu0_scale_vector(FVECTOR mov, FVECTOR car_direction, float car_speed)
+{
+  //none
+}
+
+void ps2_vu0_add_vector(FVECTOR car_location1, FVECTOR car_location2,FVECTOR mov)
+{
+  //none
+}
+
+
+void ps2_vu0_outer_product(FVECTOR rotaxis, FVECTOR car_vertical, FVECTOR yd)
+{
+  //none
+}
+
+
+float ps2_vu0_inner_product(FVECTOR yd, FVECTOR car_vertical)
+{
+  float ret;
+  return ret;
+}
+
+
+void ps2_vu0_mul_matrix(FMATRIX pose1, FMATRIX yrot, FMATRIX pose2)
+{
+  //none
+}
+
+void ps2_vu0_copy_matrix(FMATRIX car_body_transfer, FMATRIX pose)
+{
+  //none
+}
+
+
+void ps2util_tex_Exclude(TEXTURE* t)
+{
+  //none
+}
+
+void ps2util_obj_Free(OBJECT* p_body)
+{
+  //none
+}
+
+
+
+void ps2_vu0_sub_vector(FVECTOR o0, FVECTOR p, FVECTOR p0)
+{
+  //none
+}
+
+
+
+
+void ps2_vu0_normalize(FVECTOR colface_normal1, FVECTOR colface_normal2)
+{
+  //none
+}
+
+
+void xml_free(PolygonInfo xml)
+{
+  //none
+}
+
+
+void ps2util_obj_Draw(OBJECT *object)
+{
+  //none
+}
+
+
+void gSprite_Init()
+{
+  //none
+}
+
+
+void  ps2util_sprite_Destroy(ps2utilSprite *title_sprite )
+{
+  //none
+}
+
+
+
+
+
+
+
+/*
+  からの関数
+  ps2 依存関係にあったけど、( name_dictionary.c ) の中のもの
+  だけど、他にも持ってくるものが増えるので、とりあえず、からの関数に
+*/
+void delete_name_dictionary(const char *string)
+{
+  /*
+  int number;
+  NAME_DIC *dic_ptr;
+
+  if (string == NULL) return;
+
+  number = hash_func(string,NAME_HASH_SIZE);
+
+  for (dic_ptr=name_hash+number;dic_ptr->name;dic_ptr=name_hash+number) {
+    if (!strcmp(string,dic_ptr->name)) {
+      dic_ptr->ref_num--;
+      if (dic_ptr->ref_num == 0) {
+	free(dic_ptr->name);
+	dic_ptr->name = NULL;
+      }
+      return;
+    } else {
+      number += REHASH_NUM;
+      if (number > NAME_HASH_SIZE) number -= NAME_HASH_SIZE;
+    }
+  }
+  */
+}
+  
+
+
+/*
+  ps2 依存関係から持ってきた。
+  テクスチャに割り振ったメモリの解放処理?
+  元ファイル:texture.c
+*/
+void free_texture(TEXTURE *tex)
+{
+  if (tex == NULL) return;
+
+  delete_name_dictionary(tex->name);
+  free(tex->free_texenv);
+  free(tex->free_image);
+  free(tex);
+}
+
+
+/*
+  ps2 依存関係内の、texture.c から拝借
+  この malloc によるメモリ取得をあちこちで行っているっぽい
+*/
+int malloc_align16(void *free, void *aligned, int size)
+{
+  char *index;
+  unsigned int *f=(unsigned int *)free,*a=(unsigned int *)aligned;
+
+  if (free == NULL || aligned == NULL || size <= 0) return(-1);
+
+  index = (char *)malloc(size + ALIGN_16BYTE);
+  if (index == NULL) {
+    return(-1);
+  }
+
+  *f = *a = (unsigned long int)index;
+  if (((unsigned long int)index % ALIGN_16BYTE) != 0) {
+    index += ALIGN_16BYTE - ((unsigned long int)index % ALIGN_16BYTE);
+    *a = (unsigned long int)index;
+  }
+
+  return(0);
+}